Vulnerability in lemur (CVE-2026-55165)
Summary
Vulnerability in lemur (CVE-2026-55165). Risk of unauthorized operations or information disclosure. Mitigation: upgrade to 1.9.2 or later.
Original description
The description as published by the source.
Vulnerability Summary
| Field | Value |
|---|---|
| Title | Lemur 1.9.0: JWT verifier trusts attacker-supplied alg from token header — defense-in-depth gap; chain-dependent ATO with secret disclosure |
| Component | lemur/lemur/auth/service.py:130-137 |
| CWE | CWE-347 (Improper Verification of Cryptographic Signature) |
| Attack Prerequisite | Defense-in-depth gap on its own — no single-request exploit against PyJWT 2.x. Single-request ATO requires a separate disclosure issue that leaks LEMUR_TOKEN_SECRET, or a future migration to asymmetric signing without fixing this sink. |
| Affected Versions | github.com/Netflix/lemur version = "1.9.0". Same code present in every prior release that has the auth/service.py:130 block. |
Executive Summary
The Lemur JWT verifier reads the alg header field from the unverified token and passes it straight into pyjwt.decode(..., algorithms=[header['alg']]). This is a classic JWT antipattern: the server is supposed to pin the algorithm, not the attacker. PyJWT 2.x's default config rejects alg=none, so this is not a single-request ATO today — I want to be precise about that. The bug is a hardening gap with two real consequences. First, if the deployment ever migrates to asymmetric signing (RS256/ES256), an attacker can pin alg=HS256 and forge tokens using the public key as the HMAC secret — the legacy "RS256→HS…
Source: GitHub Security Advisories (Global) NVD GitHub Advisory
Auto-generated summary
Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.
A vulnerability tracked as CVE-2026-55165 has been found in lemur.
Risk of unauthorized operations or information disclosure. CVSS score: 4.8/10.
What to do: upgrade lemur to 1.9.2 or later.
If unsure, ask your IT team or search "lemur CVE-2026-55165" on the vendor's site.
CVE-2026-55165 (lemur) — CWE-347 / CVSS v3 4.8
Attack vector: remote (network-reachable) / unauthenticated / no user interaction
Patched: 1.9.2 — apply immediately
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.
A vulnerability (CWE-347) exists in lemur.
Check the vendor advisory for the affected versions of lemur.
Severity: Medium (CVSS 4.8/10). Risk of unauthorized operations or information disclosure.
Update to 1.9.2.
Until the patch is applied: disable the affected feature, apply WAF rules, or restrict access via network ACLs.
Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Run grep -r 'lemur' . against your dependency files (package-lock.json, requirements.txt, go.sum) to find affected services.
Response actions
Concrete steps and command examples for SOC/SRE teams to execute in order
-
1Identify exposure identify
grep -r 'lemur' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
lemurを grep し、稼働しているサービス・バージョンを把握する。 -
2Apply patch patch
Upgrade lemur to 1.9.2ステージング環境で 1.9.2 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。
-
3Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
Affected packages
References
- package github.com
- web github.com
- web github.com
- web github.com
- web security-advisories@github.com