🔍 CVE-2026-84369

6.1
CVSS Score
MEDIUM
2026-09-01
2026-09-09 21:09
✅ 완료

🇰🇷 한글 설명

SVG 최적화 라이브러리인 SVGO의 특정 버전에서 removeScripts 플러그인이 foreignObject 요소 내부의 실행 가능한 HTML 콘텐츠를 제대로 검사하지 못하는 취약점이 발견되었습니다. 공격자가 조작된 SVG 파일을 통해 onload와 같은 이벤트 핸들러나 실행 가능한 URL을 삽입할 경우, 브라우저 환경에서 악성 스크립트가 실행될 수 있습니다.

💡 쉬운 설명

SVG 이미지 파일을 최적화하는 과정에서 이미지 안에 숨겨진 악성 코드를 완벽하게 제거하지 못하는 문제입니다. 이로 인해 사용자가 조작된 이미지를 볼 때 해커가 의도한 동작이 사용자 브라우저에서 실행될 수 있습니다.

🇺🇸 원문 (English)

SVGO, short for SVG Optimizer, is a Node.js library and command-line application for optimizing SVG files. From version 1.0.0 until versions 2.8.4, 3.3.5, and 4.1.0, the opt-in removeScripts plugin, named removeScriptElement in versions 2 and 3 and implemented in plugins/removeScripts.js, removes SVG and XHTML script elements but does not inspect executable HTML content inside SVG foreignObject elements. Event-handler attributes such as onload and onbeforetoggle, srcdoc documents, and executable URLs in the action, data, formaction, href, and src attributes can remain in attacker-controlled SVG input. When an application uses the plugin as its only protection and serves the optimized SVG in an active browser context, the payload can execute script in the viewer's origin, expose data, modify content, or perform actions as the victim. This issue is fixed in versions 2.8.4, 3.3.5, and 4.1.0.

📍 영향받는 시스템

SVGO versions 1.0.0 up to 2.8.4, 3.3.5, and 4.1.0

⚔️ 공격 벡터

공격자가 조작된 스크립트가 포함된 SVG 파일을 업로드하거나 제공하여 사용자의 브라우저에서 실행 유도

🛡️ 대응 방법

SVGO를 최신 패치 버전(2.8.4, 3.3.5, 4.1.0 이상)으로 업데이트

🔧 검증 코드

출력된 svgo의 버전이 취약한 버전 범위(2.8.4, 3.3.5, 4.1.0 미만)에 해당하는지 확인

Shell / Script
npm list svgo

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

💻 영향받는 소프트웨어

Node.js