Chrome에선 이제 open 속성없이 <details> XSS가 가능합니다.

XSS 벡터 중 details 태그에 ontoggle 이벤트 핸들러와 open 속성을 이용한 방법이 있습니다. Chrome, Safari, Firefox, IE 모두 사용 가능하고 on* 기반의 XSS 중 비교적 쉽게 사용자 interaction을 줄일 수 있어서 자주 사용되는데요.

<details ontoggle=alert(45) open>
    test
</details>

최근 크롬 97 업데이트에 새로운 기능이 추가됬는데 바로 Auto-expand details elements 입니다. 직역하면 details elements에서 자동으로 expand 처리한다는 의미이고 이는 open 속성을 사용하지 않더라도 ontoggle로만 즉시 스크립트를 실행할 수 있다는 것을 의미합니다.

그래서 97 이상 버전부턴 open 속성 없이 ontoggle 로만 XSS 트리거가 가능해집니다.

Chrome 97+

<details ontoggle=alert(45)>
    test
</details>
  • https://twitter.com/RenwaX23/status/1482474741952827393
  • https://developer.chrome.com/blog/new-in-chrome-97/
  • https://chromestatus.com/feature/5032469667512320
  • https://twitter.com/hahwul/status/1483097833029136384