🔍 CVE-2026-44311

5.4
CVSS Score
MEDIUM
2026-06-22
2026-10-25 23:10
✅ 완료

🇰🇷 한글 설명

Fabric.js 7.4.0 이전 버전에는 toSVG() 메서드로 SVG를 직렬화할 때 fabric.Gradient 객체의 colorStops 배열 내 color 필드가 제대로 이스케이프되지 않는 크로스 사이트 스크립팅(XSS) 취약점이 존재합니다. 생성된 SVG 문자열을 DOM에 렌더링하는 애플리케이션에서는 공격자가 임의의 HTML/SVG를 주입하고 피해자 브라우저에서 JavaScript를 실행할 수 있습니다. 이 취약점은 7.4.0 버전에서 수정되었습니다.

💡 쉬운 설명

Fabric.js라는 그래픽 도구에서 그라데이션 색상 값을 처리할 때 검증이 부족해, 악의적인 코드가 숨겨질 수 있습니다. 이 SVG 결과를 웹페이지에 그대로 표시하면 방문자의 브라우저에서 악성 스크립트가 실행될 수 있습니다.

🇺🇸 원문 (English)

Fabric.js is a Javascript HTML5 canvas library. Prior to 7.4.0, a potential Cross-Site Scripting (XSS) vulnerability exists in Fabric.js due to improper escaping of user-controlled input during SVG serialization via the toSVG() method. Specifically, the color field within the colorStops array of a fabric.Gradient object is not properly escaped when converted into SVG <stop> elements. If an application renders the generated SVG string into the DOM, this may allow an attacker to inject arbitrary HTML/SVG and execute JavaScript in the victim's browser. This vulnerability is fixed in 7.4.0.

📍 영향받는 시스템

Fabric.js 7.4.0 미만 버전을 사용하는 웹 애플리케이션 (toSVG() 출력을 DOM에 렌더링하는 경우)

⚔️ 공격 벡터

공격자가 그라데이션 color 값에 스크립트를 포함시킨 데이터를 입력하고, 이를 toSVG()로 변환해 페이지에 출력될 때 피해자 브라우저에서 스크립트가 실행됨

🛡️ 대응 방법

Fabric.js를 7.4.0 이상으로 업그레이드하고, 생성된 SVG를 DOM에 삽입하기 전 적절히 새니타이징(예: DOMPurify 사용)을 적용

🔧 검증 코드

출력된 fabric 버전이 7.4.0 미만이면 취약하므로 업그레이드가 필요하며, 아무 결과도 없으면 프로젝트에 해당 패키지가 설치되어 있지 않은 것입니다.

Shell / Script
npm ls fabric 2>/dev/null | grep -E 'fabric@'

📊 CVSS Vector String

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