CRITICAL Introduced in 4.12
vfio_ccw ChannelProgram Overflow
CVE-2026-80554
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
KernelScan AI6.5MEDIUM
01Description
In the Linux kernel, the following vulnerability has been resolved: s390/vfio_ccw: Limit the number of channel program segments The processing of channel programs, and the CCWs within them, is done recursively. As such, there is an arbitrary (but not architectural) limit to the number of CCWs that can exist in a single channel program. The vfio-ccw logic breaks these channel programs into segments whenever it encounters a Transfer-In-Channel (TIC) CCW, and the combined number of segments count towards the global limit. Impose an equivalent limit to the number of segments until such logic can be made non-recursive.
02KernelScan AI Analysis
Risk summary
A guest VM on s390 can submit a channel program with many TIC-linked segments, causing the host kernel to recurse without bound and exhaust its stack, crashing the host. The fix caps the number of segments at 16. Products exposing vfio-ccw passthrough to untrusted guests are at risk; those without s390 hardware or without vfio-ccw are unaffected.
Vulnerability analysis
The vfio-ccw driver processes channel programs from a guest by recursively handling transfer commands that link segments together. A malicious guest can submit a channel program with too many linked segments, causing the host kernel to recurse so deeply that it exhausts the stack and crashes. The fix enforces a hard limit on how many segments may be processed in a single channel program, stopping further translation once that limit is reached. The flaw can be triggered by any guest virtual machine that has been assigned a vfio-ccw passthrough device on an s390 host; no special guest privileges are needed beyond access to the assigned device.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.12 | 4.12 | 6.12.105 | a1625f66eaa1 |
| 6.18 | 4.12 | 6.18.46 | 06f4d6e5a8af |
| 6.6 | 4.12 | 6.6.153 | 15fb4559a7fd |
| 7.1 | 4.12 | 7.1.10 | 4ee94790490a |
| mainline | 4.12 | 7.2 | 5405c90d6a47 |
| cip/6.12 | 4.12 | 6.12.108-cip31 | a1625f66eaa1 |
04CIP Kernels
State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.
| CIP tree | State |
|---|---|
| cip/6.12 | Fixed in 6.12.108-cip31 |
| cip/6.1 | Affected — no CIP fix yet (latest 6.1.189-cip61) |
| cip/6.1-rt | Affected — no CIP fix yet (latest 6.1.189-cip61-rt32) |
| cip/5.10 | Affected — no CIP fix yet (latest 5.10.271-cip78) |
| cip/5.10-rt | Affected — no CIP fix yet (latest 5.10.268-cip77-rt34) |
| cip/4.19 | Affected — no CIP fix yet (latest 4.19.325-cip136) |
| cip/4.19-rt | Affected — no CIP fix yet (latest 4.19.325-cip136-rt50) |