{"id":"CVE-2026-49852","aliases":["GHSA-gg9x-qcx2-xmrh","PYSEC-2026-2528"],"url":"https://o3.security/vulnerability/CVE-2026-49852","summary":"joserfc: HS256/HS384/HS512 verify accepts empty/nil HMAC key (cross-language sibling of CVE-2026-45363)","details":"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.","published":"2026-07-17T19:14:58.019Z","modified":"2026-08-12T03:51:47.726578315Z","cvss":null,"epss":{"score":0.00194,"percentile":0.092,"asOf":"2026-09-08"},"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"PyPI","name":"joserfc","fixedVersion":"1.6.8"}],"fix":{"url":"https://github.com/authlib/joserfc/commit/86d00910b2b2d2d07503fee9b572906daefab7f1","label":"authlib/joserfc@86d0091"},"references":[{"type":"WEB","url":"https://github.com/authlib/joserfc/releases/tag/1.6.8"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/49xxx/CVE-2026-49852.json"},{"type":"ADVISORY","url":"https://github.com/authlib/joserfc/security/advisories/GHSA-gg9x-qcx2-xmrh"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-49852"},{"type":"FIX","url":"https://github.com/authlib/joserfc/commit/86d00910b2b2d2d07503fee9b572906daefab7f1"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-08-12T03:51:47.726578315Z"}}