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

Node.js 20.12.1 LTS 릴리스로 HTTP/2 서버 크래시 및 HTTP Request Smuggling 취약점 2개 패치

Node.js 20.12.1 (LTS)

2024년 4월 3일3intermediate

Context

Node.js HTTP/2 구현에서 Http2Session 소멸자의 assertion 실패로 인한 서버 크래시 취약점이 발견되었다. Content-Length 난독화를 통한 HTTP Request Smuggling 공격으로 요청 검증 우회 가능성이 존재했다.

Technical Solution

  • CVE-2024-27983 패치: Http2Session 소멸자의 assertion 조건 개선으로 HTTP/2 세션 종료 시 안정성 강화
  • CVE-2024-27982 패치: Content-Length 헤더 검증 로직 강화로 요청 스머글링 방지
  • llhttp를 9.2.1 버전으로 업그레이드하여 HTTP 파싱 보안 개선
  • undici를 5.28.4 버전으로 업그레이드하여 HTTP 클라이언트 보안 강화

Impact

CVE-2024-27983의 심각도는 High로 분류되었고, CVE-2024-27982의 심각도는 Medium으로 분류되었다.

Key Takeaway

LTS 버전에서 보안 릴리스는 HTTP 프로토콜 파싱과 세션 관리 영역의 취약점을 먼저 대상으로 하며, 의존성 라이브러리(llhttp, undici)의 버전 업그레이드도 함께 진행되어야 한다.


Node.js

2

0.x LTS를 사용하는 프로덕션 환경에서는 v

2

0.

1

2.1 이상으로 즉시 업그레이드해야 하며, 특히 HTTP/2를 활용하는 서버나 외부 HTTP 요청을 처리하는 애플리케이션은 Request Smuggling 공격으로부터 보호받을 수 있다.

원문 읽기