CVE-2026-124278 json
Path bindings ignored for gRPC Content-Types on transcoded routes in elixir-grpc grpc_server
published yesterday modified yesterday also EEF-CVE-2026-124278 , EUVD-2026-125537 , GHSA-xc5v-89vq-hv5m
- cvss
- 7.6
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 43%
- public exploits
- 0
- none known
Summary
Authorization Bypass Through User-Controlled Key vulnerability in elixir-grpc grpc_server and grpc allows an attacker to make a handler act on a resource other than the one named in the URL of an HTTP-transcoded route, via a request with a gRPC Content-Type.
Only the transcoding clause of GRPC.Server.do_handle_request/4 (grpc_server/lib/grpc/server.ex, and lib/grpc/server.ex before the package split) applies the route's path bindings to the request message. The Cowboy handler picks that clause from the request Content-Type, not from the route. A request to a transcoded URL with application/grpc or application/grpc-web is decoded from the body alone, so every path-bound field takes its value from the body. A gateway, proxy rule or WAF that authorizes on the URL path sees one resource while the handler receives another.
This issue affects grpc_server: from 1.0.0 before 1.1.0; grpc: from 0.8.0 before 1.0.0.
Patch / fix
- hex grpc_server 1.1.0
- hex grpc 1.0.0
- elixir-grpc grpc_server 1.1.0
- elixir-grpc grpc 1.0.0
Is CVE-2026-124278 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 FencerExploit prediction
0.50% chance of exploitation in the next 30 days, higher than 43% of all scored CVEs (FIRST EPSS, 2026-11-14).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 7.6 | CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N |
| CNA | 4.0 | 7.6 | CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| hex | grpc_server | >=1.0.0, <1.1.0 |
1.1.0 |
| hex | grpc | >=0.8.0, <1.0.0 |
1.0.0 |
Affected products
- elixir-grpc grpc_server
- elixir-grpc grpc
Classification
References
-
github.com
/elixir-grpc/grpc/commit/0332faae5f5e132314794dbfdae5edecbccea292
related, web
-
github.com
/elixir-grpc/grpc/commit/953ab980d8a127e895d3ab9505fc4b9337bb32f7
patch
-
github.com
/elixir-grpc/grpc/commit/8aaf3d3a8c4c7b08ac65e9c6f254e0d24da1d048
related, web
-
github.com
/elixir-grpc/grpc/security/advisories/GHSA-xc5v-89vq-hv5m
vendor-advisory, related, advisory
-
cna.erlef.org
/cves/CVE-2026-124278.html
related, web
-
osv.dev
/vulnerability/EEF-CVE-2026-124278
related
-
hex.pm
/packages/grpc_server
package
-
hex.pm
/packages/grpc
package
Sources
- CVE List CVE-2026-124278
- NVD CVE-2026-124278
- OSV EEF-CVE-2026-124278
- Maintainer advisory GHSA-xc5v-89vq-hv5m
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.
The maintainers of elixir-grpc/grpc published their own advisory on GitHub. Reviewed sources take precedence over it.