CVE-2026-68082

Updated on 08 Aug 2026

Severity

9.8 Critical severity

Details

CVSS score
9.8
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Overview

About vulnerability

In the Linux kernel, the following vulnerability has been resolved:

libceph: fix two unsafe bare decodes in decode_lockers()

decode_lockers() in cls_lock_client.c contains two bare decode operations that allow a malicious or compromised OSD to trigger slab-out-of-bounds reads:

  1. ceph_decode_32(p) at the num_lockers field has no preceding bounds check. ceph_start_decoding() accepts struct_len=0 as valid – the internal ceph_decode_need(p, end, 0, bad) always passes – so when an OSD sends struct_len=0, ceph_start_decoding() returns success with p == end. The immediately following bare ceph_decode_32(p) then reads 4 bytes past the validated buffer boundary. The garbage value is passed directly to kzalloc_objs() as the locker count.

The sibling function decode_watchers() in osd_client.c already uses ceph_decode_32_safe() after its own ceph_start_decoding() call. decode_lockers() was the only site using the bare variant.

  1. ceph_decode_8(p) after the decode_locker() loop has no preceding bounds check. If an OSD crafts num_lockers such that the loop advances p exactly to end, the subsequent bare ceph_decode_8(p) reads one byte past the validated buffer boundary. The result is passed directly into *type, which is used as a lock type discriminator by callers, giving an OSD-controlled one-byte OOB read with direct influence over the lock type field.

Fix both by replacing bare operations with their safe variants: ceph_decode_32(p) -> ceph_decode_32_safe(p, end, *num_lockers, err_inval) ceph_decode_8(p) -> ceph_decode_8_safe(p, end, *type, err_free_lockers)

The goto targets differ intentionally: err_inval: is a new label returning -EINVAL directly. It is used for the pre-allocation failure path where *lockers is not yet allocated and must not be passed to ceph_free_lockers().

err_free_lockers: is the existing label. It is used for the post-allocation failure path where *lockers is allocated and must be freed.

ret is set to -EINVAL before ceph_decode_8_safe() so that err_free_lockers returns the correct error code on bounds violation. Without this, err_free_lockers would return a stale ret value (0 from the successful decode_locker() loop), silently swallowing the error.

-EINVAL is correct for both failure paths. The data received from the OSD is structurally malformed. -ENOMEM would misrepresent the failure class to callers and to stable@ backporters triaging error paths.

Attacker model: a malicious or compromised OSD in a multi-tenant Ceph deployment can trigger this against any kernel client that issues the lock.get_info class method (e.g. during RBD exclusive lock acquisition).

[ idryomov: trim changelog, formatting ]

Details

Fixes

KernelCare state

Live-patch status from KernelCare for each operating system.

Operating system Status Covered kernels
Debian 12 Released
43 kernels
  • 6.1.38-1
  • 6.1.38-2
  • 6.1.38-4
  • 6.1.52-1
  • 6.1.55-1
  • 6.1.64-1
  • 6.1.66-1
  • 6.1.69-1
  • 6.1.76-1
  • 6.1.27-1
  • 6.1.67-1
  • 6.1.85-1
  • 6.1.90-1
  • 6.1.94-1
  • 6.1.99-1
  • 6.1.106-3
  • 6.1.112-1
  • 6.1.115-1
  • 6.1.119-1
  • 6.1.123-1
  • 6.1.128-1
  • 6.1.124-1
  • 6.1.129-1
  • 6.1.133-1
  • 6.1.135-1
  • 6.1.137-1
  • 6.1.140-1
  • 6.1.139-1
  • 6.1.147-1
  • 6.1.148-1
  • 6.1.153-1
  • 6.1.158-1
  • 6.1.159-1
  • 6.1.162-1
  • 6.1.164-1
  • 6.1.170-1
  • 6.1.170-3
  • 6.1.172-1
  • 6.1.174-1
  • 6.1.170-2
  • 6.1.176-1
  • 6.1.177-1
  • 6.1.180-1
Debian 13 Released
15 kernels
  • 6.12.85-1
  • 6.12.86-1
  • 6.12.88-1
  • 6.12.74-2
  • 6.12.73-1
  • 6.12.63-1
  • 6.12.69-1
  • 6.12.74-1
  • 6.12.90-1
  • 6.12.90-2
  • 6.12.94-1
  • 6.12.95-1
  • 6.12.96-1
  • 6.12.100-1
  • 6.12.101-1
