Skip to content
Noroxi
NVD / CVE Program· CNA Linux

CVE-2026-98069: net/rds: acquire the fastpath locks in rds_conn_shutdown()

Noroxi assessment

Priority: Monitor (action score 32/100)

  • The sources we track (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) show no public exploit code or exploitation in the wild.
  • Probability of exploitation in the next 30 days: 0.56% (FIRST EPSS).
  • Anyone who can reach it over the internet can trigger it. No account or password is required. No user action is required. Special conditions such as timing or configuration are required.
  • Fixed version: Linux Linux 1f900f585cbb0fbe6aa00c31c9f5bb63ee614456, 1fe627e5db5c3f53a9f9f9c8a66671755d306955, 2e46248e375a516301884719f08b6015c79a6456; azl3 kernel 6.6.157.1-1 on Azure Linux 3.0 6.6.158.1-1.
  • Mentioned 1 time in Turkish national cyber security advisories (siberguvenlik.gov.tr).

Low priority for now. Upgrade to Linux Linux 1f900f585cbb0fbe6aa00c31c9f5bb63ee614456, 1fe627e5db5c3f53a9f9f9c8a66671755d306955, 2e46248e375a516301884719f08b6015c79a6456; azl3 kernel 6.6.157.1-1 on Azure Linux 3.0 6.6.158.1-1 or later.

Generated automatically from the record's data: CVSS (NVD and CNA), CISA KEV and SSVC, FIRST EPSS, exploit sources, fixed versions. How we calculate it

Primary sources: NVD · CVE.org · FIRST EPSS

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---

HighCVSS 8.1 · v3.1—No exploit Fix available
Published
Sep 25, 2026
Updated
Oct 19, 2026
EPSS
0.5% · 46th percentile
CWE
—

Report tools

JSON

Action score

32

Monitor

Low priority for now.

CVSS
32 / 40 · 8.1 / 10
CISA KEV
0 / 30 · Not listed
EPSS
0 / 30 · 0.5%

CNA vs NVD score

NVD
—
CNA · Linux
8.1
NVD has not scored this yet; the score shown is the CNA’s.

The score given by the assigning authority versus NVD’s independent score. A gap means the severity is contested.

Get told when this record changes

  • Not in KEV: no record of exploitation in the wild
  • No public exploit code on record
  • A fix has been released

If any of these changes, we'll tell you in the daily email digest.

Follow CVE-2026-98069

When you'll hear from us

  • when it enters CISA KEV
  • when exploit code appears or is weaponized
  • when the record is updated (including a fixed version)
  • when EPSS rises 20 points in a week

One daily email digest (06:00 UTC); connect a webhook for KEV listings and weaponized exploits instantly.

Your free account also gets you

Running WordPress? Scan your site free with WP Lens

  • Stack alerts: add the products and versions you run, get the new CVEs that affect them
  • Uptime monitoring: 1 site, instant email when it goes down
  • Add your domain: subdomains and takeover risk scanned every week (1 domain)
  • 10 scans an hour on the security tools (3 a day without an account), an API key and MCP
  • All your scans in one panel: findings, what changed in the last scan, a report per domain or per client (PDF, share link)
All free tools

Sign up with email · Have an account? Sign in

Free account, no card. Unfollow any time.

Running WordPress? Scan your site free with WP Lens

Is your version affected? Check it

Noroxi analysis

What does it mean in your environment?

The assessment above is generated automatically from the record's data; it doesn't know your environment. Our team verifies on your systems whether this vulnerability is actually exploitable and which mitigation is enough.

We use this product, ask for help

Affected systems

Is your version affected?

Pick the product and type the version you run. It's compared with this record's version ranges in your browser; the version isn't sent anywhere.

—

Versions reported by the vendor

Affected version ranges reported by the assigning authority (Linux). Independent of NVD's CPE analysis and usually ahead of it.

  • Linux Linux

    • 2.6.37affected
    • 0f4b1c7e89e699f588807a914ec6e6396c851a72 and later · before 7f4f21e4439df30d9aca9fb3bac38191a2f34729affected · git
    • 0f4b1c7e89e699f588807a914ec6e6396c851a72 and later · before 1f900f585cbb0fbe6aa00c31c9f5bb63ee614456affected · git
    • 0f4b1c7e89e699f588807a914ec6e6396c851a72 and later · before 32e21bcf4b5b11454bf57c4bb3bf019b71512aceaffected · git
    • 0f4b1c7e89e699f588807a914ec6e6396c851a72 and later · before 2e46248e375a516301884719f08b6015c79a6456affected · git
    • 0f4b1c7e89e699f588807a914ec6e6396c851a72 and later · before 7febb113795d5de5b690b208f4b0e64a5fad1201affected · git
    • 0f4b1c7e89e699f588807a914ec6e6396c851a72 and later · before 900e96c9749a06833801f60c393aa1d405ea226caffected · git
    • 0f4b1c7e89e699f588807a914ec6e6396c851a72 and later · before 1fe627e5db5c3f53a9f9f9c8a66671755d306955affected · git
    • 0f4b1c7e89e699f588807a914ec6e6396c851a72 and later · before 813f3582ac7ae9f60f917937d54660e0952d5f2daffected · git
    • before 2.6.37not affected · semver

