GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel x86/shstk: recursive mmap lock during shadow stack sigreturn can deadlock the task

CVSS 5.5CVE-2026-46063Kernel, userspace & hypervisorcurated

Impact

During sigreturn the kernel pops the shadow stack signal frame by reading userspace while holding the mmap read lock so it can verify the VMA flags. If that read takes a page fault, the fault handler tries to take the mmap read lock again; with a writer waiting on another CPU the second read lock can fail and deadlock. A local user on a kernel built with X86_USER_SHADOW_STACK can therefore wedge a task in an unkillable state under the right timing, which on a shared GPU node means a stuck process that may hold GPU memory or device file descriptors and a node that needs draining rather than a simple job kill. Only kernels with user shadow stack (Intel CET) enabled and processes actually using it are affected.

Who can reach it

Local user running a process with x86 user shadow stack enabled, taking a signal whose sigreturn faults while another thread holds or waits for the mmap write lock. No authentication beyond code execution on the node; no remote path.

What to do

Update the kernel to a stable release containing the fix (the userspace read now happens without the mmap lock held, with mmap_lock_speculate_*() used to detect concurrent writers and retry) and reboot each node. Note the fix makes X86_USER_SHADOW_STACK depend on PER_VMA_LOCK, so non-SMP shadow stack configurations lose support. Where shadow stack is not required, building or booting without user shadow stack removes the exposure.

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.