🇰🇷 한글 설명
ApostropheCMS의 sanitizeHtml() 함수에서 textarea 또는 xmp 태그를 허용할 경우, 특정 조건에서 실행 가능한 마크업이 필터링을 우회할 수 있는 취약점이 존재합니다. htmlparser2가 태그 끝의 슬래시(/)를 일반 텍스트로 처리하는 과정에서 이스케이프 처리가 누락되어 브라우저에서 악성 스크립트가 실행될 수 있습니다. 이 문제는 버전 2.17.6에서 수정되었습니다.
💡 쉬운 설명
웹사이트의 글쓰기 도구에서 보안 필터를 속여 악성 코드를 삽입할 수 있는 취약점입니다. 공격자가 입력한 코드가 필터를 통과해 사용자 브라우저에서 실행될 위험이 있습니다.
🇺🇸 원문 (English)
ApostropheCMS is an open-source Node.js content management system. Prior to 2.17.6, sanitizeHtml() can pass disallowed executable markup through packages/sanitize-html/index.js when textarea or xmp is included in allowedTags because a literal solidus after the raw-text end-tag name is treated as text by htmlparser2 and the ontext handler emits that content without escaping, while a browser parses the following img onerror markup as active HTML. This issue is fixed in version 2.17.6.
📍 영향받는 시스템
ApostropheCMS 2.17.6 미만 버전
⚔️ 공격 벡터
textarea 또는 xmp 태그를 이용해 sanitize-html 필터를 우회하는 악성 HTML 마크업 삽입
🛡️ 대응 방법
ApostropheCMS를 최신 버전인 2.17.6 이상으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 버전 번호가 출력되면 취약한 버전이 설치되어 있는 상태입니다.
npm list apostrophe-cms | grep -E 'apostrophe-cms@([0-1]\.|2\.(0|1[0-6]))'