GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel libiscsi_tcp: a Data-In PDU naming a WRITE command's ITT overwrites the writer's own pages

CVSS 7.5CVE-2026-98479Kernel, userspace & hypervisorcurated

Impact

The iSCSI initiator resolves the ITT of an incoming Data-In PDU to a task and copies the PDU payload into that command's scatterlist without checking that the command was a read. A target that answers a WRITE command's ITT with a Data-In therefore makes the initiator scribble target-supplied bytes into the pages the write was about to send: the caller's own pinned buffer for an O_DIRECT write, page cache pages for a buffered one. This is silent data corruption, not a crash - the reporter observed pwrite() returning the full 131072 bytes while 512 bytes of target data sat in the caller's buffer, and in the buffered case pwrite() and fsync() both succeeded, nothing was logged, and reading the blocks back returned the target's bytes out of page cache without a command ever going on the wire. On a GPU fleet that mounts iSCSI LUNs for checkpoints, datasets or scratch, that means corrupt checkpoints and corrupt training data that pass every write-side check and only surface much later. The R2T path in the same file already does the direction check; the Data-In path did not.

Who can reach it

The iSCSI target the node logs into, or anyone who can impersonate or MITM it on the storage network - iSCSI sessions are frequently run with CHAP off on a flat storage VLAN. No initiator-side authentication bypass is needed: the malformed PDU is accepted on an already-established session. Not reachable from a tenant GPU pod unless that tenant can also reach or control a target the host logs into.

What to do

Take the stable kernel release carrying the direction check (five stable branches were fixed; pick the one matching your tree) and reboot each node - the fix is in the in-tree iscsi_tcp/libiscsi_tcp path, so there is no module reload or runtime toggle that avoids the reboot. Until then, the usable mitigation is network-level: restrict which targets initiators may log into, require mutual CHAP, and keep the storage VLAN off any tenant-reachable network. No fixed distro version is named in the record beyond the stable commits.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.