Summary
CVE-2026-91187 is a critical improper cryptographic signature verification vulnerability in nimble_zta, a Zero Trust Authentication (ZTA) library published by Dashbit for Elixir/Plug/Phoenix web applications. The flaw resides in the library’s Cloudflare Access integration and allows an unauthenticated remote attacker to forge a valid-looking Cloudflare service token and bypass authentication entirely. The issue carries a CVSS score of 9.3 (Critical) and affects any application relying on nimble_zta‘s Cloudflare strategy to protect access to internal services.
Technical details
- Root cause: In
NimbleZTA.Cloudflare(lib/nimble_zta/cloudflare.ex), the internal token-verification logic used a wildcard pattern match ({_, token, _s} -> {:ok, token}) on the result returned by the underlying JOSE JWT signature-verification call. Because the match ignored the actual boolean verification result, any JWT — signed or unsigned, valid or tampered — was treated as successfully verified. - Trigger conditions: An attacker crafts a JWT with an arbitrary payload and a bogus/unsigned signature and presents it as a Cloudflare Access service token to an application using
nimble_ztafor authentication. - Attack vector: Network — no authentication, prior access, or user interaction is required. The attacker does not need Cloudflare’s private signing key to produce a token the library accepts.
- Impact: Full authentication bypass, allowing an attacker to impersonate any Cloudflare service token and gain unauthorized access to the protected application/service. This compromises confidentiality and integrity of protected resources.
Affected software
nimble_zta(Dashbit), version 0.1.2 (the first release to include the Cloudflare service-token strategy)- Any application integrating
nimble_zta‘sNimbleZTA.Cloudflaremodule for Cloudflare Zero Trust service-token verification prior to the fix
Severity
- CVSS Score: 9.3 (Critical)
- CVSS v4.0 Vector:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:H/SA:N
Mitigation and recommended actions
- Immediate: Upgrade
nimble_ztato version 0.1.3, which corrects the pattern match to require an explicittrueverification result before accepting a token (fix commit6458fd18a5ba41166d4973214c519e98fe05b72d). - If no patch can be applied immediately: Disable or avoid relying on the
NimbleZTA.Cloudflareservice-token strategy for access control until upgraded; add an independent, secondary authentication/authorization layer in front of any service currently gated only by this library; audit access logs for anomalous requests bearing Cloudflare service-token headers with malformed or unsigned JWTs. - Rotate any credentials or sessions that may have been established through the vulnerable authentication path after upgrading.

