피드로 돌아가기
Node.js BlogSecurity
원문 읽기
Node.js 22.22.2 (LTS)
Node.js 22.22.2 LTS가 6개 CVE 패치로 SNI 콜백 예외 처리, 헤더 프로토타입 보호, HMAC 타이밍 공격 방어 구현
AI 요약
Context
Node.js 런타임의 TLS SNI 콜백, HTTP 헤더 처리, Web Cryptography HMAC 연산, HTTP/2 흐름 제어, 파일시스템 권한 검증에서 보안 취약점이 존재했다.
Technical Solution
- SNICallback 호출을 try-catch로 래핑: 콜백 실행 중 발생하는 예외를 잡아 런타임 크래시 방지
- headersDistinct와 trailersDistinct에 null 프로토타입 적용: 프로토타입 오염 공격으로 인한 헤더 조작 차단
- Web Cryptography HMAC에 타이밍 안전 비교 함수 도입: 동일 길이의 모든 입력에 대해 일정한 연산 시간 보장
- NGHTTP2_ERR_FLOW_CONTROL 에러 코드 처리 추가: HTTP/2 흐름 제어 오류 발생 시 적절한 핸들링
- realpath.native와 lib/fs/promises에 권한 검증 로직 추가: 파일시스템 접근 전 권한 확인
- 배열 인덱스 해시 충돌 테스트 수행: 해시 충돌로 인한 DoS 공격 방지
Impact
아티클에 정량적 수치가 명시되지 않음
Key Takeaway
Node.js LTS 릴리스는 네 가지 계층(TLS, HTTP, 암호화, 파일시스템)에서 발견된 보안 취약점을 한 버전에 집중 패치함으로써 프로덕션 환경의 종합적인 보안 강화를 달성했다.
실천 포인트
Node.js를 사용하는 프로덕션 서비스는 22.22.2 LTS 이상으로 업그레이드하여 TLS 핸드셰이크 단계의 예외 처리, 프로토타입 오염을 통한 헤더 조작, 타이밍 공격을 통한 HMAC 위변조, HTTP/2 흐름 제어 오류 악용, 파일시스템 권한 우회 공격으로부터 보호받을 수 있다.