피드로 돌아가기
Node.js 10.4.1 (Current)
Node.js BlogNode.js Blog
Backend

Node.js 10.4.1이 net.Socket, http2, TLS, nghttp2 모듈의 메모리 누수 및 DoS 취약점 4개를 패치하여 프로덕션 안정성 확보

Node.js 10.4.1 (Current)

2018년 6월 12일4beginner

Context

Node.js 9.7.0 이후 net.Socket 객체를 스트림으로 직접 사용할 때 네트워크 읽기 작업 중 메모리 소비가 과도하게 증가하는 문제가 발생했다. 동시에 http2 모듈과 TLS 구현에서 특정 상황에서 프로세스가 비정상 종료되는 취약점들이 발견되었다.

Technical Solution

  • net.Socket 메모리 누수 수정: 네트워크 읽기 시 JavaScript로 전달되는 데이터의 메모리 할당 로직 개선 (CVE-2018-7164)
  • http2 DoS 취약점 패치: cleanup 과정 중 특정 조건에서의 크래시 방지 로직 추가 (CVE-2018-7161)
  • nghttp2 라이브러리 업그레이드: 1.32.0 버전으로 업데이트하여 보안 결함 제거 (CVE-2018-1000168)
  • TLS 구현 안정화: 특정 입력 수신 시 발생하던 비정상 종료 방지 (CVE-2018-7162)
  • N-API use-after-free 방지: napi_delete_async_work 함수에서 메모리 해제 후 접근 제거

Key Takeaway

Node.js와 같은 저수준 런타임에서 메모리 관리 및 외부 라이브러리 의존성 업데이트는 단순한 기능 추가가 아닌 필수 보안 요소이며, 마이너 버전 패치도 프로덕션 환경에서 즉시 적용이 필요한 경우가 있다.


Node.js를 사용하는 백엔드 팀에서는 보안 취약점이 명시된 포인트 릴리스(

1

0.

4.1 같은 패치 버전)를 자동 모니터링 시스템으로 추적하고, net.Socket 스트림 처리나 http2 통신을 구현한 서비스는 메모리 누수 및 예기치 않은 프로세스 종료를 대비하기 위해 우선 업그레이드 검토가 필요하다.

원문 읽기