Key confusion through non-blocklisted public key formats in PyJWT
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Information disclosure
- Confidentiality · integrity · availability
- None · High · None
- Fix status
- Partial Red Hat: 10 without a fix
Attack profile from CVSS 3.1 · NVD. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-327.
Summary
PyJWT is a Python implementation of RFC 7519. PyJWT supports multiple different JWT signing algorithms. With JWT, an attacker submitting the JWT token can choose the used signing algorithm. The PyJWT library requires that the application chooses what algorithms are supported. The application can specify `jwt.algorithms.get_default_algorithms()` to get support for all algorithms, or specify a single algorithm. The issue is not that big as `algorithms=jwt.algorithms.get_default_algorithms()` has to be used. Users should upgrade to v2.4.0 to receive a patch for this issue. As a workaround, always be explicit with the algorithms that are accepted and expected when decoding.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| jpadilla | pyjwt | 1.5.0 to before 2.4.0 | 2.4.0 | Patch available | CNA |
| — | pyjwt (PyPI) | 1.5.0 to before 2.4.0 | 2.4.0 | Patch available | GHSA-ffqj-6fqr-9h24 |
- pyjwt Vendorjpadilla Affected 1.5.0 to before 2.4.0 Fixed in 2.4.0 Patch available CNA
- pyjwt (PyPI) Vendor— Affected 1.5.0 to before 2.4.0 Fixed in 2.4.0 Patch available GHSA-ffqj-6fqr-9h24
CPE configurations NVD · 3
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:pyjwt_project:pyjwt:*:*:*:*:*:*:*:* | 1.5.0 to before 2.4.0 | Vulnerable | jpadilla |
| cpe:2.3:o:fedoraproject:fedora:35:*:*:*:*:*:*:* | 35 | Vulnerable | Fedoraproject |
| cpe:2.3:o:fedoraproject:fedora:36:*:*:*:*:*:*:* | 36 | Vulnerable | Fedoraproject |
- cpe:2.3:a:pyjwt_project:pyjwt:*:*:*:*:*:*:*:* Versions 1.5.0 to before 2.4.0 Vulnerable ·jpadilla
- cpe:2.3:o:fedoraproject:fedora:35:*:*:*:*:*:*:* Versions 35 Vulnerable ·Fedoraproject
- cpe:2.3:o:fedoraproject:fedora:36:*:*:*:*:*:*:* Versions 36 Vulnerable ·Fedoraproject
Remediation
- Fix · CNA pyjwt (jpadilla) Fixed in 2.4.0
- Fix · GHSA-ffqj-6fqr-9h24 pyjwt (PyPI) Fixed in 2.4.0 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Ansible Automation Platform 2 | Affected | No fix yet |
| Red Hat Ceph Storage 4 | Affected | No fix yet |
| Red Hat Ceph Storage 5 | Affected | No fix planned: Will not fix |
| Red Hat Enterprise Linux 8 | Affected | No fix planned: Will not fix |
| Red Hat Enterprise Linux 9 | Affected | No fix planned: Will not fix |
| Red Hat OpenStack Platform 13 (Queens) | Affected | No fix planned: Out of support scope |
| Red Hat Openshift Container Storage 4 | Affected | No fix planned: Out of support scope |
| Red Hat Quay 3 | Affected | No fix yet |
| Red Hat Satellite 6 | Affected | No fix yet |
| Red Hat Storage 3 | Affected | No fix planned: Will not fix |
Not affected: 6 products
- Red Hat Enterprise Linux 7
- Red Hat Enterprise Linux 9
- Red Hat OpenStack Platform 16.1
- Red Hat OpenStack Platform 16.2
- Red Hat Openshift Data Foundation 4
- Red Hat Satellite 6
Timeline
- 2026-10-02 Threatist record created from CVE-2022-29217
- 2026-10-03 Alias added: GHSA-ffqj-6fqr-9h24
References
Advisory 5
Other 4
- https://github.com/jpadilla/pyjwt
- https://github.com/pypa/advisory-database/tree/main/vulns/pyjwt/PYSEC-2022-202.yaml
- https://lists.fedoraproject.org/archives/list/[email protected]/message/5PK7IQCBVNLYJEFTPHBBPFP72H4WUFNX
- https://lists.fedoraproject.org/archives/list/[email protected]/message/6HIYEYZRQEP6QTHT3EHH3RGFYJIHIMAO
More jpadilla Pyjwt vulnerabilities
- TI-2026-65303 Improper signature verification in jpadilla pyjwt CVSS 3.1CRITICAL 9.1
- TI-2026-65301 PyJWK accepts empty HMAC keys, bypassing PyJWT's empty-key validation CVSS 3.1CRITICAL 9.1
- TI-2026-65219 PyJWT: Unauthenticated RecursionError DoS in pre-verification payload parse… CVSS 3.1HIGH 7.5
- TI-2026-65218 PyJWT: PyJWKClient still amplifies unauthenticated JWKS fetches on unknown kid values (incomplete fix of CVE-2026-48524) CVSS 3.1HIGH 7.5
- TI-2026-25107 PyJWT accepts unknown `crit` header extensions (RFC 7515 §4.1.11 MUST violation) CVSS 3.1HIGH 7.5
- TI-2026-65310 PyJWT accepts inconsistent OKP x/d JWKs, causing public/private key identity confusion CVSS 3.1HIGH 8.2
Sources
- CVE-2022-29217 · CVE Program
- CVE-2022-29217 · NVD
- FIRST EPSS
- GHSA-ffqj-6fqr-9h24 · GitHub Advisory Database · CC BY 4.0
- CVE-2022-29217 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences