Skip to main content

Linux Kernel CVE-2026-98432

| EUVDEUVD-2026-102025 CRITICAL
2026-10-15 Linux GHSA-qp6h-4hvh-qqqc
9.8
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

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

  1. Access
    Send SYN to TCP listener
  2. Delivery
    Race retransmitted SYN on second CPU
  3. Exploit
    Child socket frees inet_opt without RCU grace
  4. Execution
    Concurrent SYNACK reads freed ireq_opt
  5. Persist
    Use-after-free in ip_options_build
  6. Impact
    Kernel memory corruption or crash

Vulnerability Assessment

Exploitation Conditions

Primary issue: a remote attacker targeting any listening TCP/IPv4 socket under the default SYN_RECV ehash path (present since commit 079096f103fa), but exploitation is LIMITED by a hard concurrency requirement - the attacker must win a race on a multi-CPU system between tcp_v4_send_synack()/inet_csk_route_req() reading ireq->ireq_opt under RCU and the child socket freeing inet_opt via a non-RCU kfree() in inet_sock_destruct(). A distinct variant requires the non-default request-socket migration feature, i.e. net.ipv4.tcp_migrate_req=1 or an attached BPF_SK_REUSEPORT_SELECT_OR_MIGRATE program, where inet_reqsk_clone() shares ireq_opt and tcp_v4_reqsk_destructor() frees it with a plain kfree(). IPv6 is NOT affected by the primary issue because tcp_v6_syn_recv_sock() duplicates the options (the IPv6 CALIPSO migration case is deferred to a separate patch). No authentication or user interaction is needed, but timing precision, SMP hardware, and (for the migration path) non-default configuration meaningfully constrain real-world exploitation.

Impact

Signals conflict and must be weighed carefully. The input CVSS is 9.8 with AV:N/AC:L/PR:N/UI:N, implying trivial remote unauthenticated compromise, but the description itself makes clear the bug is a concurrency race: it is only reached when 'another cpu can concurrently process a retransmitted SYN for the same request socket' while a child socket is being created or freed. That contradicts AC:L - a reliable trigger requires winning a tight timing window on an SMP system, so real-world exploitability is considerably lower than 9.8 suggests (I assess AC:H). Corroborating this, EPSS is only 0.17% (5th percentile), there is no CISA KEV listing (not actively exploited), and no public exploit identified at time of analysis - the references are kernel.org fix commits and a VulDB advisory, not working exploit code. The one signal pushing urgency up is the vuln.today 'act_now' Decision label and the fact that this is a use-after-free in the Linux kernel's core TCP/IPv4 path, which is network-reachable on any listening socket. Net assessment: this is a legitimately serious kernel memory-safety bug that should be patched promptly per the act_now label, but it is a race-dependent UAF with very low observed exploitation probability, not a turnkey remote-code-execution emergency; the 9.8/AC:L rating overstates practical ease of exploitation.

Exploit ScenarioDerived

A remote attacker sends a SYN to a listening TCP service and then races a retransmitted SYN so that one CPU builds/sends a SYNACK (reading ireq->ireq_opt under RCU) while another CPU creates or frees the child socket, whose inet_opt is freed with a plain kfree() lacking an RCU grace period. Winning this window produces a use-after-free in ip_options_build(), which can crash the kernel or corrupt memory. No public exploit code is identified; successful exploitation requires an SMP host and precise timing.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 24, 2026

A use-after-free in the Linux kernel's IPv4 TCP request-socket handling lets a remote, unauthenticated attacker potentially free inet_opt while it is still being read during SYNACK construction, producing memory corruption in ip_options_build(). Every IPv4 TCP listener using the default SYN_RECV ehash path is in scope, but exploitation is constrained: it requires winning a race between the RSOURCE read of ireq->ireq_opt under rcu_read_lock() and the child socket's plain kfree() in inet_sock_destruct() on a multi-CPU system, and the second variant additionally requires the non-default net.ipv4.tcp_migrate_req=1 setting or an attached BPF_SK_REUSEPORT_SELECT_OR_MIGRATE program. No public exploit code has been identified at time of analysis; EPSS is low at 0.17% (5th percentile), yet the vuln.today decision label is act_now and the assessed vector (AC:H rather than the published AC:L) puts this at high impact if the race is won.

RemediationAI

Apply the vendor patch: upgrade to Linux 6.12.113, 6.18.56, 7.2.10, or 7.3-rc7, or take the listed stable commits (11a03ce3c4a62d84c10ccdfe47f8075006498568, a47406c769f72c070386985488f1c4d057df86b2, 26d4c36d318cffbbd160884a0e4cec0da4da4936, e3f33b0a1d89d738e2b913dab519226eaf76e15b), which convert the frees in inet_sock_destruct() and tcp_v4_reqsk_destructor() to kfree_rcu() so option memory survives the RCU read-side critical sections. Where immediate kernel upgrades are not possible, the migration variant can be closed by disabling request-socket migration (net.ipv4.tcp_migrate_req=0) and detaching BPF_SK_REUSEPORT_SELECT_OR_MIGRATE reuseport programs, at the cost of losing cross-CPU SYN migration and its accept-queue balancing benefit; the primary ehash-path race has no equivalent switch, so patching is the only complete fix. After the patch, IPv6 CALIPSO migration handling for ipv6_opt remains outstanding pending the separate upstream change. Track advisory status via the kernel stable commits above, https://vuldb.com/vuln/420618, and https://nvd.nist.gov/vuln/detail/CVE-2026-98432.

Affected VersionsENISA