Package-level exposure

OSV and GitHub Advisory data: ecosystem, package and range. SBOM matching uses this table.

EcosystemPackageAffected rangeFix
Debian:12linuxbefore 6.1.190-16.1.190-1
Debian:12linux-6.12before 6.12.111-1~deb12u16.12.111-1~deb12u1
Debian:13linuxbefore 6.12.111-16.12.111-1
Debian:14linuxbefore 7.2.7-17.2.7-1

Other highest-scoring records for the same primary product.

  • CVE-2026-74705udp: fix potential use-after-free in tunnel segmentation
    40Plan
  • CVE-2026-74612veth: fix skb length accounting after XDP frag adjustment
    40Plan
  • CVE-2026-74475vxlan: use neigh_ha_snapshot() in route_shortcircuit()
    40Plan

Published before and after this one in the same product

  • ← EarlierCVE-2026-98067Sep 25, 2026 · erofs: disable LZ4 rolling decompression for now
    0Monitor
  • ← EarlierCVE-2026-98068Sep 25, 2026 · net/rds: don't let rds_conn_shutdown() consume a concurrent drop
    0Monitor
  • Later →CVE-2026-98070Sep 25, 2026 · net/rds: acquire RDS_IN_XMIT in rds_tcp_reset_callbacks()
    32Monitor

Remediation

Which version to upgrade to

Fix versions compiled from the vendor, package registries and Microsoft. Verify the vendor's note before upgrading.

Product / packageFixed versionSource
Linux Linux1f900f585cbb0fbe6aa00c31c9f5bb63ee614456Vendor (CNA)
Linux Linux1fe627e5db5c3f53a9f9f9c8a66671755d306955Vendor (CNA)
Linux Linux2e46248e375a516301884719f08b6015c79a6456Vendor (CNA)
Linux Linux32e21bcf4b5b11454bf57c4bb3bf019b71512aceVendor (CNA)
Linux Linux7f4f21e4439df30d9aca9fb3bac38191a2f34729Vendor (CNA)
Linux Linux7febb113795d5de5b690b208f4b0e64a5fad1201Vendor (CNA)
Linux Linux813f3582ac7ae9f60f917937d54660e0952d5f2dVendor (CNA)
Linux Linux900e96c9749a06833801f60c393aa1d405ea226cVendor (CNA)
azl3 kernel 6.6.157.1-1 on Azure Linux 3.06.6.158.1-1 · Release NotesMicrosoft (MSRC)
debian:linux6.1.190-1 · Debian:12Package registry (OSV)
debian:linux6.12.111-1 · Debian:13Package registry (OSV)
debian:linux-6.126.12.111-1~deb12u1 · Debian:12Package registry (OSV)

Exploit status

No known public exploit

No public exploit has been observed yet. That doesn't mean you're safe, only that the bar is a little higher.

Research context

For pentesters and researchers: attack profile, score disagreement, timeline, patch commits, credits, variant and chain candidates, bug bounty scope. All derived from existing data; no exploit code.

Timeline

From publication to today: proof of concept, Metasploit module, CISA KEV and fix record. Dates are as reported by the sources.

No dated events beyond publication.

EPSS, last 120 days

FIRST EPSS daily score; only changes of 0.01 or more are recorded (step chart).

Patch and commit links

Commit, PR and diff links among the references. A starting point for patch-diffing and variant hunting; fixes, not exploits.

No commit or PR link among the references.

Finders, reporters and analysts named in the CNA record. Click a name for that researcher’s other records.

No credits in the CNA record.

Variant candidates

Same product, same weakness class, within 18 months. If the patch missed the root cause, the sibling bug is here.

No nightly-computed relations.

Chain candidates

An authentication bypass and a privilege-requiring bug in the same product, published close together: combined they may become an unauthenticated path.

—

Bug bounty scope

No known public program.

Source: bounty-targets-data (public HackerOne, Bugcrowd, Intigriti, YesWeHack listings).

National notice (Türkiye Cybersecurity Directorate / USOM)

Official security notices citing this record; remediation advice is on the agency's page.

All national notices →

Technical details

Attack conditions

  • Anyone who can reach it over the internet can trigger it.
  • No account or password is required.
  • No user action is required.
  • Special conditions such as timing or configuration are required.

If successful

Confidentiality
high · data can be read
Integrity
high · data or configuration can be modified
Availability
high · the service can be disrupted
Attack vector
Network
Attack complexity
High
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality impact
High
Integrity impact
High
Availability impact
High

Weakness class (CWE)

—

CVSS vector

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

nvd-secondary

Attack context

MITRE CAPEC attack patterns and ATT&CK techniques for this weakness class (CWE). A starting point for detection rules and threat hunting.

MITRE has no CAPEC/ATT&CK mapping for this CWE.

Change log

  1. Fix✗ → ✓

For records you follow, these changes also arrive as notifications. →

References

All records