Skip to main content

Linux Kernel CVE-2026-98069

| EUVDEUVD-2026-86722 HIGH
2026-09-25 Linux GHSA-8xjr-h523-r9wr
8.1
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Load/access RDS on weakly-ordered host
  2. Delivery
    Force repeated connection failover/teardown
  3. Exploit
    Race transmit path against rds_conn_shutdown
  4. Execution
    Transport zeroes rings under live sender
  5. Impact
    Kernel BUG_ON/NULL deref crash (DoS)

Vulnerability Assessment

Exploitation Conditions

Requires the RDS (Reliable Datagram Sockets) subsystem to be present and active - the RDS module loaded with live connections undergoing shutdown/failover. The race is materially limited to weakly-ordered architectures (e.g. ARM): the description states the store-buffering pattern means 'on weakly ordered architectures both sides can miss each other's write,' so strongly-ordered x86 is largely unaffected. Exploitation further depends on a narrow timing window - the accept-side connection state check must pass before teardown moves the path to RDS_CONN_DISCONNECTING - making reliable triggering hard (AC:H). Impact is a kernel crash/hang (DoS); there is no evidence of code execution or data disclosure.

Impact

This is a classic high-CVSS-but-low-real-risk race condition. NVD scores it 8.1 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H), but the vector overstates impact: the described outcome is BUG_ON()s, unexpected op-codes, and NULL dereferences in the RDS/IB send-completion path - i.e. kernel crashes (DoS), not the confidentiality/integrity loss implied by C:H/I:H. The AV:N is also questionable - the flaw is a store-buffering data race between rds_conn_shutdown() teardown and the rds_send_xmit()/rds_ib_recv_refill() fastpaths, triggered during connection failover/teardown on the local host, not by a crafted remote packet. Critically, the description states it only manifests on weakly-ordered architectures (e.g. ARM) and through a narrow window (the accept-side state check must pass before the path moves to RDS_CONN_DISCONNECTING), consistent with AC:H. Exploitation signals are all cold: no EPSS score, not in CISA KEV, and no public exploit code - Oracle reproduced this class of crashes only under internal failover stress testing over a 14-year tail, not as a targeted attack. The DoS tag is accurate here (unlike the frequent 'Information Disclosure' mislabels in this batch). Net: real severity is closer to a medium (~4.7) local, race-gated availability bug. Note the discrepancy for triage: CVSS claims network vector and full CIA impact, but the description supports a local, availability-only race - verify before prioritizing.

Exploit ScenarioDerived

On a weakly-ordered (e.g. ARM) host with the RDS module loaded and active connections, an attacker or fault condition that forces repeated connection failover/teardown races the transmit path against rds_conn_shutdown(); on losing the store-buffering ordering the transmit path runs while the transport re-initializes its rings, hitting a BUG_ON() or NULL dereference and crashing the kernel. No public exploit code exists and the timing window is narrow, so this is far more likely to surface as sporadic crashes under failover load than as a reliably weaponized attack.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 25, 2026

The Linux kernel's Reliable Datagram Sockets (RDS) connection teardown path contains a race condition in rds_conn_shutdown() that can crash or hang the kernel, causing denial of service on systems where the RDS subsystem is loaded and connections are being shut down or failed over. The flaw stems from teardown merely sampling the RDS_IN_XMIT and RDS_RECV_REFILL fastpath bits as clear instead of owning them, so a concurrent rds_send_xmit() or rds_ib_recv_refill() can re-acquire the bit and run while the transport re-initializes its rings and rds_send_path_reset() rewrites transmit state under it. Because the store-buffering pattern only manifests where memory ordering is weak (for example ARM), and because the accept-side state check must pass before the path moves to RDS_CONN_DISCONNECTING, reliable triggering is difficult and the practical impact is limited to kernel instability; no public exploit code has been identified at time of analysis and vendor patches are available.

RemediationAI

