피드로 돌아가기
Node.js 14.11.0 (Current)
Node.js BlogNode.js Blog
Security

Node.js가 HTTP/1.1 요청 처리의 2가지 보안 취약점 패치로 서비스 거부 및 요청 스머글링 공격 차단

Node.js 14.11.0 (Current)

2020년 9월 15일3intermediate

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 문자 포함 요청에 대한 입력 검증을 강화해야 한다.

원문 읽기