피드로 돌아가기
Node.js BlogSecurity
원문 읽기
Node.js 12.22.7이 HTTP 파서의 헤더 스페이스 처리 및 청크 확장 무시 버그를 패치해 HTTP Request Smuggling 공격 2가지 경로 차단
Node.js 12.22.7 (LTS)
AI 요약
Context
Node.js HTTP 파서가 헤더 이름 직후 콜론 앞 스페이스를 허용하고 청크 인코딩 요청 파싱 시 청크 확장을 무시하는 두 가지 취약점을 보유했다. 이 취약점들은 HTTP Request Smuggling 공격을 유발할 수 있는 프로토콜 해석 오류에 해당한다.
Technical Solution
- HTTP 파서의 헤더 검증 강화: 헤더 이름과 콜론 사이의 스페이스를 거부하도록 변경 (CVE-2021-22959 대응)
- 청크 인코딩 파서 수정: 청크 확장 필드를 파싱 및 검증하도록 구현 (CVE-2021-22960 대응)
- 다중 플랫폼 배포: Windows(32/64-bit), macOS, Linux(x64/ARM/PPC/s390x), AIX, SmartOS 아키텍처 바이너리 제공
- 암호화 서명 배포: PGP 서명을 통한 모든 배포 파일의 무결성 검증 지원
Key Takeaway
HTTP 요청 파싱의 엣지 케이스(공백 문자 처리, 청크 확장)는 업스트림 프록시와 애플리케이션 서버 간 프로토콜 해석 차이를 야기하므로, 사양 준수 검증을 엄격히 수행해야 Request Smuggling 공격을 사전에 차단할 수 있다.
실천 포인트
Node.js 기반 HTTP 서버를 운영 중인 엔지니어는
1
2.
2
2.7 이상으로 업그레이드하여 CVE-2021-22959, CVE-2021-22960에 대한 프로토콜 검증 강화를 적용하면, 리버스 프록시 뒤의 배포 환경에서 HTTP Request Smuggling 공격으로 인한 인증 우회 및 캐시 포이즈닝 시나리오를 제거할 수 있다.