GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel libceph: unchecked decodes in decode_locker() let a malicious OSD read out of bounds

CVE-2026-80561Kernel, userspace & hypervisorcurated

Impact

The in-kernel Ceph client parses locker records returned by an OSD without bounds-checking three decode steps, so a malicious or compromised OSD can walk the decode pointer past the validated buffer (including by sending a 32-bit length of 0xffffffff) and cause slab-out-of-bounds reads in kernel context. The realistic outcomes are a kernel crash of the client node and possible disclosure of adjacent slab contents; the record does not claim write primitives or code execution. This matters on GPU nodes that mount krbd or CephFS volumes for datasets and checkpoints, because the trust flows the wrong way: one storage node under an attacker's control reaches every compute node that issues lock.get_info, which RBD does on exclusive-lock acquisition. A crashed node in mid-training loses the job and takes a drain-and-reboot cycle to return.

Who can reach it

A malicious or compromised Ceph OSD that a kernel RBD/CephFS client talks to. Per the commit message, no privilege beyond establishing an OSD session is required; the attacker must be able to answer the client's lock.get_info request.

What to do

Update to a stable kernel containing the decode_locker() safe-decode fix and reboot each affected client node - there is no runtime toggle, and the parsing path is exercised by any normal RBD exclusive-lock acquisition. Nodes that mount Ceph volumes must be drained before reboot. Until patched, the only mitigation is limiting which OSDs kernel clients will talk to; the record names no fixed release numbers, only 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.