GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel (net/smc): Tee(2) duplicates an SMC splice pipe buffer without duplicating the private state hanging off

CVE-2026-31507Kernel, userspace & hypervisorcurated

Impact

Tee(2) duplicates an SMC splice pipe buffer without duplicating the private state hanging off it, so both pipes free the same object on release. The result is a double free plus a double sock_put, escalating from a KASAN slab-use-after-free in smc_rx_pipe_buf_release to a NULL dereference and panic - a clean, deterministic heap-corruption primitive for any tenant.

Who can reach it

Local and fully unprivileged, no race required: read from an AF_SMC socket with splice(), tee() the pipe, then close both pipes. socket(AF_SMC, ...) needs no capability and autoloads the smc module via the net-pf-43 alias, so a tenant container with nothing but a shell reaches it - this is the kind of bug that gets weaponised into a container escape.

What to do

Boot a kernel carrying the fix commits (refcounts the per-buffer private state in the pipe_buf_operations .get handler). Interim: blacklist the smc module (install smc /bin/false) or deny socket family 43 in tenant seccomp profiles - this is worth doing pre-emptively on any node that does not deliberately use SMC.

References

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.