VU#573195: Go, OpenSSL, Apple,... Note

VU#573195: Go, OpenSSL, Apple, LibreSSL, pyca, wolfSSL Name-Constraint Inconsistency in RFC 5280 Implementation

TLS libraries exhibit varying interpretations of X.509 Name Constraints, leading to certificate acceptance or rejection inconsistencies. These differences arise from implementation defects and areas not fully specified by RFC 5280. Specifically, disparities exist in how DNS name comparison handles case sensitivity. IP address handling also differs, particularly regarding IPv4-mapped IPv6 addresses. URI-authority parsing presents inconsistencies in extracting the host when specific characters or components are present. Wildcard matching semantics for Subject Alternative Names are not clearly defined, causing further divergence. Some issues are outright implementation defects, while others stem from the RFC's lack of explicit guidance. The impact of these differences is limited, requiring a combination of a compromised trusted signature, a vulnerable validation path, and an application using the identity for authorization. Mixed environments like service meshes or CDNs may encounter inconsistent certificate validation for the same certificate. CERT/CC is collaborating with affected TLS library projects to address these issues. Operators requiring high assurance should test their validators, apply updates, and use explicit Subject Alternative Names. Application-layer allow-lists and issuance policies can also help mitigate these differences.