피드로 돌아가기
Node.js BlogSecurity
원문 읽기
Node.js가 HTTP/1.1 요청 처리의 2가지 보안 취약점 패치로 서비스 거부 및 요청 스머글링 공격 차단
Node.js 14.11.0 (Current)
AI 요약
Context
Node.js 14.x 버전에서 HTTP/1.1 프로토콜 처리 계층에 2개의 보안 취약점이 발견되었다. CVE-2020-8251은 미완료된 HTTP/1.1 요청이 리소스 고갈로 인한 서비스 거부를 유발할 수 있으며, CVE-2020-8201은 CR 문자를 하이픈으로 변환하는 로직의 부족으로 HTTP 요청 스머글링 공격이 가능했다.
Technical Solution
- HTTP/1.1 요청 처리 로직 개선: 미완료된 요청에 대한 리소스 할당 제한 메커니즘 추가
- CR-to-Hyphen 변환 로직 수정: CR(Carriage Return) 문자 처리 방식을 표준 HTTP 스펙에 맞게 재구현
- 14.11.0 버전 보안 릴리스: 수정 사항을 적용한 새로운 바이너리 및 설치 프로그램 배포
- 다중 플랫폼 지원: Windows(32/64비트), macOS, Linux(x64/ARM/PPC/s390x), AIX 등 9개 플랫폼용 빌드 제공
- PGP 서명 검증: 모든 배포 파일에 대한 SHA256 해시 및 PGP 서명 정보 제공
Key Takeaway
Node.js와 같은 런타임 환경에서 HTTP 프로토콜 구현의 미묘한 결함(CR 변환, 요청 상태 관리)이 서비스 거부와 스머글링 공격으로 이어질 수 있으므로, 보안 패치 출시 시 즉시 업그레이드가 필수적이다.
실천 포인트
Node.js 기반 HTTP 서버를 운영하는 팀에서는 CVE-2020-8251(DoS 리소스 고갈) 및 CVE-2020-8201(HTTP 스머글링) 패치 적용을 위해
1
4.
1
1.0 이상으로 즉시 업그레이드해야 하며, 특히 인터넷 노출 서비스는 CR 문자 포함 요청에 대한 입력 검증을 강화해야 한다.