Vendor-released patch available: Linux kernel stable releases 6.12.111, 6.18.53 and 7.2.7, with the mainline fix in 7.3-rc2 - upgrade to those or later versions from your distribution, which backports the commits published at https://git.kernel.org/stable/c/7febb113795d5de5b690b208f4b0e64a5fad1201, https://git.kernel.org/stable/c/900e96c9749a06833801f60c393aa1d405ea226c, https://git.kernel.org/stable/c/1fe627e5db5c3f53a9f9f9c8a66671755d306955 and https://git.kernel.org/stable/c/813f3582ac7ae9f60f917937d54660e0952d5f2d; the EUVD advisory is also linked at https://nvd.nist.gov/vuln/detail/CVE-2026-98069. If patching must be deferred, the most effective compensating control is to remove the attack surface entirely by preventing the RDS modules from loading (blacklist rds, rds_tcp and rds_rdma via modprobe.d and, where the subsystem is compiled in, disable it at build time) - the trade-off being that any RDS-dependent clustering or low-latency messaging workload stops working, so this is only viable on hosts that do not need RDS. A weaker alternative is to avoid triggering the race by not performing connection shutdowns or failovers on affected hosts, which is impractical for HA clusters that routinely drain paths. Because the window requires weak memory ordering plus an accept-side state check winning the race, kernels on strongly ordered x86_64 hardware are largely unaffected, so if RDS cannot be disabled, prioritise patching ARM and other weakly ordered deployments first; there is no configuration knob that makes teardown take ownership of the fastpath bits, so no other in-kernel mitigation is available.

Affected VersionsENISA

Linux 0f4b1c7e89e699f588807a914ec6e6396c851a72 <813f3582ac7ae9f60f917937d54660e0952d5f2d
Linux patch: 0
Linux patch: 7.3-rc2
Linux 0f4b1c7e89e699f588807a914ec6e6396c851a72 <7febb113795d5de5b690b208f4b0e64a5fad1201
Linux patch: 7.2.7
Linux 2.6.37
Linux patch: 6.18.53
Linux 0f4b1c7e89e699f588807a914ec6e6396c851a72 <1fe627e5db5c3f53a9f9f9c8a66671755d306955
Linux 0f4b1c7e89e699f588807a914ec6e6396c851a72 <900e96c9749a06833801f60c393aa1d405ea226c
Linux patch: 6.12.111

Affected Packages

euvd linux no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

RDS is an in-kernel datagram transport (rds, rds_tcp, rds_ib/rds_rdma modules) used for low-latency messaging between cluster nodes. Its data path uses two per-connection word bits, RDS_IN_XMIT and RDS_RECV_REFILL, taken in trylock style by rds_send_xmit() and rds_ib_recv_refill(); the teardown routine rds_conn_shutdown() previously used wait_event() to wait until both bits sampled clear, then proceeded to transport shutdown (which can zero rings via rds_ib_ring_init()) and rds_conn_path_reset()/rds_send_path_reset(). Waiting for a bit to read clear is not the same as holding it: immediately after the wait returns, a sender can re-take RDS_IN_XMIT and execute concurrently with ring reinitialization and transmit-state rewriting. The sender does recheck connection state under the bit, but acquire_in_xmit() is an acquire-only operation, producing a classic store-buffering pattern in which the teardown writes state and reads the bit while the sender writes the bit and reads the state; on weakly ordered CPUs (notably ARM) both sides can miss each other's write. The root cause class is improper synchronization of a shared resource (CWE-362) - a check-then-act quiesce window rather than a memory-safety bug. Oracle's UEK fixed an identical class of crashes (BUG_ON() in rds_ib_sub_signaled(), unexpected opcodes and NULL dereferences in rds_ib_send_cqe_handler() during failover testing) by having teardown acquire the fastpath bit locks, since ownership of a single word is decided by atomic read-modify-write and needs no cross-variable ordering; CVE-2026-98069 applies the same approach, taking both locks across the transport shutdown and rds_conn_path_reset() and releasing them with clear_bit_unlock() plus a wake-up. The fastpath users are trylock-and-back-off, so no new lock dependency is introduced for them; the one blocking acquirer, rds_tcp_reset_callbacks(), runs on the single-threaded krdsd workqueue and can park accept processing for the duration of the teardown (bounded by the up-to-5-second TCP drain loop), which lengthens the quiesce window but does not create a deadlock. Note that NVD's published vector (CVSS 3.1 8.1, AV:N, C:H/I:H) implies remote code-execution-like impact, whereas the independent assessment scores this as local, high-complexity, availability-only (CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H) with no evidence of code execution or data disclosure.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Linux) PRIMARY 8.1 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 4.7 MEDIUM

Local RDS teardown-vs-fastpath race needing a loaded module, tight timing and weakly-ordered arch (AV:L, AC:H, PR:L); crash-only so C:N/I:N/A:H.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 7.0 HIGH
AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Red Hat 7.0 MEDIUM

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
CVSS changed
Sep 25, 2026 - 15:22 NVD
8.1 (HIGH)
Patch available
Sep 25, 2026 - 11:02 EUVD
CVE Published
Sep 25, 2026 - 10:24 cve.org
HIGH 8.1
CVE Published
Sep 25, 2026 - 10:24 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

