CVE-2026-55165 json
Lemur : JWT verifier trusts attacker-supplied alg from token header — defense-in-depth gap; chain-dependent ATO with secret disclosure
published 4mo ago modified 2mo ago also EUVD-2026-61146 , GHSA-r9gp-7f88-9r54 , PYSEC-2026-2589
- cvss
- 4.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 4%
- public exploits
- 0
- none known
Summary
Lemur manages TLS certificate creation. Prior to 1.9.2, the JWT verifier in lemur/auth/service.py:130-137 used fetch_token_header to read header_data["alg"] from an unverified token and passed that attacker-controlled value to decode_with_multiple_secrets. PyJWT 2.x rejects alg=none with the configured key, so the flaw is a defense-in-depth gap rather than a direct authentication bypass in the shipped configuration. The unpinned algorithm can become exploitable after an asymmetric-signing migration through algorithm confusion, and it weakens algorithm-based anomaly detection because the token chooses the recorded value. A separate disclosure of LEMUR_TOKEN_SECRET would also permit forged HS256 tokens, although that disclosure is an independent prerequisite. The fix introduces the server-controlled LEMUR_TOKEN_ALGORITHMS allowlist and defaults it to HS256. This issue is fixed in version 1.9.2.
Patch / fix
- pypi lemur 1.9.2
- netflix lemur 1.9.2
Is CVE-2026-55165 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2mo ago
Exploit prediction
0.15% chance of exploitation in the next 30 days, higher than 4% of all scored CVEs (FIRST EPSS, 2026-11-11).
Exploits and checks
- github.com https://github.com/Netflix/lemur/security/advisories/GHSA-r9gp-7f88-9r54 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 4.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N |
| GitHub | 3.1 | 4.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N |
| OSV | 3.1 | 4.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | lemur | <1.9.2 |
1.9.2 |
Affected products
- Netflix lemur
Classification
- Weakness
-
- CWE-347 Improper Verification of Cryptographic Signature
References
- github.com /Netflix/lemur/commit/89898e665beed044cf7bd5927dfaa484e55bf242
-
github.com
/Netflix/lemur/security/advisories/GHSA-r9gp-7f88-9r54
exploit, web
-
github.com
/Netflix/lemur/releases/tag/v1.9.2
web
-
github.com
/Netflix/lemur
package
-
pypi.org
/project/lemur
package
-
github.com
/advisories/GHSA-r9gp-7f88-9r54
advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-55165
advisory
Sources
- CVE List CVE-2026-55165
- GitHub Advisory GHSA-r9gp-7f88-9r54
- NVD CVE-2026-55165
- OSV PYSEC-2026-2589
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.