xen/pvcalls: bound backend response req_id before indexing rsp[]
CVE-2026-72380 · published 15 Aug 2026
How serious is it
- Severity: high, CVSS score 8.8 out of 10.
- No exploit prediction (EPSS) score yet.
- Not on the CISA list of exploited vulnerabilities.
- No public exploit in Exploit-DB.
Is your app affected by CVE-2026-72380?
Paste this prompt into Claude Code, Cursor or any AI coding tool: it runs a free Shippable scan of your project and fixes what it finds. Built with Lovable, Bolt or v0? Scan your live app. Or upload your package file.
Who is affected
- Linux Linux: 2195046bfd69e487d9a76dc47840f15c8412840c to < 72e27ef70a20298e60a1de438f3628c515dea895, 2195046bfd69e487d9a76dc47840f15c8412840c to < ede7a60b046d8b7288651c55198574ed7c259da7, 2195046bfd69e487d9a76dc47840f15c8412840c to < bc8f2d1c6f7cf6e6551c00eb582baf4b52a04794, 2195046bfd69e487d9a76dc47840f15c8412840c to < d1297a9e2fd6ce08678b370d41bc980ca798f809
- Linux Linux: 4.15
How to check
- Find out whether you run the affected product and which version, then compare it with the versions above.
How to fix
Copies a prompt for Claude Code, Cursor or Codex that asks it to check whether you run this product.
- Apply the vendor's update or mitigation from the references below. If there is none yet, limit exposure of the affected service until there is.
- If a vulnerable version was live, check your logs and rotate the secrets that server could read.
The advisory
In the Linux kernel, the following vulnerability has been resolved:
xen/pvcalls: bound backend response req_id before indexing rsp[]
pvcalls_front_event_handler() takes req_id directly from the
backend-supplied ring response and uses it to index the fixed-size
bedata->rsp[] array for a memcpy() and a store, with no range check. A
malicious or buggy backend can set req_id past PVCALLS_NR_RSP_PER_RING
and drive an out-of-bounds write past the bedata allocation.
req_id was also declared int while the wire field rsp->req_id is u32, so
a range check on the signed value alone is insufficient: a backend
req_id of 0xffffffff becomes -1, passes a >= PVCALLS_NR_RSP_PER_RING
test and indexes bedata->rsp[-1]. Declare req_id as u32 so a single
bound covers both ends.
A backend that sends an out-of-range req_id has violated the wire
protocol, so rather than silently dropping the response, log once and
stop trusting the backend: set bedata->disabled. The event handler then
ignores further responses, and the request paths that wait for a
response return -EIO instead of blocking forever. This mirrors the
fatal-error handling xen-netback uses (xenvif_fatal_tx_err()).
The pvcalls frontend currently trusts its backend, so this is not a
classic-Xen security issue, but it matters for hardening PV frontends
against malicious backends (confidential and disaggregated deployments).
Check your whole app
Dependencies are only half of it. Free and read-only: before you push, run npx shippable-dev scan localhost:3000 in your project folder, no account needed. For your live app, you prove it's yours with a one-line tag first.
References
- git.kernel.org/stable/c/72e27ef70a20298e60a1de438f3628c515dea895
- git.kernel.org/stable/c/ede7a60b046d8b7288651c55198574ed7c259da7
- git.kernel.org/stable/c/bc8f2d1c6f7cf6e6551c00eb582baf4b52a04794
- git.kernel.org/stable/c/d1297a9e2fd6ce08678b370d41bc980ca798f809
- git.kernel.org/stable/c/d33846c8dcc06b83b7acdeac1e8bfbb5c0c26cb2
Merged from CVE List. Last updated 25 Oct 2026. All vulnerabilities · RSS · JSON