피드로 돌아가기
Node.js 12.22.7 (LTS)
Node.js BlogNode.js Blog
Security

Node.js 12.22.7이 HTTP 파서의 헤더 스페이스 처리 및 청크 확장 무시 버그를 패치해 HTTP Request Smuggling 공격 2가지 경로 차단

Node.js 12.22.7 (LTS)

2021년 10월 12일4intermediate

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 공격으로 인한 인증 우회 및 캐시 포이즈닝 시나리오를 제거할 수 있다.

원문 읽기