피드로 돌아가기
Node.js BlogSecurity
원문 읽기
Node.js 14.18.3이 Subject Alternative Name 검증 로직을 수정해 PKI 체인 우회 공격 4가지 취약점 차단
Node.js 14.18.3 (LTS)
AI 요약
Context
Node.js가 X.509 인증서의 Subject Alternative Name(SAN) 유형 검증 시 URI SAN 타입을 무조건 수용하거나, 멀티값 Relative Distinguished Name(RDN)을 오인식하거나, console.table()의 프로토타입 폴루션으로 인해 이름 제약 중간 인증서를 우회할 수 있는 상황이 발생했다.
Technical Solution
- CVE-2021-44531: URI SAN 타입 비활성화 처리 및 URI SAN 매칭 로직 수정으로 명확하지 않은 SAN 타입 수용 중단
- CVE-2021-44532: SAN 문자열 변환 시 이름 제약 주입 공격 문자 이스케이프 처리 추가
- CVE-2021-44533: 멀티값 Relative Distinguished Name 검증 거부로 인증서 주제 검증 우회 공격 차단
- CVE-2022-21824: console.table() 함수의 프로토타입 폴루션 방지를 위해 null 프로토타입 오브젝트 사용
- --security-revert 커맨드라인 옵션으로 기존 동작 복구 가능
Key Takeaway
PKI 인증서 검증 로직은 표준 준수뿐 아니라 PKI 운영 관례까지 고려해야 하며, 문자열 변환 단계에서도 주입 공격 가능성을 검토하고, 유연한 데이터 구조 처리 시 프로토타입 오염 위험을 사전에 차단해야 한다.
실천 포인트
Node.js 기반 서비스를 운영하는 조직은 즉시
1
4.
1
8.3 이상으로 업그레이드하되, 기존 인증서나 PKI 정책이 URI SAN이나 멀티값 RDN에 의존하는 경우 --security-revert 옵션으로 검증 후 단계적 마이그레이션을 수행해야 한다.