Oracle Linux 8 UEK 7 Released
112 kernels
  • 5.15.0-102.110.5.el8uek
  • 5.15.0-101.103.2.1.el8uek
  • 5.15.0-8.91.4.1.el8uek
  • 5.15.0-7.86.6.1.el8uek
  • 5.15.0-2.52.3.el8uek
  • 5.15.0-100.96.32.el8uek
  • 5.15.0-5.76.5.1.el8uek
  • 5.15.0-6.80.3.1.el8uek
  • 5.15.0-3.60.5.1.el8uek
  • 5.15.0-0.30.20.el8uek
  • 5.15.0-1.43.4.1.el8uek
  • 5.15.0-0.30.20.1.el8uek
  • 5.15.0-1.43.4.2.el8uek
  • 5.15.0-4.70.5.2.el8uek
  • 5.15.0-104.119.4.2.el8uek
  • 5.15.0-0.30.19.el8uek
  • 5.15.0-105.125.6.2.el8uek
  • 5.15.0-105.125.6.2.1.el8uek
  • 5.15.0-105.125.6.2.2.el8uek
  • 5.15.0-106.131.4.el8uek
  • 5.15.0-200.131.27.el8uek
  • 5.15.0-200.131.27.1.el8uek
  • 5.15.0-201.135.6.el8uek
  • 5.15.0-202.135.2.el8uek
  • 5.15.0-102.110.5.1.el8uek
  • 5.15.0-103.114.4.el8uek
  • 5.15.0-203.146.5.1.el8uek
  • 5.15.0-204.147.6.2.el8uek
  • 5.15.0-204.147.6.3.el8uek
  • 5.15.0-205.149.5.1.el8uek
  • 5.15.0-205.149.5.4.el8uek
  • 5.15.0-206.153.7.el8uek
  • 5.15.0-206.153.7.1.el8uek
  • 5.15.0-207.156.6.el8uek
  • 5.15.0-208.159.3.el8uek
  • 5.15.0-208.159.3.2.el8uek
  • 5.15.0-209.161.7.el8uek
  • 5.15.0-209.161.7.1.el8uek
  • 5.15.0-209.161.7.2.el8uek
  • 5.15.0-210.163.7.el8uek
  • 5.15.0-300.163.18.el8uek
  • 5.15.0-300.163.18.1.el8uek
  • 5.15.0-300.163.18.1.1.el8uek
  • 5.15.0-301.163.5.2.el8uek
  • 5.15.0-302.167.6.el8uek
  • 5.15.0-300.163.18.7.el8uek
  • 5.15.0-302.167.6.1.el8uek
  • 5.15.0-303.171.5.2.el8uek
  • 5.15.0-303.171.5.2.1.el8uek
  • 5.15.0-304.171.4.el8uek
  • 5.15.0-304.171.4.1.el8uek
  • 5.15.0-304.171.4.3.el8uek
  • 5.15.0-303.171.5.2.2.el8uek
  • 5.15.0-305.176.4.el8uek
  • 5.15.0-306.177.4.el8uek
  • 5.15.0-306.177.4.1.el8uek
  • 5.15.0-307.178.5.el8uek
  • 5.15.0-308.179.6.el8uek
  • 5.15.0-308.179.6.2.el8uek
  • 5.15.0-308.179.6.3.el8uek
  • 5.15.0-309.180.4.el8uek
  • 5.15.0-308.179.6.7.el8uek
  • 5.15.0-309.180.4.2.el8uek
  • 5.15.0-308.179.6.11.el8uek
  • 5.15.0-310.184.5.2.el8uek
  • 5.15.0-310.184.5.3.el8uek
  • 5.15.0-311.185.9.el8uek
  • 5.15.0-308.179.6.14.el8uek
  • 5.15.0-312.187.5.el8uek
  • 5.15.0-312.187.5.1.el8uek
  • 5.15.0-312.187.5.2.el8uek
  • 5.15.0-312.187.5.3.el8uek
  • 5.15.0-308.179.6.16.el8uek
  • 5.15.0-313.189.5.1.el8uek
  • 5.15.0-313.189.5.2.el8uek
  • 5.15.0-313.189.5.3.el8uek
  • 5.15.0-314.193.5.3.el8uek
  • 5.15.0-314.193.5.4.el8uek
  • 5.15.0-314.193.5.5.el8uek
  • 5.15.0-315.196.5.1.el8uek
  • 5.15.0-315.196.5.2.el8uek
  • 5.15.0-316.196.4.1.el8uek
  • 5.15.0-316.196.4.2.el8uek
  • 5.15.0-317.197.5.1.el8uek
  • 5.15.0-317.197.5.2.el8uek
  • 5.15.0-318.199.3.2.el8uek
  • 5.15.0-318.199.3.2.1.el8uek
  • 5.15.0-319.201.4.2.el8uek
  • 5.15.0-319.201.4.3.el8uek
  • 5.15.0-319.201.4.4.el8uek
  • 5.15.0-319.201.4.6.el8uek
  • 5.15.0-320.202.8.2.el8uek
  • 5.15.0-320.202.8.3.el8uek
  • 5.15.0-320.202.8.4.el8uek
  • 5.15.0-320.202.8.5.el8uek
  • 5.15.0-318.199.3.6.el8uek
  • 5.15.0-321.202.5.el8uek
  • 5.15.0-321.202.5.1.el8uek
  • 5.15.0-321.202.5.2.el8uek
  • 5.15.0-321.202.5.3.el8uek
  • 5.15.0-322.203.3.2.el8uek
  • 5.15.0-322.203.3.3.el8uek
  • 5.15.0-322.203.3.4.el8uek
  • 5.15.0-322.203.3.4.5.el8uek
  • 5.15.0-308.179.6.18.el8uek
  • 5.15.0-318.199.3.7.el8uek
  • 5.15.0-322.203.3.5.el8uek
  • 5.15.0-322.203.3.4.1.el8uek
  • 5.15.0-323.211.3.3.el8uek
  • 5.15.0-323.211.3.4.el8uek
  • 5.15.0-323.211.3.5.el8uek
  • 5.15.0-308.179.6.19.el8uek
