피드로 돌아가기
Node.js BlogSecurity
원문 읽기
Node.js가 February 2021 보안 업데이트로 unknownProtocol 파일 디스크립터 누수, DNS 리바인딩, OpenSSL 취약점 3가지 해결
February 2021 Security Releases
AI 요약
Context
Node.js v10.x, v12.x, v14.x, v15.x 모든 버전이 세 가지 보안 취약점에 노출되어 있었다. 과도한 unknownProtocol 연결 시도로 파일 디스크립터가 누수되어 서버가 새로운 연결을 거부하거나 파일을 열 수 없는 상태가 발생했다. localhost6이 /etc/hosts에 없을 때 DNS 리바인딩 공격으로 보호가 우회될 수 있었고, OpenSSL 자체의 취약점도 Node.js를 통해 악용될 수 있었다.
Technical Solution
- unknownProtocol 파일 디스크립터 누수 해결: 과도한 연결 시도 시 메모리 누수 및 서버 거부 상태 발생 메커니즘을 수정
- DNS 리바인딩 공격 방어 강화: localhost6을 whitelist에서 제거하거나 /etc/hosts 검증 로직 추가
- OpenSSL 취약점 연쇄 해결: 기반 OpenSSL 라이브러리를 보안 업데이트된 버전으로 교체
- 모든 LTS 및 Current 릴리스 라인 동시 패치: v10.x, v12.x, v14.x, v15.x 전 버전에 업데이트 배포
Key Takeaway
Node.js와 같은 런타임 환경에서는 기반 라이브러리(OpenSSL 등)의 보안 취약점도 직접적인 위협이 되므로, 다중 계층의 보안 이슈에 대한 동시 대응과 전 버전에 걸친 체계적인 패치 배포가 필수적이다.
실천 포인트
Node.js 기반 프로덕션 서버를 운영하는 팀에서는 파일 디스크립터 누수 모니터링(네트워크 연결 수, 열린 파일 수 추적), DNS whitelist 설정 검토(localhost6 검증), 월간 보안 업데이트 릴리스 노트 구독을 통해 3가지 계층(애플리케이션, 인프라, 의존성)의 공격 면을 사전에 차단할 수 있다.