🇰🇷 한글 설명
Node.js의 특정 버전에서 HTTP 요청 시 동일한 헤더 필드가 두 번 포함될 경우, 첫 번째 헤더만 인식하고 두 번째 헤더를 무시하는 취약점이 존재합니다. 이로 인해 프록시 서버와 백엔드 서버 간의 해석 차이가 발생하여 HTTP 요청 스머글링(Request Smuggling) 공격이 가능해집니다.
💡 쉬운 설명
웹 서버가 요청 메시지를 읽을 때 똑같은 이름의 명령어가 두 개 있으면 하나를 무시해버리는 문제입니다. 이 차이를 이용해 공격자가 몰래 다른 요청을 끼워 넣어 서버를 속일 수 있습니다.
🇺🇸 원문 (English)
Node.js versions before 10.23.1, 12.20.1, 14.15.4, 15.5.1 allow two copies of a header field in an HTTP request (for example, two Transfer-Encoding header fields). In this case, Node.js identifies the first header field and ignores the second. This can lead to HTTP Request Smuggling.
📍 영향받는 시스템
Node.js 10.23.1 미만, 12.20.1 미만, 14.15.4 미만, 15.5.1 미만 버전
⚔️ 공격 벡터
HTTP 요청 헤더에 중복된 필드(예: Transfer-Encoding)를 삽입하여 프록시와 서버 간의 해석 불일치 유도
🛡️ 대응 방법
Node.js를 보안 패치가 적용된 최신 버전(10.23.1, 12.20.1, 14.15.4, 15.5.1 이상)으로 업데이트
🔧 검증 코드
출력된 버전이 취약점이 해결된 버전(10.23.1, 12.20.1, 14.15.4, 15.5.1 이상)인지 확인