Linux patch: 7.2.10
Linux patch: 6.18.56
Linux 079096f103faca2dd87342cca6f23d4b34da8871 <26d4c36d318cffbbd160884a0e4cec0da4da4936
Linux 079096f103faca2dd87342cca6f23d4b34da8871 <a47406c769f72c070386985488f1c4d057df86b2
Linux patch: 0
Linux patch: 6.12.113
Linux 079096f103faca2dd87342cca6f23d4b34da8871 <e3f33b0a1d89d738e2b913dab519226eaf76e15b
Linux patch: 7.3-rc7
Linux 4.4
Linux 079096f103faca2dd87342cca6f23d4b34da8871 <11a03ce3c4a62d84c10ccdfe47f8075006498568

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

The root cause is an ownership-transfer/lifetime defect in the Linux networking stack's request-socket option handling. tcp_v4_syn_recv_sock() hands ireq->ireq_opt to the child socket as newinet->inet_opt without making a copy, while readers on other CPUs - tcp_v4_send_synack() and inet_csk_route_req() - access ireq->ireq_opt under only rcu_read_lock(), and ip_build_and_send_pkt()/ip_options_build() dereference opt->optlen multiple times, so an object freed underneath them yields a use-after-free. The exposure was introduced by commit 079096f103fa ("tcp/dccp: install syn_recv requests into ehash table"), which removed listener-lock protection so request sockets can be processed concurrently; TCP child sockets lack SOCK_RCU_FREE and inet_sock_destruct() released inet_opt with a bare kfree() rather than kfree_rcu(). A second, configuration-gated variant: with request-socket migration active (net.ipv4.tcp_migrate_req=1 or a BPF_SK_REUSEPORT_SELECT_OR_MIGRATE program), reqsk_timer_handler() clones the request socket via inet_reqsk_clone(), so original and clone share ireq_opt, reqsk_migrate_reset() clears the pointer in the old socket, and tcp_v4_reqsk_destructor() frees the shared options with a plain kfree() while another CPU still holds a reference. IPv6 escapes the primary flaw because tcp_v6_syn_recv_sock() duplicates the options; the analogous ipv6_opt/CALIPSO migration case is deferred to a separate patch. Other writers replacing inet_opt (do_ip_setsockopt(), cipso_v4_sock_setattr()) already used kfree_rcu(), and the fix extends that pattern to the two destructors. The trigger is a concurrency race, not a straightforward protocol-level flaw, and the CWE is not assigned in the source data.

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 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.1 HIGH

Remote and unauthenticated (AV:N/PR:N/UI:N), but the described cross-CPU race on a shared ireq_opt makes the trigger a tight timing window, so AC:H; a kernel UAF can corrupt memory, so C/I/A:H.

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

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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

Lifecycle Timeline

4
CVSS changed
Oct 24, 2026 - 14:22 NVD
9.8 (CRITICAL)
Patch available
Oct 15, 2026 - 13:02 EUVD
CVE Published
Oct 15, 2026 - 12:08 cve.org
CRITICAL 9.8
CVE Published
Oct 15, 2026 - 12:08 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

ipv4: free inet_opt and ireq_opt after an RCU grace period

tcp_v4_syn_recv_sock() transfers ownership of ireq->ireq_opt to the child socket (newinet->inet_opt) without copying it.

Another cpu can concurrently process a retransmitted SYN for the same request socket, and send a SYNACK from tcp_check_req(). tcp_v4_send_synack() and inet_csk_route_req() read ireq->ireq_opt under rcu_read_lock() only, and ip_build_and_send_pkt() and ip_options_build() then read opt->optlen twice.

Note that the SYNACK timer itself is not an issue: it holds a reference on its request socket, and inet_csk_reqsk_queue_drop() calls timer_delete_sync() before the child can be freed.

Since commit 079096f103fa ("tcp/dccp: install syn_recv requests into ehash table"), request sockets are processed without holding the listener lock, so nothing prevents the child socket from being freed while the SYNACK is still being built. TCP child sockets do not have SOCK_RCU_FREE, and inet_sock_destruct() frees inet_opt with a plain kfree(), leading to a use-after-free in ip_options_build().

A similar issue exists with request socket migration (net.ipv4.tcp_migrate_req=1, or a BPF_SK_REUSEPORT_SELECT_OR_MIGRATE program). reqsk_timer_handler() clones the request socket with inet_reqsk_clone(), so that the old request socket and its clone share the same ireq_opt, then reqsk_migrate_reset() clears the pointer in the old one. Another cpu holding a reference on the old request socket can still be using these options (sending a SYNACK, or creating a child in tcp_v4_syn_recv_sock()) when the clone is freed, and tcp_v4_reqsk_destructor() also uses a plain kfree().

Readers already use RCU, and other paths replacing inet_opt (do_ip_setsockopt(), cipso_v4_sock_setattr()...) already use kfree_rcu(). Use kfree_rcu() in inet_sock_destruct() and tcp_v4_reqsk_destructor() as well.

IPv6 is not affected by the first issue, because tcp_v6_syn_recv_sock() duplicates the options. tcp_v6_reqsk_destructor() has the same migration issue with ipv6_opt, which is only set by CALIPSO. This will be addressed in a separate patch.

Executive ViewAI

Why It Matters

CVE-2026-98432 is a critical Linux kernel vulnerability (CVSS 9.8) in IPv4 TCP request-socket handling that, if exploited, could allow an unauthenticated remote attacker to corrupt memory on systems with multiple CPUs, potentially leading to remote code execution or denial of service. While no public exploit code has been identified at time of analysis, the severity and potential for high impact-especially given the assessed attack complexity-warrant immediate attention from security leadership. Organizations relying on Linux for critical network services could face significant operational disruption and data integrity risks if this vulnerability is left unaddressed.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Ubiquitous
Core Linux kernel TCP/IPv4 stack, present in nearly all deployments
Social Media
1
Sightings
Data Quality
5 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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Yes
Human Impact
High

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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