Improper Verification of Cryptographic Signature in dashbit nimble_zta Cloudflare strategy
## Summary Improper Verification of Cryptographic Signature vulnerability in dashbit nimble_zta allows an unauthenticated remote attacker to authenticate as an arbitrary Cloudflare service token. Applications using the Cloudflare Zero Trust authentication strategy are affected. `verify_token/2` in `lib/nimble_zta/cloudflare.ex` matches the result of `JOSE.JWT.verify/2` against `{_, token, _s}`, which discards the boolean verification result and returns the decoded token after a failed signature check. The attacker sends a forged JWT in the `cf-access-jwt-assertion` header, carrying the expected `iss` claim and the seven service token claims. `verify_iss/2` reads the `iss` claim from the forged token, so it rejects nothing, and the service token path then returns those claims as the authenticated identity. This issue affects nimble_zta: from 0.1.2 before 0.1.3. ## Proof of concept 1. Build a JWT payload that carries the `aud`, `common_name`, `exp`, `iat`, `iss`, `sub` and `type` claims. Use the `iss` the application expects, set `exp` to a future timestamp, and set `common_name` to the service token to impersonate. 2. Append any signature segment. The segment must be present, because `JOSE.JWT.verify/2` needs three segments to parse the token. The signature does not need to verify against the Cloudflare keys. 3. Send a request to the application with the forged JWT in the `cf-access-jwt-assertion` header. 4. `NimbleZTA.Cloudflare.authenticate/3` returns the claims of the forge
EEF-CVE-2026-91187
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: osv:EEF-CVE-2026-91187
nimble_zta
Source reference: /affected/0/package/name
- Affected versions
- 0.1.2
Source reference:
/affected/0/versions - Fixed versions
- 0.1.3
Source reference:
/affected/0/ranges - Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0.1.2"
},
{
"fixed": "0.1.3"
}
]
}
],
"package": {
"name": "nimble_zta",
"purl": "pkg:hex/nimble_zta",
"ecosystem": "Hex"
},
"versions": [
"0.1.2"
],
"database_specific": {
"source": "https://cna.erlef.org/osv/EEF-CVE-2026-91187.json"
}
},
{
"ranges": [
{
"repo": "https://github.com/dashbitco/nimble_zta",
"type": "GIT",
"events": [
{
"introduced": "bc004b70985ae5763901baab3a4e204047899768"
},
{
"fixed": "6458fd18a5ba41166d4973214c519e98fe05b72d"
}
]
}
],
"versions": [
"v0.1.2"
],
"database_specific": {
"source": "https://cna.erlef.org/osv/EEF-CVE-2026-91187.json"
}
}
]- Related CVEs
- CVE-2026-91187
Source reference:
/aliases
Publisher severity
No explicit severity was provided.
- Event
- #13788 · Revision 1
- Added to Heist Feed
- Publisher date