Skip to main content

Linux Kernel EUVDEUVD-2026-66476

| CVE-2026-80561 CRITICAL
2026-08-26 Linux GHSA-g3cj-79m7-wg3j
9.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.4 HIGH

Attacker must control a trusted OSD the client interacts with (AC:H), no client privileges needed (PR:N); primitive is an out-of-bounds read giving memory disclosure and crash, so C:H/A:H but I:N.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Aug 27, 2026 - 07:00 vuln.today
CVSS changed
Aug 27, 2026 - 06:22 NVD
9.8 (CRITICAL)
Patch available
Aug 26, 2026 - 16:17 EUVD
CVE Published
Aug 26, 2026 - 14:37 cve.org
UNKNOWN (no severity yet)
CVE Published
Aug 26, 2026 - 14:37 cve.org
CRITICAL 9.8

DescriptionCVE.org

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

libceph: fix multiple unsafe decodes in decode_locker()

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

  1. ceph_decode_copy() at the locker_id_t name field has no preceding

bounds check. With p == end after ceph_start_decoding() accepts struct_len=0, this reads sizeof(ceph_entity_name) = 9 bytes past the validated buffer boundary.

  1. *p += sizeof(struct ceph_timespec) after the locker_info_t header

is an unchecked pointer advance. A malicious OSD can position p past end, causing all subsequent _safe checks to pass against a bogus boundary.

  1. len = ceph_decode_32(p) has no preceding bounds check, and the

immediately following *p += len is uncapped. A malicious OSD can send len=0xffffffff, advancing p gigabytes past end and escaping the decode window entirely.

Fix all three by replacing bare operations with their safe variants: ceph_decode_copy -> ceph_decode_copy_safe *p += sizeof(...) -> ceph_decode_skip_n ceph_decode_32(p) -> ceph_decode_32_safe *p += len -> ceph_decode_skip_n

A new label is added to return -EINVAL on any bounds violation. -EINVAL is appropriate here: the data received from the OSD is structurally malformed, which is an invalid argument to the decode contract regardless of whether the caller or the wire is at fault.

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) without any further privileges beyond OSD session establishment.

[ idryomov: use ceph_decode_skip_string() to skip description, trim changelog ]

AnalysisAI

Slab-out-of-bounds reads in the Linux kernel's libceph client (cls_lock_client.c decode_locker()) allow a malicious or compromised Ceph OSD to read kernel memory past a validated buffer when a client parses lock information. Any kernel Ceph/RBD client that issues the lock.get_info class method - for example during RBD exclusive lock acquisition - is affected across a wide range of stable branches. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
Compromise or stand up malicious OSD
Delivery
Establish trusted OSD session with client
Exploit
Client issues lock.get_info during RBD lock
Execution
Return crafted locker reply (struct_len=0 / len=0xffffffff)
Persist
decode_locker reads past buffer end
Impact
Kernel memory disclosure or client crash

Vulnerability AssessmentAI

Exploitation Exploitation requires the victim to run an in-kernel Ceph client (libceph) and to issue the cls_lock 'lock.get_info' class method - for example during RBD exclusive lock acquisition - against an OSD that the attacker controls or has compromised. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/C:H/I:H/A:H = 9.8) overstates real-world risk for two reasons. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario In a multi-tenant Ceph cluster, an attacker who controls or compromises an OSD waits for a victim kernel client to perform RBD exclusive-lock acquisition, which triggers the lock.get_info call. The malicious OSD returns a crafted locker reply with struct_len=0 or len=0xffffffff, driving decode_locker() to read kernel slab memory far past the validated buffer, leaking data or crashing the client. …
Remediation Vendor-released patch: upgrade to a fixed stable kernel - 5.10.266, 5.15.217, 6.1.184, 6.6.153, 6.12.105, 6.18.46, 7.1.10 or later on the corresponding branch (mainline ~7.2), applying the fix commits at git.kernel.org/stable (e.g. … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours, identify all systems running Linux kernel Ceph/RBD clients and document which systems perform RBD exclusive lock acquisitions (lock.get_info class method calls). …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

EUVD-2026-66476 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy