chore(deps): update dependency authlib to v1.6.5 [security]#1959
Merged
mergify[bot] merged 1 commit intomasterfrom Oct 10, 2025
Merged
chore(deps): update dependency authlib to v1.6.5 [security]#1959mergify[bot] merged 1 commit intomasterfrom
mergify[bot] merged 1 commit intomasterfrom
Conversation
|
Build succeeded. ✔️ fi-tox-mypy SUCCESS in 5m 36s |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.6.4->1.6.5GitHub Vulnerability Alerts
CVE-2025-61920
Summary
Authlib’s JOSE implementation accepts unbounded JWS/JWT header and signature segments. A remote attacker can craft a token whose base64url‑encoded header or signature spans hundreds of megabytes. During verification, Authlib decodes and parses the full input before it is rejected, driving CPU and memory consumption to hostile levels and enabling denial of service.
Impact
Attack vector: unauthenticated network attacker submits a malicious JWS/JWT.
Effect: base64 decode + JSON/crypto processing of huge buffers pegs CPU and allocates large amounts of RAM; a single request can exhaust service capacity.
Observed behaviour: on a test host, the legacy code verified a 500 MB header, consuming ~4 GB RSS and ~9 s CPU before failing.
Severity: High. CVSS v3.1: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H (7.5).
Affected Versions
Authlib ≤ 1.6.3 (and earlier) when verifying JWS/JWT tokens. Later snapshots with 256 KB header/signature limits are not affected.
Proof of concept
Local demo (do not run against third-party systems):
Download jws_segment_dos_demo.py the PoC in direcotry authlib/
Run following Command
Environment: Python 3.13.6, Authlib 1.6.4, Linux x86_64, CPUs=8

Sample output: Refined
The compilation script prints separate “[ATTACKER]” (token construction) and “[SERVER]” (Authlib verification) RSS deltas so defenders can distinguish client-side preparation from server-side amplification. Regression tests authlib/tests/dos/test_jose_dos.py further capture the issue; the saved original_util.py/original_jws.py reproductions still accept the malicious payload.
Remediation
Apply the upstream patch that introduces decoded size limits:
MAX_HEADER_SEGMENT_BYTES = 256 KB
MAX_SIGNATURE_SEGMENT_BYTES = 256 KB
Enforce Limits in authlib/jose/util.extract_segment and _extract_signature.
Deploy the patched release immediately.
For additional defence in depth, reject JWS/JWT inputs above a few kilobytes at the proxy or WAF layer, and rate-limit verification endpoints.
Workarounds (temporary)
Enforce input size limits before handing tokens to Authlib.
Use application-level throttling to reduce amplification risk.
Resources
Demo script: jws_segment_dos_demo.py
Tests: authlib/tests/dos/test_jose_dos.py
OWASP JWT Cheat Sheet (DoS guidance)
Release Notes
authlib/authlib (authlib)
v1.6.5Compare Source
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.