CVE-2023-0466 Overview
CVE-2023-0466 is a certificate validation flaw in OpenSSL affecting the X509_VERIFY_PARAM_add0_policy() function. The function's documentation states that calling it implicitly enables the certificate policy check during X.509 certificate verification. The implementation does not enable the check, allowing certificates with invalid or incorrect policies to pass verification. Applications relying on the documented behavior receive a false assurance that policy validation is occurring. The issue is classified under CWE-295: Improper Certificate Validation.
Critical Impact
Applications that depend on X509_VERIFY_PARAM_add0_policy() to enforce certificate policy constraints accept certificates with invalid policies, weakening trust decisions during TLS and PKI operations.
Affected Products
- OpenSSL 3.0.0 through 3.0.8
- OpenSSL 1.1.1 through 1.1.1t
- OpenSSL 1.0.2 through 1.0.2zg (premium support customers)
Discovery Timeline
- 2023-03-28 - CVE-2023-0466 published to NVD and disclosed in OpenSSL Security Advisory
- 2025-02-19 - Last updated in NVD database
Technical Details for CVE-2023-0466
Vulnerability Analysis
The vulnerability is a mismatch between documented API behavior and actual implementation in OpenSSL's certificate verification logic. The X509_VERIFY_PARAM_add0_policy() function adds a policy OID to the verification parameters. Its documentation indicates this call should implicitly set the X509_V_FLAG_POLICY_CHECK flag so that the policy check runs during chain validation. The implementation only adds the policy to the internal list without enabling the flag.
Developers reading the documentation assume that policy enforcement is active after calling the function. In practice, certificates that fail the policy constraint are accepted as valid. The OpenSSL project decided not to change the runtime behavior because suddenly enabling the check would break deployments that depend on the existing leniency. The fix is documentation-only, and applications must explicitly enable enforcement.
Root Cause
The root cause is an inconsistency between the function's manual page and its implementation. Certificate policy checks are disabled by default in OpenSSL and are not commonly used by applications. The function was expected to be the activation point for policy checking but only mutates the policy list, leaving the X509_V_FLAG_POLICY_CHECK verification flag unset.
Attack Vector
An attacker presenting a certificate with invalid or unauthorized policy OIDs can pass verification on a system that relies on X509_VERIFY_PARAM_add0_policy() for policy enforcement. The attack vector is network-based, requires no authentication, and targets trust decisions in TLS clients, code signing verifiers, or other PKI-dependent applications that enforce policy constraints. Real-world impact depends on whether the application uses policy validation as a security boundary.
No public proof-of-concept exploit is available, and CISA has not added this CVE to the Known Exploited Vulnerabilities catalog. The vulnerability mechanism is described in the OpenSSL Security Advisory dated 28 March 2023. Patch commits are available at OpenSSL commit 0d16b7e9, commit 51e8a84c, and commit fc814a30.
Detection Methods for CVE-2023-0466
Indicators of Compromise
- Successful TLS handshakes or certificate validations using certificates whose policy OIDs do not match the application's intended policy set.
- Application logs showing acceptance of certificates that should fail policy constraint validation under documented behavior.
Detection Strategies
- Inventory deployed OpenSSL versions across hosts and containers, flagging versions prior to OpenSSL 1.1.1t and 3.0.8.
- Review application source code for calls to X509_VERIFY_PARAM_add0_policy() that are not paired with X509_VERIFY_PARAM_set_flags() setting X509_V_FLAG_POLICY_CHECK.
- Use software composition analysis tooling to identify vendored or statically linked OpenSSL libraries embedded in third-party software.
Monitoring Recommendations
- Monitor PKI and TLS termination points for unexpected certificate policy OIDs in client or server certificates presented during sessions.
- Track certificate verification telemetry from applications that perform policy-based authorization decisions and alert on anomalous policy values.
- Capture and review OpenSSL build and version metadata as part of regular vulnerability management scans.
How to Mitigate CVE-2023-0466
Immediate Actions Required
- Upgrade OpenSSL to a fixed release: 1.1.1t or later for the 1.1.1 branch and 3.0.8 or later for the 3.0 branch, where available from your distribution.
- Audit application code that calls X509_VERIFY_PARAM_add0_policy() and add an explicit call to X509_VERIFY_PARAM_set_flags() with X509_V_FLAG_POLICY_CHECK, or use X509_VERIFY_PARAM_set1_policies().
- Apply distribution security updates from the Debian Security Advisory DSA-5417, Debian LTS Announcement, and Gentoo GLSA 202402-08.
- Review vendor advisories for embedded OpenSSL, including the NetApp Security Advisory.
Patch Information
The OpenSSL project addressed CVE-2023-0466 through documentation updates and committed fixes referenced in commit 0d16b7e9, commit 51e8a84c, and commit fc814a30. Because the project chose not to alter runtime behavior to preserve compatibility, application developers are responsible for explicitly enabling policy validation. Full details are documented in the OpenSSL Security Advisory of 28 March 2023.
Workarounds
- Replace calls to X509_VERIFY_PARAM_add0_policy() with X509_VERIFY_PARAM_set1_policies() when policy enforcement is required.
- Where source modifications are not possible, explicitly call X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_POLICY_CHECK) after adding policies.
- Restrict trust stores to issuing certificate authorities whose issuance practices already constrain policy OIDs, reducing reliance on runtime policy enforcement.
# Verify installed OpenSSL version
openssl version -a
# Debian/Ubuntu: apply distribution updates
sudo apt update && sudo apt install --only-upgrade openssl libssl1.1 libssl3
# RHEL/CentOS
sudo yum update openssl
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


