← All Advisories
Reported from OT-Advisories.com as of

Critical Linux Kernel kernel performance subsystem Vulnerability Scores 9.8 CVSS

Last refreshed2026-10-15

Status: UPDATED  |  Advisory ID: CVE-2026-89654

Key Details

CVECVE-2026-89654
CVSS Score / Version
9.8 (Critical) / CVSS v3.1
Updated2026-10-15
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS Prose
attack vector is network; attack complexity is low; privileges required is none; user interaction is none; scope is unchanged; confidentiality impact is high; integrity impact is high; availability impact is high.
Affected products
Linux Kernel
Exploitation prediction (EPSS)
0.55% probability of exploitation in the next 30 days (45% percentile) -- FIRST.org's EPSS model.

Affected Products, Subsystems & Sectors

VendorProductAffected VersionsPatch Status
LinuxLinux Kernel
SubsystemsOT Supporting Infrastructure
SectorsAll Sectors

What to Know

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

ceph: fix UAF in check_new_map() on session freed during unlock

check_new_map() iterates mdsc->sessions[] and for each active session

drops mdsc->mutex to perform per-session operations. The forced-close

path (rank removed from map) correctly takes a reference on s via

ceph_get_mds_session() before releasing mdsc->mutex, but three other

paths do not:

Path A (address changed): mutex_unlock → mutex_lock(&s->s_mutex)

Path B (reconnect): mutex_unlock → send_mds_reconnect(mdsc, s)

Path C (active transition): mutex_unlock → mutex_lock(&s->s_mutex)

Without the extra reference, another thread can acquire mdsc->mutex

during the unlock window, call __unregister_session() which drops the

last reference on s, and free it. The original thread then accesses

freed memory via s->s_mutex.

Fix by adding ceph_get_mds_session(s) before each mutex_unlock and

ceph_put_mds_session(s) after the corresponding mutex_lock, matching

the pattern already used in the forced-close path.

Race timeline (Path A):

Thread A (check_new_map) Thread B (another map update

holds mdsc->mutex or session teardown)

-------------------------- --------------------------

s = mdsc->sessions[i]

(refcount == 1, held only by

sessions[] array)

mutex_unlock(&mdsc->mutex)

---> acquires mdsc->mutex

__unregister_session(mdsc, s)

sessions[i] = NULL

ceph_put_mds_session(s)

refcount: 1 -> 0

kfree(s) <--- freed!

mutex_lock(&s->s_mutex)

UAF on freed s->s_mutex (NVD)

What to Do

Monitor Linux's web page for any future patch releases.

References

SourceReference
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2026-89654
CVEhttps://www.cve.org/CVERecord?id=CVE-2026-89654
Report compilation © 2026 OT-Advisories.com  ·  CC BY 4.0  ·  Source materials remain the property of their respective publishers as cited.