🇰🇷 한글 설명
Express 웹프레임워크의 400 레벨 HTTP 응답에서 Content-Type 헤더에 charset 필드를 포함하지 않아 발생하는 XSS 취약점입니다. 비표준 인코딩 문자를 통해 원격 공격자가 악성 스크립트를 삽입할 수 있습니다.
💡 쉬운 설명
Express 웹서버가 에러 응답을 할 때 문자 인코딩 정보를 제대로 명시하지 않아 공격자가 악성 코드를 숨길 수 있습니다. 사용자의 브라우저가 이를 잘못 해석하여 공격자의 스크립트가 실행될 수 있습니다.
🇺🇸 원문 (English)
The Express web framework before 3.11 and 4.x before 4.5 for Node.js does not provide a charset field in HTTP Content-Type headers in 400 level responses, which might allow remote attackers to conduct cross-site scripting (XSS) attacks via characters in a non-standard encoding.
📍 영향받는 시스템
Express.js 3.11 미만 및 4.0~4.4 버전
⚔️ 공격 벡터
400 레벨 에러 응답에 비표준 인코딩 특수 문자를 포함시켜 브라우저 XSS 필터 우회
🛡️ 대응 방법
Express.js를 3.11 이상 또는 4.5 이상으로 업그레이드
🔧 검증 코드
출력된 버전이 3.11 미만이거나 4.0~4.4 범위면 취약함. 4.5 이상이면 패치됨.
npm list express 2>/dev/null | grep -E 'express@'