p PatchFirst

CVE-2026-27962

CVE-2026-27962 · Authlib JWS JWK Header Injection: Signature Verification Bypass

This page contains facts from public vulnerability sources. Check the original advisory before updating.

Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to version 1.6.9, a JWK Header Injection vulnerability in authlib's JWS implementation allows an unauthenticated attacker to forge arbitrary JWT tokens that pass signature verification. When key=None is passed to any JWS deserialization function, the library extracts and uses the cryptographic key embedded in the attacker-controlled JWT jwk header field. An attacker can sign a token with their own private key, embed the matching public key in the header, and have the server accept the forged token as cryptographically valid — bypassing authentication and authorization entirely. This issue has been patched in version 1.6.9.

CVSS 9.1 · Critical · EPSS 0.5% · Fix available

Published
Updated

Stack: system · python

Affected products and versions

  • authlib

    Versions
    • < 1.6.9: Affected

    No fix published

  • python-authlib Debian:12

    Versions
    • 1.2.0-1
    • 1.2.0-1+deb12u1
    Affected ranges
    • ECOSYSTEM: < 1.2.0-1+deb12u2

    Update to 1.2.0-1+deb12u2

  • python-authlib Debian:13

    Versions
    • 1.6.0-1
    • 1.6.0-1+deb13u1
    • 1.6.1-1
    • 1.6.3-1
    • 1.6.4-1
    • 1.6.5-1
    • 1.6.6-1
    • 1.6.7-1
    • 1.6.8-1
    • 1.6.9-1
    • 1.7.0-1
    • 1.7.2-1
    • 1.7.2-2
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-authlib Debian:14

    Versions
    • 1.6.0-1
    • 1.6.1-1
    • 1.6.3-1
    • 1.6.4-1
    • 1.6.5-1
    • 1.6.6-1
    • 1.6.7-1
    • 1.6.8-1
    Affected ranges
    • ECOSYSTEM: < 1.6.9-1

    Update to 1.6.9-1

  • authlib PyPI

    Versions
    • 0.1
    • 0.10
    • 0.11
    • 0.12
    • 0.12.1
    • 0.13
    • 0.14
    • 0.14.1
    • 0.14.2
    • 0.14.3
    • 0.15
    • 0.15.1
    • 0.15.2
    • 0.15.3
    • 0.15.4
    • 0.15.5
    • 0.15.6
    • 0.1rc0
    • 0.2
    • 0.2.1
    • 0.3
    • 0.4
    • 0.4.1
    • 0.5
    • 0.5.1
    • 0.6
    • 0.7
    • 0.8
    • 0.9
    • 1.0.0
    • 1.0.0a1
    • 1.0.0a2
    • 1.0.0b1
    • 1.0.0b2
    • 1.0.0rc1
    • 1.0.1
    • 1.1.0
    • 1.2.0
    • 1.2.1
    • 1.3.0
    • 1.3.1
    • 1.3.2
    • 1.4.0
    • 1.4.1
    • 1.5.0
    • 1.5.1
    • 1.5.2
    • 1.6.0
    • 1.6.1
    • 1.6.2
    • 1.6.3
    • 1.6.4
    • 1.6.5
    • 1.6.6
    • 1.6.7
    • 1.6.8
    Affected ranges
    • ECOSYSTEM: < 1.6.9

    Update to 1.6.9

  • python-authlib Ubuntu:Pro:22.04:LTS

    Versions
    • 0.15.4-1
    • 0.15.5-1
    • 0.15.5-1ubuntu0.1~esm1
    Affected ranges
    • ECOSYSTEM: < 0.15.5-1ubuntu0.1~esm2

    Update to 0.15.5-1ubuntu0.1~esm2

  • python-authlib Ubuntu:Pro:24.04:LTS

    Versions
    • 1.2.1-1
    • 1.3.0-1
    • 1.3.0-1ubuntu0.1~esm1
    Affected ranges
    • ECOSYSTEM: < 1.3.0-1ubuntu0.1~esm2

    Update to 1.3.0-1ubuntu0.1~esm2

  • python-authlib Ubuntu:25.10

    Versions
    • 1.5.1-1
    • 1.5.2-1
    • 1.6.0-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-authlib Ubuntu:26.10

    Versions
    • 1.6.7-1
    • 1.7.2-1
    • 1.7.2-2
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-authlib Ubuntu:Pro:26.04:LTS

    Versions
    • 1.6.0-1
    • 1.6.5-1
    • 1.6.6-1
    • 1.6.7-1
    Affected ranges
    • ECOSYSTEM: < 1.6.7-1ubuntu0.1~esm1

    Update to 1.6.7-1ubuntu0.1~esm1

Original sources

Check your server →