<?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://cve.radiocsirt.org</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>Fri, 09 Oct 2026 15:49:16 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-98317 — neighbour: Enforce min/max to NDTPA_INTERVAL_PROBE_TIME_MS.</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-98317</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;neighbour: Enforce min/max to NDTPA_INTERVAL_PROBE_TIME_MS.&lt;/p&gt;
&lt;p&gt;NDTPA_INTERVAL_PROBE_TIME_MS sets .type and .min but misses
.validation_type, so no validation is applied:&lt;/p&gt;
&lt;p&gt;# ynl --family rt-neigh --do setneightbl \
  --json &amp;#39;{&amp;#34;name&amp;#34;: &amp;#34;arp_cache&amp;#34;, &amp;#34;parms&amp;#34;: {&amp;#34;interval-probe-time-ms&amp;#34;: 0}}&amp;#39;&lt;/p&gt;
&lt;p&gt;# ynl --family rt-neigh --dump getneightbl --output-json | \
  jq &amp;#39;.[] | select(.name == &amp;#34;arp_cache&amp;#34; and has(&amp;#34;config&amp;#34;))
          | .parms[&amp;#34;interval-probe-time-ms&amp;#34;]&amp;#39;
  0&lt;/p&gt;
&lt;p&gt;Moreover, nla_get_msecs() uses msecs_to_jiffies(), and u64 is
silently cast to u32, so a larger value can bypass the min check:&lt;/p&gt;
&lt;p&gt;e.g. 4294967296 == 0x100000000&lt;/p&gt;
&lt;p&gt;# ynl --family rt-neigh --do setneightbl \
  --json &amp;#39;{&amp;#34;name&amp;#34;: &amp;#34;arp_cache&amp;#34;, &amp;#34;parms&amp;#34;: {&amp;#34;interval-probe-time-ms&amp;#34;: 4294967296}}&amp;#39;&lt;/p&gt;
&lt;p&gt;# ynl --family rt-neigh --dump getneightbl --output-json | \
  jq &amp;#39;.[] | select(.name == &amp;#34;arp_cache&amp;#34; and has(&amp;#34;config&amp;#34;))
          | .parms[&amp;#34;interval-probe-time-ms&amp;#34;]&amp;#39;
  0&lt;/p&gt;
&lt;p&gt;msecs_to_jiffies() returns MAX_JIFFY_OFFSET if the value is
larger than INT_MAX.  Also, INT_MAX ms overflows int NEIGH_VAR()
when HZ &amp;gt; 1000 (Alpha, MIPS), and passing a negative integer to
queue_delayed_work(unsigned long delay) causes sign extension,
which wraps around the expiry time to the past, resulting in it
being handled as 0 delay in the timer wheel.&lt;/p&gt;
&lt;p&gt;Let&amp;#39;s use NLA_POLICY_FULL_RANGE() and limit the max to 1 day.&lt;/p&gt;
&lt;p&gt;The same max check is applied to sysctl as well.&lt;/p&gt;
&lt;p&gt;Note that this controls the pr…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;neighbour: Enforce min/max to NDTPA_INTERVAL_PROBE_TIME_MS.&lt;/p&gt;
&lt;p&gt;NDTPA_INTERVAL_PROBE_TIME_MS sets .type and .min but misses
.validation_type, so no validation is applied:&lt;/p&gt;
&lt;p&gt;# ynl --family rt-neigh --do setneightbl \
  --json &amp;#39;{&amp;#34;name&amp;#34;: &amp;#34;arp_cache&amp;#34;, &amp;#34;parms&amp;#34;: {&amp;#34;interval-probe-time-ms&amp;#34;: 0}}&amp;#39;&lt;/p&gt;
&lt;p&gt;# ynl --family rt-neigh --dump getneightbl --output-json | \
  jq &amp;#39;.[] | select(.name == &amp;#34;arp_cache&amp;#34; and has(&amp;#34;config&amp;#34;))
          | .parms[&amp;#34;interval-probe-time-ms&amp;#34;]&amp;#39;
  0&lt;/p&gt;
&lt;p&gt;Moreover, nla_get_msecs() uses msecs_to_jiffies(), and u64 is
silently cast to u32, so a larger value can bypass the min check:&lt;/p&gt;
&lt;p&gt;e.g. 4294967296 == 0x100000000&lt;/p&gt;
&lt;p&gt;# ynl --family rt-neigh --do setneightbl \
  --json &amp;#39;{&amp;#34;name&amp;#34;: &amp;#34;arp_cache&amp;#34;, &amp;#34;parms&amp;#34;: {&amp;#34;interval-probe-time-ms&amp;#34;: 4294967296}}&amp;#39;&lt;/p&gt;
&lt;p&gt;# ynl --family rt-neigh --dump getneightbl --output-json | \
  jq &amp;#39;.[] | select(.name == &amp;#34;arp_cache&amp;#34; and has(&amp;#34;config&amp;#34;))
          | .parms[&amp;#34;interval-probe-time-ms&amp;#34;]&amp;#39;
  0&lt;/p&gt;
&lt;p&gt;msecs_to_jiffies() returns MAX_JIFFY_OFFSET if the value is
larger than INT_MAX.  Also, INT_MAX ms overflows int NEIGH_VAR()
when HZ &amp;gt; 1000 (Alpha, MIPS), and passing a negative integer to
queue_delayed_work(unsigned long delay) causes sign extension,
which wraps around the expiry time to the past, resulting in it
being handled as 0 delay in the timer wheel.&lt;/p&gt;
&lt;p&gt;Let&amp;#39;s use NLA_POLICY_FULL_RANGE() and limit the max to 1 day.&lt;/p&gt;
&lt;p&gt;The same max check is applied to sysctl as well.&lt;/p&gt;
&lt;p&gt;Note that this controls the pr…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-98317</guid>
    </item>
  </channel>
</rss>
