🇰🇷 한글 설명
WeasyPrint 69.0 미만 버전에서 presentational_hints 옵션이 활성화된 경우, HTML의 presentational-hint 속성값이 적절히 이스케이프되지 않고 CSS에 삽입되는 취약점이 존재합니다. 이를 통해 공격자는 CSS 주입을 수행하거나 url() 값을 이용해 서버 측 요청(SSRF)을 유발할 수 있습니다.
💡 쉬운 설명
웹 페이지를 PDF로 만드는 프로그램에서 보안 허점이 발견되었습니다. 공격자가 특수하게 조작된 코드를 보내면, 서버가 몰래 외부 사이트에 접속하게 하거나 디자인을 망가뜨릴 수 있습니다.
🇺🇸 원문 (English)
WeasyPrint helps web developers to create PDF documents. Prior to 69.0, WeasyPrint embeds unescaped HTML presentational-hint attribute values into CSS in weasyprint/css/__init__.py when presentational_hints=True. The background attribute is inserted into a background-image:url() declaration and parsed by tinycss2.parse_blocks_contents(), allowing untrusted HTML to inject additional CSS declarations. Applications that render untrusted HTML with presentational hints enabled can be affected by CSS injection and server-side requests through injected url() values. This issue is fixed in version 69.0.
📍 영향받는 시스템
WeasyPrint version < 69.0
⚔️ 공격 벡터
신뢰할 수 없는 HTML 콘텐츠 내의 presentational-hint 속성에 악의적인 CSS 구문을 삽입하여 공격
🛡️ 대응 방법
WeasyPrint를 최신 버전인 69.0 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 69.0 미만이면 취약한 상태입니다.
pip show weasyprint | grep Version
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
💻 영향받는 소프트웨어
IBM WebSphere Application Server