피드로 돌아가기
Wednesday, May 14, 2025 Security Releases
Node.js BlogNode.js Blog
Security

Node.js가 2025년 5월 14일 보안 업데이트를 통해 C++ 스레드 크래시, HTTP 요청 스머글링, Windows 메모리 누수 3가지 취약점 패치

Wednesday, May 14, 2025 Security Releases

2025년 5월 14일5intermediate

Context

Node.js 런타임의 여러 보안 취약점이 발견되었으며, 이는 모든 활성 릴리스 라인(20.x, 22.x, 23.x, 24.x)에 영향을 미칩니다. 특히 C++ 메서드의 예외 처리 오류, HTTP 파서의 헤더 검증 미흡, Windows 환경의 메모리 누수로 인해 원격 크래시, 보안 우회, 서비스 거부 공격이 가능합니다.

Technical Solution

  • SignTraits::DeriveBits() 메서드의 백그라운드 스레드 예외 처리 로직 수정: 사용자 입력 기반 ThrowException() 호출 시 프로세스 크래시 방지
  • HTTP 파서 업그레이드: llhttp를 버전 9로 업그레이드하여 HTTP/1 헤더 종료 규칙 강제(\r\n\r\n 정확한 검증)
  • ReadFileUtf8 내부 바인딩 메모리 누수 수정: uv_fs_s.file의 손상된 포인터 복구로 UTF-16 경로 버퍼 누수 방지
  • Windows 환경의 파일 디스크립터 설정 단계에서 버퍼 덮어쓰기 문제 해결

Impact

고위험 취약점 1건, 중위험 취약점 1건, 저위험 취약점 1건이 각각의 릴리스 라인에서 패치됩니다. Node.js 20.x는 3가지 취약점 모두 영향, 22.x와 24.x는 고위험 취약점만, 23.x는 고위험 취약점만 영향을 받습니다.

Key Takeaway

Node.js를 사용하는 본프로덕션 환경에서는 2025년 5월 14일 이후 배포되는 보안 업데이트(24.x, 23.x, 22.x, 20.x)를 가능한 빨리 적용해야 하며, 특히 암호화 연산, HTTP 파싱, Windows 기반 파일 작업이 포함된 워크로드는 우선순위를 높여야 합니다.


Node.js를 운영 중인 팀에서는 nodejs-sec 메일링 리스트에 구독하고 공식 Release Schedule을 추적하여 활성 릴리스 라인별 보안 업데이트 배포 일정을 사전에 파악한 후, 암호화/HTTP 처리/파일 I/O 의존도에 따라 단계적 업그레이드 계획을 수립하면 예상치 못한 프로세스 크래시와 보안 침해를 예방할 수 있습니다.

원문 읽기