피드로 돌아가기
Node.js BlogSecurity
원문 읽기
Node.js가 HTTP 파서의 헤더 파싱 및 청크 인코딩 처리 결함을 수정해 HTTP Request Smuggling 취약점 제거
October 12th 2021 Security Releases
AI 요약
Context
Node.js의 http 파서가 헤더 이름 뒤 콜론 앞의 공백을 허용하고, 청크 요청 본문 파싱 시 청크 확장을 무시하는 문제가 있었다. 이로 인해 특정 조건 하에서 HTTP Request Smuggling(HRS) 공격이 가능했다.
Technical Solution
- llhttp v2.1.4 및 v6.0.6으로 업데이트: 헤더 이름 뒤 콜론 앞 공백을 거부하도록 파서 수정
- llhttp v2.1.4 및 v6.0.6으로 업데이트: 청크 요청 파싱 시 청크 확장을 올바르게 처리하도록 파서 수정
- Node.js v16.x, v14.x, v12.x 릴리스 라인 모두에 보안 패치 배포
Key Takeaway
HTTP 프로토콜 파싱의 엣지 케이스(헤더 공백, 청크 확장)는 Request Smuggling 같은 심각한 보안 취약점을 야기할 수 있으므로, HTTP 파서 구현 시 RFC 명세를 엄격하게 준수해야 한다.
실천 포인트
Node.js 기반 애플리케이션을 운영하는 팀에서 2021년 10월 12일 이후 Node.js v
1
6.x, v
1
4.x, v
1
2.x의 보안 업데이트를 적용해야 HTTP Request Smuggling 공격으로부터 보호할 수 있다.