CVE-2021-44878 json
Pac4j token validation bypass if OpenID Connect provider supports none algorithm
published 2022-01-06 4 y ago modified 2026-06-17 4 mo ago also GHSA-xhw6-hjc9-679m , EUVD-2022-0744
- cvss
- 7.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.9%
- EPSS 0.9% chance of exploitation in 30 days, percentile 60%
- public exploits
- 0
- none known
Summary
If an OpenID Connect provider supports the "none" algorithm (i.e., tokens with no signature), pac4j v5.3.0 (and prior) does not refuse it without an explicit configuration on its side or for the "idtoken" response type which is not secure and violates the OpenID Core Specification. The "none" algorithm does not require any signature verification when validating the ID tokens, which allows the attacker to bypass the token validation by injecting a malformed ID token using "none" as the value of "alg" key in the header with an empty signature value.
Patch / fix
- maven org.pac4j:pac4j-oidc 4.5.5, 5.3.1
- pac4j pac4j 4.5.5, 5.3.1
- github.com/pac4j/pac4j@22b82ff commit
- github.com/pac4j/pac4j@09684e0 commit
- github.com/pac4j/pac4j@9c87bbc commit
Exploit prediction
0.92% chance of exploitation in the next 30 days, higher than 60% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| NVD | 2.0 | 5.0 | AV:N/AC:L/Au:N/C:N/I:P/A:N |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| maven | org.pac4j:pac4j-oidc | <4.5.5 >=5.0, <5.3.1 |
4.5.5 5.3.1 |
Classification
- Weakness
-
- CWE-347 Improper Verification of Cryptographic Signature
References
-
github.com
/pac4j/pac4j/commit/22b82ffd702a132d9f09da60362fc6264fc281ae
web, patch, third-party-advisory
-
github.com
/pac4j/pac4j/commit/09684e0de1c4753d22c53b8135d4ef61cfda76f7
web
-
github.com
/pac4j/pac4j/commit/9c87bbc536ed5d05f940ae015403120df2935589
web
-
pac4j.org
/blog/cve_2021_44878_is_this_serious.html
web, mitigation, vendor-advisory
-
openid.net
/specs/openid-connect-core-1_0.html#IDToken
web, product, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2021-44878
advisory
-
github.com
/pac4j/pac4j
package
-
pac4j.org
/4.5.x/docs/release-notes.html
web
Sources
- CVE List CVE-2021-44878
- GitHub Advisory GHSA-xhw6-hjc9-679m
- NVD CVE-2021-44878
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.