🇰🇷 한글 설명
Astro 웹 프레임워크의 Cloudflare 어댑터 사용 시 이미지 최적화 엔드포인트에서 발생하는 취약점입니다. isRemoteAllowed() 함수가 data: 프로토콜 URL을 무조건 허용하여, 악성 SVG 페이로드를 통한 교차 사이트 스크립팅(XSS) 공격이 가능합니다. 이 문제는 버전 5.15.9에서 패치되었습니다.
💡 쉬운 설명
웹사이트에서 이미지를 처리하는 과정에서 보안 검사를 제대로 하지 않아 발생하는 문제입니다. 공격자가 특수하게 제작된 이미지를 통해 사용자의 브라우저에서 악성 코드를 실행할 수 있습니다.
🇺🇸 원문 (English)
Astro is a web framework. Prior to version 5.15.9, when using Astro's Cloudflare adapter (@astrojs/cloudflare) with output: 'server', the image optimization endpoint (/_image) contains a critical vulnerability in the isRemoteAllowed() function that unconditionally allows data: protocol URLs. This enables Cross-Site Scripting (XSS) attacks through malicious SVG payloads, bypassing domain restrictions and Content Security Policy protections. This issue has been patched in version 5.15.9.
📍 영향받는 시스템
Astro framework (Cloudflare adapter 사용 시) version 5.15.9 미만
⚔️ 공격 벡터
악성 SVG 데이터가 포함된 data: 프로토콜 URL을 이미지 엔드포인트로 전송하여 XSS 실행
🛡️ 대응 방법
Astro 버전을 5.15.9 이상으로 업데이트
🔧 검증 코드
출력된 버전 번호가 5.15.9 미만이면 취약한 상태입니다.
npm list @astrojs/cloudflare --depth=0 | grep -E '@astrojs/cloudflare@([0-9]+\.[0-9]+\.[0-9]+)'