🇰🇷 한글 설명
Astro 웹 프레임워크의 7.1.0부터 7.3.3 버전 사이에서 서버 측 View Transition CSS 생성기가 애니메이션 속성 내의 문자열을 적절히 유지하지 못하는 취약점이 발견되었습니다. 공격자가 제어 가능한 데이터가 애니메이션 속성에 입력될 경우, CSS 구분자를 사용하여 임의의 CSS 규칙을 삽입함으로써 페이지의 인터페이스를 조작하거나 정보를 은닉할 수 있습니다.
💡 쉬운 설명
웹사이트의 애니메이션 설정값에 악성 코드를 섞어 넣으면, 화면의 내용을 가리거나 위치를 바꾸는 등 웹사이트의 모습을 마음대로 조작할 수 있는 문제입니다. 다만, 직접적인 해킹이나 자바스크립트 실행은 어렵지만 사용자에게 잘못된 정보를 보여줄 위험이 있습니다.
🇺🇸 원문 (English)
Astro is a web framework for content-driven websites. From 7.1.0 until 7.3.3, Astro's server-side View Transition CSS generator does not keep string animation properties within their generated declarations. An application that passes attacker-controlled data into properties such as duration, delay, easing, direction, fillMode, or animation names can allow CSS delimiters to terminate the declaration and add attacker-selected rules to the server-rendered page. The generated stylesheet still escapes literal less-than characters, so the injected content cannot terminate the style element or directly inject HTML or JavaScript. The injected CSS can conceal or reposition content, add generated text, and otherwise misrepresent the interface; some applications may also expose data already present in selectable DOM attributes through conditional resource loads. This issue is fixed in 7.3.3.
📍 영향받는 시스템
Astro framework versions 7.1.0 to 7.3.3
⚔️ 공격 벡터
사용자 입력값이 애니메이션 속성(duration, delay, easing 등)에 포함될 때 CSS 구분자를 이용한 CSS Injection 공격
🛡️ 대응 방법
Astro 프레임워크를 취약점이 해결된 버전인 7.3.3 이상으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 astro 버전이 7.1.0에서 7.3.3 사이로 표시되면 취약한 상태입니다.
npm list astro | grep -E 'astro@7\.[1-3]\.'
💻 영향받는 소프트웨어
IBM WebSphere Application Server