<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 05 Oct 2026 02:52:42 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-46099 — net: ipv6: fix NOREF dst use in seg6 and rpl lwtunnels</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-46099</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 10.0 Extended Update Support, Red Hat Enterprise Linux 9.2 Update Services for SAP Solutions, Red Hat Enterprise Linux 9.6 Extended Update Support, Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 8, Red Hat Enterprise Linux 9&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;net: ipv6: fix NOREF dst use in seg6 and rpl lwtunnels&lt;/p&gt;
&lt;p&gt;seg6_input_core() and rpl_input() call ip6_route_input() which sets a
NOREF dst on the skb, then pass it to dst_cache_set_ip6() invoking
dst_hold() unconditionally.
On PREEMPT_RT, ksoftirqd is preemptible and a higher-priority task can
release the underlying pcpu_rt between the lookup and the caching
through a concurrent FIB lookup on a shared nexthop.
Simplified race sequence:&lt;/p&gt;
&lt;p&gt;ksoftirqd/X                       higher-prio task (same CPU X)
  -----------                       --------------------------------
  seg6_input_core(,skb)/rpl_input(skb)
    dst_cache_get()
      -&amp;gt; miss
    ip6_route_input(skb)
      -&amp;gt; ip6_pol_route(,skb,flags)
         [RT6_LOOKUP_F_DST_NOREF in flags]
        -&amp;gt; FIB lookup resolves fib6_nh
           [nhid=N route]
        -&amp;gt; rt6_make_pcpu_route()
           [creates pcpu_rt, refcount=1]
             pcpu_rt-&amp;gt;sernum = fib6_sernum
             [fib6_sernum=W]
           -&amp;gt; cmpxchg(fib6_nh.rt6i_pcpu,
                      NULL, pcpu_rt)
              [slot was empty, store succeeds]
      -&amp;gt; skb_dst_set_noref(skb, dst)
         [dst is pcpu_rt, refcount still 1]&lt;/p&gt;
&lt;p&gt;rt_genid_bump_ipv6()
                                      -&amp;gt; bumps fib6_sernum
                                         [fib6_sernum from W to Z]
                                    ip6_route_output()…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 10.0 Extended Update Support, Red Hat Enterprise Linux 9.2 Update Services for SAP Solutions, Red Hat Enterprise Linux 9.6 Extended Update Support, Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 8, Red Hat Enterprise Linux 9&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;net: ipv6: fix NOREF dst use in seg6 and rpl lwtunnels&lt;/p&gt;
&lt;p&gt;seg6_input_core() and rpl_input() call ip6_route_input() which sets a
NOREF dst on the skb, then pass it to dst_cache_set_ip6() invoking
dst_hold() unconditionally.
On PREEMPT_RT, ksoftirqd is preemptible and a higher-priority task can
release the underlying pcpu_rt between the lookup and the caching
through a concurrent FIB lookup on a shared nexthop.
Simplified race sequence:&lt;/p&gt;
&lt;p&gt;ksoftirqd/X                       higher-prio task (same CPU X)
  -----------                       --------------------------------
  seg6_input_core(,skb)/rpl_input(skb)
    dst_cache_get()
      -&amp;gt; miss
    ip6_route_input(skb)
      -&amp;gt; ip6_pol_route(,skb,flags)
         [RT6_LOOKUP_F_DST_NOREF in flags]
        -&amp;gt; FIB lookup resolves fib6_nh
           [nhid=N route]
        -&amp;gt; rt6_make_pcpu_route()
           [creates pcpu_rt, refcount=1]
             pcpu_rt-&amp;gt;sernum = fib6_sernum
             [fib6_sernum=W]
           -&amp;gt; cmpxchg(fib6_nh.rt6i_pcpu,
                      NULL, pcpu_rt)
              [slot was empty, store succeeds]
      -&amp;gt; skb_dst_set_noref(skb, dst)
         [dst is pcpu_rt, refcount still 1]&lt;/p&gt;
&lt;p&gt;rt_genid_bump_ipv6()
                                      -&amp;gt; bumps fib6_sernum
                                         [fib6_sernum from W to Z]
                                    ip6_route_output()…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-46099</guid>
    </item>
  </channel>
</rss>