Oracle Linux 9 UEK 7 Released
112 kernels
  • 5.15.0-101.103.2.1.el9uek
  • 5.15.0-8.91.4.1.el9uek
  • 5.15.0-7.86.6.1.el9uek
  • 5.15.0-5.76.5.1.el9uek
  • 5.15.0-6.80.3.1.el9uek
  • 5.15.0-3.60.5.1.el9uek
  • 5.15.0-0.30.20.el9uek
  • 5.15.0-100.96.32.el9uek
  • 5.15.0-1.43.4.2.el9uek
  • 5.15.0-2.52.3.el9uek
  • 5.15.0-4.70.5.2.el9uek
  • 5.15.0-1.43.4.1.el9uek
  • 5.15.0-0.30.20.1.el9uek
  • 5.15.0-102.110.5.el9uek
  • 5.15.0-102.110.5.1.el9uek
  • 5.15.0-103.114.4.el9uek
  • 5.15.0-104.119.4.2.el9uek
  • 5.15.0-0.30.19.el9uek
  • 5.15.0-105.125.6.2.el9uek
  • 5.15.0-105.125.6.2.1.el9uek
  • 5.15.0-105.125.6.2.2.el9uek
  • 5.15.0-106.131.4.el9uek
  • 5.15.0-200.131.27.el9uek
  • 5.15.0-200.131.27.1.el9uek
  • 5.15.0-201.135.6.el9uek
  • 5.15.0-202.135.2.el9uek
  • 5.15.0-203.146.5.1.el9uek
  • 5.15.0-204.147.6.2.el9uek
  • 5.15.0-204.147.6.3.el9uek
  • 5.15.0-205.149.5.1.el9uek
  • 5.15.0-205.149.5.4.el9uek
  • 5.15.0-206.153.7.el9uek
  • 5.15.0-206.153.7.1.el9uek
  • 5.15.0-207.156.6.el9uek
  • 5.15.0-208.159.3.el9uek
  • 5.15.0-208.159.3.2.el9uek
  • 5.15.0-209.161.7.el9uek
  • 5.15.0-209.161.7.1.el9uek
  • 5.15.0-209.161.7.2.el9uek
  • 5.15.0-210.163.7.el9uek
  • 5.15.0-300.163.18.el9uek
  • 5.15.0-300.163.18.1.el9uek
  • 5.15.0-300.163.18.1.1.el9uek
  • 5.15.0-301.163.5.2.el9uek
  • 5.15.0-302.167.6.el9uek
  • 5.15.0-300.163.18.7.el9uek
  • 5.15.0-302.167.6.1.el9uek
  • 5.15.0-303.171.5.2.el9uek
  • 5.15.0-303.171.5.2.1.el9uek
  • 5.15.0-304.171.4.el9uek
  • 5.15.0-304.171.4.1.el9uek
  • 5.15.0-304.171.4.3.el9uek
  • 5.15.0-303.171.5.2.2.el9uek
  • 5.15.0-305.176.4.el9uek
  • 5.15.0-306.177.4.el9uek
  • 5.15.0-306.177.4.1.el9uek
  • 5.15.0-307.178.5.el9uek
  • 5.15.0-308.179.6.el9uek
  • 5.15.0-308.179.6.2.el9uek
  • 5.15.0-308.179.6.3.el9uek
  • 5.15.0-309.180.4.el9uek
  • 5.15.0-308.179.6.7.el9uek
  • 5.15.0-309.180.4.2.el9uek
  • 5.15.0-308.179.6.11.el9uek
  • 5.15.0-310.184.5.2.el9uek
  • 5.15.0-310.184.5.3.el9uek
  • 5.15.0-311.185.9.el9uek
  • 5.15.0-308.179.6.14.el9uek
  • 5.15.0-312.187.5.el9uek
  • 5.15.0-312.187.5.1.el9uek
  • 5.15.0-312.187.5.2.el9uek
  • 5.15.0-312.187.5.3.el9uek
  • 5.15.0-308.179.6.16.el9uek
  • 5.15.0-313.189.5.1.el9uek
  • 5.15.0-313.189.5.2.el9uek
  • 5.15.0-313.189.5.3.el9uek
  • 5.15.0-314.193.5.3.el9uek
  • 5.15.0-314.193.5.4.el9uek
  • 5.15.0-314.193.5.5.el9uek
  • 5.15.0-315.196.5.1.el9uek
  • 5.15.0-315.196.5.2.el9uek
  • 5.15.0-316.196.4.1.el9uek
  • 5.15.0-316.196.4.2.el9uek
  • 5.15.0-317.197.5.1.el9uek
  • 5.15.0-317.197.5.2.el9uek
  • 5.15.0-318.199.3.2.el9uek
  • 5.15.0-318.199.3.2.1.el9uek
  • 5.15.0-319.201.4.2.el9uek
  • 5.15.0-319.201.4.3.el9uek
  • 5.15.0-319.201.4.4.el9uek
  • 5.15.0-319.201.4.6.el9uek
  • 5.15.0-320.202.8.2.el9uek
  • 5.15.0-320.202.8.3.el9uek
  • 5.15.0-320.202.8.4.el9uek
  • 5.15.0-320.202.8.5.el9uek
  • 5.15.0-318.199.3.6.el9uek
  • 5.15.0-321.202.5.el9uek
  • 5.15.0-321.202.5.1.el9uek
  • 5.15.0-321.202.5.2.el9uek
  • 5.15.0-321.202.5.3.el9uek
  • 5.15.0-322.203.3.2.el9uek
  • 5.15.0-322.203.3.3.el9uek
  • 5.15.0-322.203.3.4.el9uek
  • 5.15.0-322.203.3.4.5.el9uek
  • 5.15.0-308.179.6.18.el9uek
  • 5.15.0-318.199.3.7.el9uek
  • 5.15.0-322.203.3.5.el9uek
  • 5.15.0-322.203.3.4.1.el9uek
  • 5.15.0-323.211.3.3.el9uek
  • 5.15.0-323.211.3.4.el9uek
  • 5.15.0-323.211.3.5.el9uek
  • 5.15.0-308.179.6.19.el9uek
Ubuntu 26.04 In Rollout
2 kernels
  • 7.0.0-31.31
  • 7.0.0-34.34