GHSA-r9gp-7f88-9r54: Lemur: JWT verifier honors attacker-supplied alg, enabling ATO
Lemur version 1.9.0 and earlier contain a vulnerability where the JWT verifier trusts the algorithm specified in the token header without validation. This allows an attacker to influence the cryptographic verification process, creating a defense-in-depth gap. While PyJWT 2.x prevents single-request account takeover (ATO) via the 'alg=none' attack, this vulnerability could enable ATO if combined with a separate secret disclosure or if the system migrates to asymmetric signing without fixing this issue. Additionally, audit logs relying on the token's algorithm field can be blinded by attacker-supplied values.
AI Analysis
Technical Summary
The Lemur JWT verifier extracts the 'alg' field from the unverified JWT header and passes it directly to the PyJWT decode function as the allowed algorithm. This is a known anti-pattern because the server should pin the algorithm rather than trust the token's header. Although PyJWT 2.x rejects 'alg=none' tokens by default, preventing immediate single-request ATO, the vulnerability remains a defense-in-depth weakness. If Lemur deployments move to asymmetric signing algorithms (e.g., RS256), an attacker could exploit the algorithm confusion by specifying 'alg=HS256' and forging tokens using the public key as the HMAC secret. Furthermore, audit logs that record the 'alg' field from the token header can be manipulated by attackers, reducing anomaly detection effectiveness. The vulnerability is classified under CWE-347 (Improper Verification of Cryptographic Signature) and affects Lemur versions prior to 1.9.2.
Potential Impact
This vulnerability creates a defense-in-depth gap that could lead to account takeover (ATO) if combined with a separate secret disclosure vulnerability or if the system migrates to asymmetric signing without addressing the issue. The immediate risk is limited because PyJWT 2.x blocks 'alg=none' tokens, preventing trivial single-request token forgery. However, the algorithm confusion attack remains a risk for future asymmetric signing deployments. Additionally, audit logs can be manipulated by attackers to hide anomalous token usage, reducing detection capabilities.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, users should avoid migrating to asymmetric signing algorithms without ensuring the JWT verifier pins the expected algorithm rather than trusting the token header. Monitoring for updates from the Lemur project and PyJWT library is recommended. No generic mitigations are advised beyond addressing the specific algorithm pinning issue.
GHSA-r9gp-7f88-9r54: Lemur: JWT verifier honors attacker-supplied alg, enabling ATO
Description
Lemur version 1.9.0 and earlier contain a vulnerability where the JWT verifier trusts the algorithm specified in the token header without validation. This allows an attacker to influence the cryptographic verification process, creating a defense-in-depth gap. While PyJWT 2.x prevents single-request account takeover (ATO) via the 'alg=none' attack, this vulnerability could enable ATO if combined with a separate secret disclosure or if the system migrates to asymmetric signing without fixing this issue. Additionally, audit logs relying on the token's algorithm field can be blinded by attacker-supplied values.
CVSS v3.1
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The Lemur JWT verifier extracts the 'alg' field from the unverified JWT header and passes it directly to the PyJWT decode function as the allowed algorithm. This is a known anti-pattern because the server should pin the algorithm rather than trust the token's header. Although PyJWT 2.x rejects 'alg=none' tokens by default, preventing immediate single-request ATO, the vulnerability remains a defense-in-depth weakness. If Lemur deployments move to asymmetric signing algorithms (e.g., RS256), an attacker could exploit the algorithm confusion by specifying 'alg=HS256' and forging tokens using the public key as the HMAC secret. Furthermore, audit logs that record the 'alg' field from the token header can be manipulated by attackers, reducing anomaly detection effectiveness. The vulnerability is classified under CWE-347 (Improper Verification of Cryptographic Signature) and affects Lemur versions prior to 1.9.2.
Potential Impact
This vulnerability creates a defense-in-depth gap that could lead to account takeover (ATO) if combined with a separate secret disclosure vulnerability or if the system migrates to asymmetric signing without addressing the issue. The immediate risk is limited because PyJWT 2.x blocks 'alg=none' tokens, preventing trivial single-request token forgery. However, the algorithm confusion attack remains a risk for future asymmetric signing deployments. Additionally, audit logs can be manipulated by attackers to hide anomalous token usage, reducing detection capabilities.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, users should avoid migrating to asymmetric signing algorithms without ensuring the JWT verifier pins the expected algorithm rather than trusting the token header. Monitoring for updates from the Lemur project and PyJWT library is recommended. No generic mitigations are advised beyond addressing the specific algorithm pinning issue.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-r9gp-7f88-9r54
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-55165"]
- Ecosystems
- ["PyPI"]
- Database Specific Severity
- MODERATE
- Cvss Version
- 3.1
Threat ID: 6a3ef7e527e9c79719032b3d
Added to database: 06/26/2026, 22:06:29 UTC
Last enriched: 06/26/2026, 22:44:23 UTC
Last updated: 06/26/2026, 22:44:23 UTC
Views: 2
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.