net/rds: acquire the fastpath locks in rds_conn_shutdown()

rds_conn_shutdown() quiesces the transmit and receive-refill paths by waiting for RDS_IN_XMIT and RDS_RECV_REFILL to be sampled clear, and then runs the transport shutdown and rds_conn_path_reset(). Sampling the bits clear is not the same as owning them: the moment after the wait_event() returns, rds_send_xmit() can re-acquire RDS_IN_XMIT (or rds_ib_recv_refill() can re-acquire RDS_RECV_REFILL) and run concurrently with the teardown.

The sender does recheck the connection state after taking the lock, but that recheck is a classic store-buffering pattern: teardown writes the state and reads the bit while the sender writes the bit and reads the state. acquire_in_xmit() is only an acquire operation, so on weakly ordered architectures both sides can miss each other's write, and the transmit path then runs while the transport zeroes its rings (e.g. rds_ib_ring_init()) and rds_send_path_reset() rewrites the transmit state under it.

Oracle UEK fixed the same class of crashes - a 14-year tail of BUG_ON()s in rds_ib_sub_signaled(), unexpected op-codes and NULL dereferences in rds_ib_send_cqe_handler() during failover testing - by making the teardown path *acquire* the fastpath bit locks instead of testing them ("rds: Make sure transmit path and connection tear-down does not run concurrently"). Ownership of a single word is decided by RMW atomicity, so no cross-variable ordering is needed.

Do the same here: take both locks before calling the transport shutdown, hold them across rds_conn_path_reset(), and release them explicitly with a wake-up afterwards. Both are released with clear_bit_unlock(), so that the ring re-initialization done by the transport shutdown and the transmit state rewritten by rds_send_path_reset() are ordered before either bit is seen clear by the next acquire_in_xmit() or acquire_refill().

The fastpath users of these bits - rds_send_xmit() and rds_ib_recv_refill() - are trylock style and back off while teardown owns the locks, so no new lock dependency is introduced for them. rds_tcp_reset_callbacks() is different: since the previous patch it acquires RDS_IN_XMIT as well, and it blocks doing so, so its wait now spans the teardown instead of at most one send batch. That waiter runs from rds_tcp_accept_one() on the single-threaded krdsd workqueue and holds rds_tcp_accept_lock and t_conn_path_lock while it waits, so a duelling SYN accepted while its path is being torn down parks accept processing for the duration of the teardown - for TCP bounded by the (up to 5 s) drain loop in rds_tcp_conn_path_shutdown(). An IB path's drain in rds_ib_conn_path_shutdown() has no round cap, but no blocking waiter either: rds_tcp_reset_callbacks() is the only blocking acquirer of these bits and waits only on its own TCP path, and the fastpaths are trylock-and-back-off on both transports, so a long IB drain lengthens only that path's own quiesce. The window is narrow: the accept-side state check has to pass before the teardown moves the path to RDS_CONN_DISCONNECTING.

Because krdsd is a single global workqueue, everything else queued there - accept processing for other connections and network namespaces, and the flush_workqueue(rds_wq) in rds_tcp_listen_stop() during namespace teardown - waits behind the parked accept worker for that time. It cannot deadlock, although the waits do point at each other: the teardown blocks until the bit's holder releases it, and the holder may be that krdsd accept worker. The holder finishes without needing anything the teardown owns: the sync cancels rds_tcp_reset_callbacks() issues target cp_send_w and cp_recv_w on the path's ordered cp_wq, whose only execution slot is occupied by the blocked cp_down_w itself, so they are pending at most and cancel without flushing - a reliance on cp_wq being ordered that is now noted next to those cancels (on ---truncated---

Executive ViewAI

Why It Matters

A high-severity flaw in the Linux kernel's Reliable Datagram Sockets (RDS) subsystem can crash or hang affected servers during connection teardown, creating a denial-of-service condition that could take critical workloads offline. Only systems that actively load the RDS module and are establishing or tearing down RDS connections are exposed, so the risk is concentrated in clustered, HPC, and high-availability environments rather than the general server fleet. Because recovery typically requires a reboot, leadership should treat this as an availability and service-continuity issue for the specific platforms running RDS, not a broad enterprise-wide compromise risk.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 59% exploitable
Prevalence
Low
RDS is a niche, rarely-loaded (often blacklisted) kernel module despite Linux ubiquity
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Medium

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +40
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

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