🇰🇷 한글 설명
Node.js의 특정 버전에서 SAN(Subject Alternative Names)을 문자열로 변환하는 과정 중 주입 취약점이 발견되었습니다. 인증서 체인 내 이름 제약 조건(name constraints)이 사용될 경우, 이 취약점을 통해 제약 조건을 우회할 수 있습니다.
💡 쉬운 설명
인증서의 이름을 확인하는 과정에서 보안 규칙을 무시할 수 있는 허점이 발견되었습니다. 이를 통해 공격자가 가짜 인증서를 사용하여 연결을 가로챌 위험이 있습니다.
🇺🇸 원문 (English)
Node.js < 12.22.9, < 14.18.3, < 16.13.2, and < 17.3.1 converts SANs (Subject Alternative Names) to a string format. It uses this string to check peer certificates against hostnames when validating connections. The string format was subject to an injection vulnerability when name constraints were used within a certificate chain, allowing the bypass of these name constraints.Versions of Node.js with the fix for this escape SANs containing the problematic characters in order to prevent the injection. This behavior can be reverted through the --security-revert command-line option.
📍 영향받는 시스템
Node.js < 12.22.9, < 14.18.3, < 16.13.2, < 17.3.1
⚔️ 공격 벡터
인증서 체인 내 이름 제약 조건이 포함된 SAN 문자열에 특수 문자를 주입하여 검증 로직을 우회함
🛡️ 대응 방법
Node.js를 최신 보안 패치 버전(12.22.9, 14.18.3, 16.13.2, 17.3.1 이상)으로 업데이트함
🔧 검증 코드
출력된 Node.js 버전이 취약점이 해결된 버전보다 낮은지 확인합니다.