{"id":"ghsa-ghsa-pxh4-856f-4h89","seq":309602,"kind":"advisory","title":"PyJWT: HS256/384/512 verify accepts empty HMAC key via oct JWK (PyJWK/PyJWKClient) enabling token forgery","url":"https://github.com/advisories/GHSA-pxh4-856f-4h89","permalink":"https://vulnpulse.app/items/ghsa-ghsa-pxh4-856f-4h89","summary":"影響: pip:pyjwt <= 2.13.0 → 2.14.0\nHMACAlgorithm.from_jwk accepts a symmetric (kty=oct) JWK whose k value is the empty string and returns a zero-length key without raising. When a token is then verified with that key object (a PyJWK, or a PyJWK resolved by PyJWKSet / PyJWKClient), the HMAC verifier computes HMAC(key=b\"\", signing_input) and accepts any token an attacker forged with the same empty key. The attacker needs no secret knowledge: they reproduce the digest locally with an empty key and set the token's kid to the empty-k…","severity":"high","techs":["python"],"cves":[],"tags":["GHSA-pxh4-856f-4h89","pyjwt"],"source":{"id":"ghsa","name":"GitHub Advisory Database"},"published_at":"2026-10-22T15:48:04.000Z","fetched_at":"2026-10-22T20:09:55.169Z"}