🇰🇷 한글 설명
Mistune 3.3.0 미만 버전의 toc 플러그인과 TableOfContents 지시문은 헤딩 텍스트를 슬러그화하지 않고 예측 가능한 toc_N 형태의 ID를 생성합니다. 이로 인해 공격자가 제어하는 id="toc_N" 콘텐츠가 생성된 앵커와 충돌하여 페이지 내 탐색, CSS 선택자 또는 JavaScript 핸들러를 왜곡할 수 있습니다.
💡 쉬운 설명
문서의 목차를 만드는 기능이 제목 내용을 무시하고 단순한 번호로만 식별자를 만듭니다. 공격자가 이 번호를 미리 예측해 가짜 링크를 만들면 사용자가 엉뚱한 곳으로 이동하거나 웹사이트 기능이 오작동할 수 있습니다.
🇺🇸 원문 (English)
Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, the toc plugin and TableOfContents directive generate heading IDs as predictable toc_N values without slugifying the heading text, allowing attacker-controlled id="toc_N" content to collide with generated anchors and redirect same-page navigation, CSS selectors, or JavaScript handlers. This issue is fixed in version 3.3.0.
📍 영향받는 시스템
Mistune Python Markdown parser version < 3.3.0
⚔️ 공격 벡터
공격자가 조작된 Markdown 콘텐츠를 삽입하여 예측 가능한 ID와 충돌 유도
🛡️ 대응 방법
Mistune 라이브러리를 3.3.0 버전 이상으로 업데이트
🔧 검증 코드
출력된 버전이 3.3.0 미만이면 취약한 상태이며, 3.3.0 이상이면 안전합니다.
pip show mistune | grep Version