CVE-2026-63571: Attribute certificate path validation does not verify the attribute certificate's signature
Improper verification of cryptographic signature in the attribute certificate path validator (PkixAttrCertPathValidator, also used by PkixAttrCertPathBuilder) in Legion of the Bouncy Castle Inc. bc-csharp before 2.7.0 allows a remote attacker to have a forged X.509 attribute certificate accepted as valid, and so obtain whatever roles or privileges an application grants on the strength of its attributes, via an attribute certificate that names a trusted attribute authority as its issuer but was not signed by it, because the RFC 3281 validation steps check the holder and issuer certification paths, validity period, extensions and revocation status but never verify the attribute certificate's signature with the issuer's public key. Only applications that use these classes to validate attribute certificates are affected.
Affected Software
Remediation
Patch Available
Event History
Frequently Asked Questions
Which deployments are affected?
Only applications using PkixAttrCertPathValidator or PkixAttrCertPathBuilder to validate X.509 attribute certificates are affected. Applications that do not use these classes for attribute-certificate validation are not affected.
What does an attacker need to exploit this issue?
An attacker can remotely submit a forged X.509 attribute certificate that identifies a trusted attribute authority as its issuer but is not signed by that authority. No privileges or user interaction are required according to the supplied CVSS vector.
What is the practical impact if exploitation succeeds?
The application may accept the forged attribute certificate as valid and grant the roles or privileges associated with its asserted attributes. The scope of impact depends on which application permissions are derived from attribute certificates.
Which validation checks fail to prevent the forgery?
The affected validator checks holder and issuer certification paths, validity period, extensions, and revocation status, but does not verify the attribute certificate signature using the issuer's public key. As a result, those other checks can pass even when the trusted issuer did not sign the certificate.
What version should be used to remediate the issue?
Upgrade bc-csharp to version 2.7.0 or later. Versions before 2.7.0 are affected.