🇰🇷 한글 설명
Python의 cryptography 패키지에서 DNS 이름 제약 조건 검증 시, 자식 인증서의 SAN만 확인하고 실제 검증 과정의 '피어 이름'은 검증하지 않는 문제가 발생했습니다. 이로 인해 상위 인증서에서 특정 서브트리를 제외하도록 설정했더라도, 와일드카드 인증서를 통해 해당 도메인의 검증이 허용될 수 있습니다.
💡 쉬운 설명
디지털 인증서 검사 과정에서 특정 주소를 접속 불가능하게 막아두었음에도 불구하고, 이를 우회하여 접속을 허용하는 보안 허점이 발견되었습니다. 공격자가 권한이 없는 도메인으로 위장하여 인증을 통과할 가능성이 있습니다.
🇺🇸 원문 (English)
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to version 46.0.6, DNS name constraints were only validated against SANs within child certificates, and not the "peer name" presented during each validation. Consequently, cryptography would allow a peer named bar.example.com to validate against a wildcard leaf certificate for *.example.com, even if the leaf's parent certificate (or upwards) contained an excluded subtree constraint for bar.example.com. This issue has been patched in version 46.0.6.
📍 영향받는 시스템
Python cryptography 패키지 46.0.6 미만 버전
⚔️ 공격 벡터
상위 인증서의 DNS 제약 조건을 우회하여 유효하지 않은 피어 이름을 가진 인증서로 인증을 시도함
🛡️ 대응 방법
cryptography 패키지를 46.0.6 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 46.0.6보다 낮으면 취약한 상태이며, 46.0.6 이상이면 패치된 상태입니다.
pip show cryptography | grep -E 'Version: [0-9.]+'