CVE-2026-54431
Description
A flaw was found in liboauth2. The Demonstrating Proof-of-Possession (DPoP) verifier incorrectly accepts a malformed DPoP proof. This proof contains private key material in its JSON Web Key (JWK) header, which should be rejected according to RFC 9449. This vulnerability could allow an attacker to bypass the intended proof-of-possession mechanism.
Statement
A flaw in liboauth2's DPoP verifier allows it to accept malformed proofs containing private key material, contrary to RFC 9449. This could enable an attacker to bypass the proof-of-possession mechanism, potentially compromising the integrity of token validation in applications utilizing the library. The impact is limited to applications that implement DPoP using liboauth2 and do not perform additional validation.
Mitigation
Ensure DPoP client implementations do not include private key material in
the JWK header of DPoP proofs. Review client code to verify only the public
key is serialized into the proof's jwk header field. Upgrade liboauth2 to
version 2.3.0 or later, which adds server-side rejection of proofs
containing private key material per RFC 9449 section 4.3.
Understanding the Weakness (CWE)
Access Control
Technical Impact: Bypass Protection Mechanism
Frequently Asked Questions
Not sure what something means? Check out our Security Glossary.
Want to get errata notifications? Sign up here.