GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel BPF: sleepable LSM cgroup programs sleep in an RCU read-side critical section

CVSS 7.8CVE-2026-74338Kernel, userspace & hypervisorcurated

Impact

The cgroup LSM shim runs under rcu_read_lock_dont_migrate(), but the verifier accepted BPF_LSM_CGROUP programs marked BPF_F_SLEEPABLE. Such a program calling a sleeping helper (the report uses bpf_get_dentry_xattr(), which takes a rwsem inside ext4_xattr_get()) sleeps in invalid context, producing a "sleeping function called from invalid context" splat on a hot security hook such as file_open. On nodes that run cgroup-scoped LSM BPF for tenant isolation or policy, this is a stability and correctness problem in the enforcement path rather than a bypass of a specific check. libbpf never exposed a sleepable section for lsm_cgroup, so only a loader calling bpf(2) directly reaches it.

Who can reach it

Local and privileged: the attacker or operator must be able to load BPF programs (CAP_BPF/CAP_SYS_ADMIN, in the init or an appropriately delegated namespace) and must bypass libbpf to set the sleepable flag on an lsm_cgroup program. Not reachable by an unprivileged tenant pod under a default policy.

What to do

Update to a stable kernel where the verifier rejects sleepable BPF_LSM_CGROUP programs at load time (backported to multiple stable branches; see the linked commits) and reboot the node after draining. In the meantime, restricting who can call bpf(2) - the usual CAP_BPF hygiene on shared nodes - removes the path, since no supported libbpf-built program triggers it.

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.