피드로 돌아가기
Node.js BlogSecurity
원문 읽기
Node.js가 2018년 6월 보안 릴리스를 통해 http2, ALTSVC, TLS, net.Socket, Buffer 관련 5개의 고위험 DoS 취약점 패치
June 2018 Security Releases
AI 요약
Context
Node.js의 여러 릴리스 라인(6.x, 8.x, 9.x, 10.x)에서 DoS 공격에 취약한 버그들이 발견되었다. http2 서버, TLS 핸드셰이크, 네트워크 읽기 작업, Buffer 함수 등 핵심 모듈에서 공격자가 의도적으로 서버를 다운시킬 수 있는 여러 경로가 존재했다.
Technical Solution
- http2 구현 업데이트: http2 서버에서 네이티브 코드 실행 중 객체 참조 해제 이후 사용으로 인한 크래시 버그 수정
- nghttp2 업데이트: ALTSVC 프레임 파싱 중 초기화되지 않은 메모리 읽기 및 세그먼트 폴트 제거
- TLS 구현 업데이트: 핸드셰이크 중 중복/예기치 않은 메시지로 인한 TLS 서버 크래시 방지
- net.Socket 메모리 버그 수정: 9.7.0에서 도입된 네트워크 읽기 시 메모리 소비 증가 문제를 이전 동작으로 복귀
- Buffer.fill() 및 Buffer.alloc() 동작 개선: 빈 Buffer 또는 Uint8Array를 파라미터로 사용할 때 무한 대기 상태를 대신 제로 필링으로 변경
Key Takeaway
네트워크 서버 소프트웨어에서 입력 데이터 검증과 메모리 관리는 중요 공격 벡터이며, 특히 바이너리 프로토콜(http2, TLS) 파싱과 네이티브 코드 영역에서 엣지 케이스 테스트가 필수적이다.
실천 포인트
Node.js 기반 프로덕션 서버를 운영하는 팀은 즉시 2018년 6월 보안 릴리스 이상으로 업그레이드하여, http2 또는 TLS 서버의 경우 HIGH 심각도 DoS 공격으로부터 보호해야 한다.