🔍 CVE-2026-33889

5.4
CVSS Score
MEDIUM
2026-04-15
2026-10-26 22:10
✅ 완료

🇰🇷 한글 설명

ApostropheCMS 4.28.0 이하의 color-field 모듈에서 -- 접두사로 TinyColor 검증을 우회한 값이 launder.string()을 거쳐 HTML 메타문자 제거 없이 <style> 태그에 직접 삽입되는 저장형 XSS 취약점입니다. 편집자가 임의의 JavaScript를 모든 방문자 브라우저에서 실행할 수 있으며 관리자는 권한 상승의 위험이 있습니다.

💡 쉬운 설명

웹사이트 만드는 도구에서 색상 설정 기능이 악의적 코드를 필터링하지 못하는 결함이 있습니다. 웹사이트 편집자가 이를 악용하면 모든 방문자의 컴퓨터에서 해킹 코드를 실행할 수 있습니다.

🇺🇸 원문 (English)

ApostropheCMS is an open-source Node.js content management system. Versions 4.28.0 and prior contain a stored cross-site scripting vulnerability in the @apostrophecms/color-field module, where color values prefixed with -- bypass TinyColor validation intended for CSS custom properties, and the launder.string() call performs only type coercion without stripping HTML metacharacters. These unsanitized values are then concatenated directly into <style> tags both in per-widget style elements rendered for all visitors and in the global stylesheet rendered for editors, with the output marked as safe HTML. An editor can inject a value which closes the style tag and executes arbitrary JavaScript in the browser of every visitor to any page containing the affected widget. This enables mass session hijacking, cookie theft, and privilege escalation to administrative control if an admin views draft content. This issue has been fixed in version 4.29.0.

📍 영향받는 시스템

ApostropheCMS 4.28.0 이하 (@apostrophecms/color-field 모듈)

⚔️ 공격 벡터

편집자가 color-field 입력값에 -- 접두사 포함 CSS 커스텀 프로퍼티를 주입하여 style 태그 종료 후 JavaScript 삽입

🛡️ 대응 방법

ApostropheCMS를 4.29.0 이상으로 즉시 업그레이드

🔧 검증 코드

표시된 버전이 4.29.0 이상이면 안전하며, 4.28.0 이하이면 취약상태입니다.

Shell / Script
npm list @apostrophecms/color-field 2>/dev/null | grep -oP '(?<=@apostrophecms/color-field@)\d+\.\d+\.\d+'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Node.js