피드로 돌아가기
September 2020 Security Releases
Node.js BlogNode.js Blog
Security

Node.js가 9월 2020 보안 업데이트로 HTTP 요청 스머글링, DoS 공격, 버퍼 오버플로우 3가지 취약점 해결

September 2020 Security Releases

2020년 9월 15일5beginner

Context

Node.js의 HTTP 헤더 파싱 과정에서 캐리지 리턴을 하이픈으로 변환하여 HTTP Request Smuggling 공격에 취약했다. 또한 지연된 요청으로 인한 HTTP DoS 공격과 libuv의 realpath 구현에서 256바이트 이상의 경로 처리 시 버퍼 오버플로우가 발생 가능했다.

Technical Solution

  • HTTP Request Smuggling 취약점: 캐리지 리턴 문자를 하이픈으로 변환하는 비표준 헤더 파싱 로직 제거
  • HTTP DoS 취약점: http.Server에 requestTimeout 옵션 신규 추가, 기본값 0으로 설정하여 비활성화 상태에서 시작
  • libuv 버퍼 오버플로우: realpath 구현에서 버퍼 크기 결정 로직 수정하여 256바이트 초과 경로 처리 지원

Key Takeaway

Node.js는 9월 15일 2020년에 v10.x, v12.x, v14.x 버전 라인에 대한 보안 패치를 릴리스했으며, 각 버전 라인별로 중대도가 다른 취약점들이 수정되었다.


Node.js를 엣지 서버로 사용하는 운영 환경에서는 requestTimeout 옵션을 명시적으로 설정하여 지연된 요청 기반의 DoS 공격으로부터 보호해야 한다. 또한 HTTP 헤더 파싱에서 캐리지 리턴 처리를 표준에 맞게 하고, 긴 파일 경로를 다루는 애플리케이션은 libuv 업데이트를 통해 버퍼 오버플로우 위험을 제거할 수 있다.

원문 읽기