🇰🇷 한글 설명
sanitize-html 2.17.7부터 2.18.0 버전에서 네임스페이스 접두사가 붙은 SVG 애니메이션 요소를 사용할 경우 SMIL URL 보호 기능을 우회할 수 있는 취약점이 발견되었습니다. 공격자는 이를 통해 링크 목적지를 안전하지 않은 URI로 재작성할 수 있으며, 사용자가 해당 링크를 클릭할 경우 스크립트가 실행될 수 있습니다.
💡 쉬운 설명
HTML 코드를 깨끗하게 청소해주는 도구에서 특정 방식의 SVG 이미지를 제대로 걸러내지 못하는 문제입니다. 이를 통해 해커가 악성 링크를 숨겨두었다가 사용자가 클릭하면 나쁜 코드가 실행되게 만들 수 있습니다.
🇺🇸 원문 (English)
ApostropheCMS is an open-source Node.js content management system, and sanitize-html provides a simple HTML sanitizer with a clear API. From sanitize-html 2.17.7 until 2.18.0, an application configuration that permits namespace-prefixed SVG animation elements and the relevant URL-targeting attributes can bypass the SMIL URL protection because prefixed tag names do not match the unprefixed animation-element check. The bypass can rewrite a link destination to an unsafe URI after the sanitized SVG is rendered, with script execution occurring when a user activates the affected link; the default sanitizer configuration is not unconditionally affected. This issue is fixed in sanitize-html 2.18.0.
📍 영향받는 시스템
sanitize-html 2.17.7 ~ 2.18.0
⚔️ 공격 벡터
네임스페이스 접두사가 포함된 SVG 애니메이션 요소를 삽입하여 URL 필터링을 우회하는 방식
🛡️ 대응 방법
sanitize-html 버전을 2.18.0 이상으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 취약한 버전 범위가 출력되면 해당 라이브러리가 설치되어 있는 상태입니다.
npm list sanitize-html | grep -E 'sanitize-html@(2\.(17\.[7-9]|18\.0))'