ceph: fix UAF in check_new_map() on session freed during unlock
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Partial Red Hat: 6 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and Red Hat.
Summary
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
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
- Fix · CNA Linux (Linux) Fixed in 6.1.191, 6.6.160, 6.12.114, 6.18.57, 7.2.4, 7.3
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Enterprise Linux 10 | Affected | No fix yet |
| Red Hat Enterprise Linux 7 | Affected | No fix yet |
| Red Hat Enterprise Linux 8 | Affected | No fix yet |
| Red Hat Enterprise Linux 9 | Affected | No fix yet |
| Red Hat OpenShift Container Platform 4 | Affected | No fix yet |
| Red Hat OpenShift Container Platform 5 | Affected | No fix yet |
Not affected: 1 product
- Red Hat Enterprise Linux 6
Timeline
- 2026-10-02 Threatist record created from CVE-2026-89654
- 2026-10-03 Alias added: GHSA-hwg3-wmfr-8q53
- 2026-10-16 EPSS moved to the 50th–90th percentile
- 2026-10-16 Fix available: Linux/[email protected], Linux/Linux@9646dfee880730aae4b379a4b8ee6c88ac735acd · CNA
- 2026-10-16 1 new reference · CNA
- 2026-10-18 CISA SSVC decision points changed
- 2026-10-19 Fix available: Linux/[email protected] · CNA
- 2026-10-21 Fix available: Linux/Linux@352a278d5a1965aae3f817ce5d24a67ee42d45d1, Linux/[email protected], Linux/[email protected] +1 · CNA
- 2026-10-21 2 new references · CNA
- 2026-10-29 CVSS score changed · Red Hat
- 2026-10-30 Affected versions changed · Red Hat
- 2026-10-30 Fix available: Linux/[email protected], Linux/Linux@989343b7ee5b1a08778be0c7c4bf6030d3910807 · CNA
- 2026-10-30 1 new reference · CNA
References
Other 6
- https://git.kernel.org/stable/c/989343b7ee5b1a08778be0c7c4bf6030d3910807
- https://git.kernel.org/stable/c/352a278d5a1965aae3f817ce5d24a67ee42d45d1
- https://git.kernel.org/stable/c/820871e9dbeecd2533c4c5f5d91878ceaf02324c
- https://git.kernel.org/stable/c/9646dfee880730aae4b379a4b8ee6c88ac735acd
- https://git.kernel.org/stable/c/21d5be092d947f8d83f76f7ebf3989e7e9230a98
- https://git.kernel.org/stable/c/ee611a7509554c4ca1f54f6aefe592fb1df7ea70
More Linux vulnerabilities
- TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
- TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
- TI-2021-02452 Incorrect authorization in Ubuntu linux kernel KEVCVSS 3.1HIGH 8.8
- TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
- TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
- TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
Sources
- CVE-2026-89654 · CVE Program
- CVE-2026-89654 · NVD
- FIRST EPSS
- GHSA-hwg3-wmfr-8q53 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-89654 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences