피드로 돌아가기
Node.js BlogSecurity
원문 읽기
Node.js가 V8 스냅샷 기본 활성화로 인한 상수 해시 시드 취약점(CVE-2017-11499)을 해결하기 위해 스냅샷 비활성화로 해시 플러딩 DoS 공격 차단
Security updates for all active release lines, July 2017
AI 요약
Context
Node.js의 모든 활성 릴리스 라인(4.x, 6.x, 8.x) 및 7.x가 상수 해시테이블 시드로 인한 해시 플러딩 원격 DoS 공격에 취약했다. V8 스냅샷이 기본으로 활성화되면서 시작 시 무작위화된 시드가 덮어씌워지는 문제가 발생했다.
Technical Solution
- V8 스냅샷 기본 비활성화: 해시 시드의 상수화 문제 해결으로 해시 플러딩 공격 방지
- http.get() 인증 옵션 검증 강화: 4.x 릴리스에서 auth 필드가 숫자인 경우 TypeError 발생하도록 파싱 로직 수정
- c-ares 라이브러리 패치 적용: NAPTR 파서 out of bounds 접근 취약점(CVE-2017-1000381) 해결
- 모든 활성 릴리스 라인(4.x, 6.x, 8.x) 및 7.x에 동일한 보안 업데이트 배포
Impact
V8 스냅샷 비활성화로 인해 vm.runInNewContext에 크게 의존하는 코드에서 성능 저하 발생 예상.
Key Takeaway
높은 심각도의 보안 취약점은 런타임의 내부 최적화 설정(스냅샷 활성화)이 보안과 트레이드오프가 될 수 있음을 보여준다. 해결 방안이 완전하지 않을 때(better solution 필요)는 보안을 우선시하되 성능 영향을 명시적으로 문서화해야 한다.
실천 포인트
Node.js 애플리케이션 배포 시 2017년 7월 보안 업데이트 이후 버전 사용 시 vm.runInNewContext 성능이 저하될 수 있으므로, 해당 기능에 의존하는 코드는 성능 테스트를 통해 영향도를 사전에 파악하고 최적화 방안을 준비해야 한다.