joserfc: HS256/HS384/HS512 verify accepts empty/nil HMAC key (cross-language sibling of CVE-2026-45363)
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Security bypass, Information disclosure
- Confidentiality · integrity · availability
- None · High · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-287 and CWE-326.
Summary
joserfc is a Python library that provides an implementation of several JSON Object Signing and Encryption (JOSE) standards. Prior to 1.6.8, joserfc.jwt.decode accepts attacker-forged HMAC-signed tokens when the caller-supplied verification key is the empty string or None, because HMACAlgorithm.sign and HMACAlgorithm.verify in src/joserfc/_rfc7518/jws_algs.py pass the output of OctKey.get_op_key(...) to hmac.new(...) and OctKey.import_key in src/joserfc/_rfc7518/oct_key.py only emits a SecurityWarning for keys shorter than 14 bytes without rejecting zero-length input. This issue is fixed in version 1.6.8.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- Yes
- Technical impact
- Partial
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 |
|---|---|---|---|---|---|
| authlib | joserfc | before 1.6.8 | 1.6.8 | Patch available | CNA |
| — | joserfc (PyPI) | before 1.6.8 | 1.6.8 | Patch available | GHSA-gg9x-qcx2-xmrh |
- joserfc Vendorauthlib Affected before 1.6.8 Fixed in 1.6.8 Patch available CNA
- joserfc (PyPI) Vendor— Affected before 1.6.8 Fixed in 1.6.8 Patch available GHSA-gg9x-qcx2-xmrh
Remediation
- Fix · CNA joserfc (authlib) Fixed in 1.6.8
- Fix · GHSA-gg9x-qcx2-xmrh joserfc (PyPI) Fixed in 1.6.8 Advisory →
Red Hat 1 advisory
- RHSA-2026:42045 Released 2026-07-20 · Red Hat rating ImportantRed Hat Hardened Images RPMs Security Update
- Red Hat Hardened Images jaeger-2.19.0-1.2.hum1@aarch64, jaeger-2.19.0-1.2.hum1@src, jaeger-2.19.0-1.2.hum1@x86_64
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Hardened Images | Fixed | RHSA-2026:42045 |
Not affected: 7 products
- Lightspeed Core
- Migration Toolkit for Applications 8
- OpenShift Lightspeed
- Red Hat Ansible Automation Platform 2
- Red Hat Enterprise Linux command line assistant
- Red Hat OpenShift Virtualization 4
- Red Hat Satellite 6
Timeline
- 2026-10-02 Threatist record created from CVE-2026-49852
- 2026-10-03 Alias added: GHSA-gg9x-qcx2-xmrh
References
Other 5
- https://github.com/authlib/joserfc/security/advisories/GHSA-gg9x-qcx2-xmrh
- https://github.com/authlib/joserfc/commit/86d00910b2b2d2d07503fee9b572906daefab7f1
- https://github.com/authlib/joserfc/releases/tag/1.6.8
- https://github.com/authlib/joserfc
- https://github.com/authlib/joserfc/blob/1ddca8f3c73ff47e3bc3ac06cb0c08a9535677ec/src/joserfc/_rfc7518/jws_algs.py#L62-L70
More authlib vulnerabilities
- TI-2026-65772 Insufficient verification of data authenticity in Authlib CVSS 3.1CRITICAL 9.8
- TI-2026-74876 Signature verification bypass in joserfc JWS deserialization CVSS 3.1CRITICAL 9.1
- TI-2026-22305 Authlib JWS JWK Header Injection: Signature Verification Bypass CVSS 3.1CRITICAL 9.1
- TI-2025-40202 Resource allocation without limits in authlib joserfc CVSS 4.0CRITICAL 9.2
- TI-2026-79518 Authlib fix bypass lets attackers forge HS256 tokens with PEM keys CVSS 3.1CRITICAL 9.1
- TI-2026-82772 Uncontrolled resource consumption in authlib joserfc CVSS 3.1HIGH 7.5
Sources
- CVE-2026-49852 · CVE Program
- CVE-2026-49852 · NVD
- FIRST EPSS
- GHSA-gg9x-qcx2-xmrh · GitHub Advisory Database · CC BY 4.0
- CVE-2026-49852 · 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