<Vulnerability name="CVE-2026-98303">
    <DocumentDistribution xml:lang="en">Copyright © 2012 Red Hat, Inc. All rights reserved.</DocumentDistribution>
    <ThreatSeverity>Moderate</ThreatSeverity>
    <PublicDate>2026-10-06T00:00:00</PublicDate>
    <Bugzilla id="2546531" url="https://bugzilla.redhat.com/show_bug.cgi?id=2546531" xml:lang="en:us">
kernel: ipv4: icmp: reject RTN_UNREACHABLE input routes in icmp_route_lookup
    </Bugzilla>
    <CVSS3 status="draft">
        <CVSS3BaseScore>5.5</CVSS3BaseScore>
        <CVSS3ScoringVector>CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H</CVSS3ScoringVector>
    </CVSS3>
    <CWE>CWE-617</CWE>
    <Details xml:lang="en:us" source="Mitre">
In the Linux kernel, the following vulnerability has been resolved:

ipv4: icmp: reject RTN_UNREACHABLE input routes in icmp_route_lookup

When the forward output route cannot be used in icmp_route_lookup(),
it enters the "reverse path" and calls ip_route_input() on fl4_dec.daddr,
the original packet's source address.

ip_route_input() only returns an error for truly invalid packets. For
unreachable addresses it will succeed and return an input route whose
dst.output is set to ip_rt_bug(). The existing check only rejects
RTN_LOCAL routes, so the RTN_UNREACHABLE route types can still be returned
and later used for output, syzkaller triggering a WARN_ON_ONCE()
in ip_rt_bug() as bellow:

 ------------[ cut here ]------------
 WARNING: net/ipv4/route.c:1273 at ip_rt_bug+0x14/0x20
 RIP: 0010:ip_rt_bug+0x14/0x20
 Call Trace:
  ip_push_pending_frames+0xfa/0x100
  __icmp_send+0x905/0xf10
  ip_options_compile+0xc0/0xd0
  ip_rcv_finish_core+0x321/0xae0
  ip_rcv+0x1de/0x260
  __netif_receive_skb_one_core+0x11a/0x130
  netif_receive_skb+0x7b/0x260
  tun_get_user+0x11bf/0x1c10
 ------------[ cut here ]------------

Reject input route that is RTN_UNREACHABLE to fix it. The net warning
is only printed for RTN_LOCAL, as RTN_UNREACHABLE is not the result of
a race condition.
    </Details>
    <Details xml:lang="en:us" source="Red Hat">
A flaw was found in the Linux kernel's IPv4 networking subsystem. When looking up routes to send Internet Control Message Protocol (ICMP) error messages, the kernel fails to properly reject unreachable input routes. A remote attacker can exploit this flaw by transmitting network packets that trigger ICMP responses to unreachable destinations, causing the system to invoke an invalid route handler and trigger a kernel warning, potentially leading to a Denial of Service (DoS).
    </Details>
    <Statement xml:lang="en:us">
A flaw in the Linux kernel's IPv4 ICMP error-message routing is rated Moderate by Red Hat Product Security and affects the Red Hat Enterprise Linux 7, 8, 9, and 10 kernels (including kernel-rt), Red Hat In-Vehicle OS 2, and the RHEL CoreOS layers of OpenShift Container Platform 4 and 5. When the kernel generates an ICMP error response and the forward output route cannot be used, icmp_route_lookup() falls back to a reverse-path lookup that calls ip_route_input() on the original packet's source address. For unreachable source addresses, this lookup can succeed and return an RTN_UNREACHABLE input route whose output callback is ip_rt_bug(); because the existing check only rejected RTN_LOCAL routes, the invalid route can be used for output, triggering a WARN_ON_ONCE() in ip_rt_bug() and dropping the outgoing ICMP response. An attacker who can transmit crafted IPv4 packets that cause the kernel to generate ICMP error replies toward unreachable destinations can trigger this condition and cause a denial of service: under default configurations the effect is a kernel warning and a dropped packet, while systems configured with panic_on_warn can panic. Red Hat Enterprise Linux 6 is out of support (OOSS) and will not receive a fix. For all affected streams the fix is deferred to a future update; the residual risk is limited to availability, with no impact on confidentiality or integrity. The Red Hat severity (Moderate, CVSS 3.1 score 5.5, local attack vector) reflects that the publicly demonstrated reproducer requires local privileges to set up the triggering configuration, although a remotely transmitted trigger remains plausible.
    </Statement>
    <Mitigation xml:lang="en:us">
Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base, or stability.
    </Mitigation>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:10">
        <ProductName>Red Hat Enterprise Linux 10</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>kernel</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:6">
        <ProductName>Red Hat Enterprise Linux 6</ProductName>
        <FixState>Out of support scope</FixState>
        <PackageName>kernel</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:7">
        <ProductName>Red Hat Enterprise Linux 7</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>kernel</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:7">
        <ProductName>Red Hat Enterprise Linux 7</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>kernel-rt</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:8">
        <ProductName>Red Hat Enterprise Linux 8</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>kernel</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:8">
        <ProductName>Red Hat Enterprise Linux 8</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>kernel-rt</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:9">
        <ProductName>Red Hat Enterprise Linux 9</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>kernel</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:9">
        <ProductName>Red Hat Enterprise Linux 9</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>kernel-rt</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:openshift:4">
        <ProductName>Red Hat OpenShift Container Platform 4</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>openshift/ose-rhel-coreos-8</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:openshift:4">
        <ProductName>Red Hat OpenShift Container Platform 4</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>openshift/ose-rhel-coreos-9</PackageName>
    </PackageState>
    <References xml:lang="en:us">
https://www.cve.org/CVERecord?id=CVE-2026-98303
https://nvd.nist.gov/vuln/detail/CVE-2026-98303
https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2026/CVE-2026-98303.mbox
    </References>
</Vulnerability>