CVE-2026-72380

xen/pvcalls: bound backend response req_id before indexing rsp[]

State
Published
Severity
8.8 High
Published
Aug 15, 2026
Updated
Oct 30, 2026
Reserved
Aug 9, 2026

Read the record on cve.org

Description

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).

Scores

CVSSScoreVectorSource
3.18.8 HighCVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 2195046bfd69e487d9a76dc47840f15c8412840c to before 4aaf7f32f1569e2c0475e073b8d7ec63b231d4c6Affected
  • 2195046bfd69e487d9a76dc47840f15c8412840c to before 72e27ef70a20298e60a1de438f3628c515dea895Affected
  • 2195046bfd69e487d9a76dc47840f15c8412840c to before ede7a60b046d8b7288651c55198574ed7c259da7Affected
  • 2195046bfd69e487d9a76dc47840f15c8412840c to before bc8f2d1c6f7cf6e6551c00eb582baf4b52a04794Affected
  • 2195046bfd69e487d9a76dc47840f15c8412840c to before d1297a9e2fd6ce08678b370d41bc980ca798f809Affected
  • 2195046bfd69e487d9a76dc47840f15c8412840c to before d33846c8dcc06b83b7acdeac1e8bfbb5c0c26cb2Affected
LinuxLinux
  • 4.15Affected
  • before 4.15Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.114 through 6.12.*Not affected
  • 6.18.57 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.