GHSA-7jrq-q4pq-rhm6
### Summary The `trustedCertPool()` function in the TLS configuration only parses the first PEM block from CA certificate files. When a CA bundle contains multiple certificates (e.g., intermediate + root CA), only the first certificate is loaded. This silently breaks certificate chain validation for mTLS. ### Impact In deployments using mTLS with certificate chains (intermediate CA + root CA bundles), legitimate clients with properly chained certificates are rejected with `x509: certificate signed by unknown authority`. This degrades the security posture by making mTLS unusable with standard CA chain configurations, potentially forcing operators to disable client certificate verification. All versions using TLS with `trustedCaFile` configuration are affected. ### Details In `common/security/tls.go`, the `trustedCertPool()` method calls `pem.Decode()` only once, processing a single PEM block. The remaining bytes (containing additional certificates) are silently discarded. Additionally, the error return from `pem.Decode` is ignored, so a corrupted CA file results in an empty certificate pool without any error. ### Patches Fixed by iterating over all PEM blocks in the file, parsing each CERTIFICATE block, and returning an error if no valid certificates are found. ### Workarounds Use CA files containing only a single certificate (the direct issuer of client certificates, not a chain).
Properties
- ghsa_id
- GHSA-7jrq-q4pq-rhm6
- severity
- high
- summary
- Oxia's TLS CA certificate chain validation fails with multi-certificate PEM bundles
- cve_id
- GHSA-7jrq-q4pq-rhm6
- is_ghsa_only
- true
- ghsa_published
- 2026-04-14T23:15:16Z
- source_url
- https://github.com/advisories/GHSA-7jrq-q4pq-rhm6
- ghsa_updated
- 2026-04-14T23:15:16Z
Related Entities (4)
VULNERABLE_TO (1)
AFFECTS (1)
HAS_WEAKNESS (1)
REPORTED_BY (1)
Explore deeper with Ninja Signal's threat intelligence graph