KernelScan.io

HIGH Introduced in 5.3

vfio_ccw ChannelProgram Leak

CVE-2026-80555

CVSS 7.1 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H

KernelScan AI7.0HIGH

01

In the Linux kernel, the following vulnerability has been resolved: s390/vfio_ccw: Free all memory if cp_init() fails The routine cp_free() is called to unpin/free any memory once an I/O is completed successfully, or if cp_prefetch() fails. But if cp_init() fails, and cp->initialized is not enabled, the same routine cannot be used to free all the memory. An attempt to address this exists in ccwchain_handle_ccw(), where a single call to ccwchain_free() is made for the currently-processed CCW segment. But this will leak other segments (created as a result of a Transfer in Channel) that had been allocated as part of the same channel program. Address this by performing the cleanup outside of the recursive ccwchain_handle_ccw()/ccwchain_loop_tic() logic.

02

Engine v0.6.0

Risk summary

A memory leak in the s390 vfio-ccw driver allows a guest VM to exhaust host memory by repeatedly submitting malformed channel programs that fail during initialization. The incomplete error cleanup frees only the current CCW chain segment while leaking other segments allocated via Transfer in Channel. This affects IBM mainframe hosts using vfio-ccw device passthrough to virtual machines.

Affecteddrivers/s390/cio/vfio_ccw_cp.c (vfio_ccw)

Vulnerability analysis

When a guest VM submits a channel program to a passed-through CCW device, the host kernel builds a chain of CCW segments, some created via Transfer in Channel. If initialization fails partway through, the error cleanup path frees only the currently-processed segment, leaving all other allocated segments leaked on the host. A guest can repeat this to gradually exhaust host memory. The fix moves cleanup out of the recursive chain-building logic so that on any failure, all segments accumulated so far are freed by iterating the full chain list. The attack surface is limited to s390 mainframe hosts configured for vfio-ccw device passthrough; a guest VM with an assigned CCW device can trigger this without any host-level privileges.

03

BranchIntroducedFixed inPatch commit
5.105.35.10.267276bd7ed34d5
5.155.35.15.218f9bcff265556
6.15.36.1.18517e01e342af7
6.125.36.12.1056a917199aaf9
6.185.36.18.4632e3d364a7b8
6.65.36.6.154152fcb74a268
7.15.37.1.104699b54fada1
mainline5.37.274186c2968f8
cip/5.105.35.10.268-cip77276bd7ed34d5
cip/5.10-rt5.35.10.268-cip77-rt34276bd7ed34d5
cip/6.15.36.1.187-cip6017e01e342af7
cip/6.1-rt5.36.1.189-cip61-rt3217e01e342af7
cip/6.125.36.12.108-cip316a917199aaf9

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.108-cip31
cip/6.1Fixed in 6.1.187-cip60
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Fixed in 5.10.268-cip77
cip/5.10-rtFixed in 5.10.268-cip77-rt34