GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel io_uring/net (ring-provided buffers pinned across partial retries): Ring-provided buffers are only valid

CVSS 7.8CVE-2025-38730Kernel, userspace & hypervisorcurated

Impact

Ring-provided buffers are only valid for the execution context that acquired them, but the networking path holds on to one across retries when MSG_WAITALL is set or a stream socket consumed too little. Two consequences follow: if the buffer ring is unregistered before the retry, req->buf_list is stale and the kernel follows a dangling reference; and if several sockets share a buffer group, two receives can land in the same userspace buffer. The second is silent data corruption inside whatever process is using io_uring - on a GPU fleet that is increasingly the inference front end, the object-store client, and the log shipper, where mixing bytes between two connections is both a correctness and a confidentiality failure. Exploitation needs no privilege: any local process that can call io_uring_setup is in range, which includes ordinary tenant pods unless io_uring is blocked.

Who can reach it

Local, unprivileged. Any process able to use io_uring with ring-provided buffers - including a tenant container unless seccomp blocks io_uring_setup - can arrange the partial-retry condition and unregister the buffer ring.

What to do

Patch to a stable kernel that stops partial retries from pinning provided buffers (five backports linked); drain and reboot each node. Where a reboot cannot be scheduled quickly, blocking io_uring_setup/io_uring_register in the container seccomp profile removes tenant access to the path entirely - the common hardened-runtime default already does this - and is the practical interim mitigation.

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.