<?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>Thu, 01 Oct 2026 01:41:19 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-31503 — udp: Fix wildcard bind conflict check when using hash2</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-31503</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP, Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP, Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;udp: Fix wildcard bind conflict check when using hash2&lt;/p&gt;
&lt;p&gt;When binding a udp_sock to a local address and port, UDP uses
two hashes (udptable-&amp;gt;hash and udptable-&amp;gt;hash2) for collision
detection. The current code switches to &amp;#34;hash2&amp;#34; when
hslot-&amp;gt;count &amp;gt; 10.&lt;/p&gt;
&lt;p&gt;&amp;#34;hash2&amp;#34; is keyed by local address and local port.
&amp;#34;hash&amp;#34; is keyed by local port only.&lt;/p&gt;
&lt;p&gt;The issue can be shown in the following bind sequence (pseudo code):&lt;/p&gt;
&lt;p&gt;bind(fd1,  &amp;#34;[fd00::1]:8888&amp;#34;)
bind(fd2,  &amp;#34;[fd00::2]:8888&amp;#34;)
bind(fd3,  &amp;#34;[fd00::3]:8888&amp;#34;)
bind(fd4,  &amp;#34;[fd00::4]:8888&amp;#34;)
bind(fd5,  &amp;#34;[fd00::5]:8888&amp;#34;)
bind(fd6,  &amp;#34;[fd00::6]:8888&amp;#34;)
bind(fd7,  &amp;#34;[fd00::7]:8888&amp;#34;)
bind(fd8,  &amp;#34;[fd00::8]:8888&amp;#34;)
bind(fd9,  &amp;#34;[fd00::9]:8888&amp;#34;)
bind(fd10, &amp;#34;[fd00::10]:8888&amp;#34;)&lt;/p&gt;
&lt;p&gt;/* Correctly return -EADDRINUSE because &amp;#34;hash&amp;#34; is used
 * instead of &amp;#34;hash2&amp;#34;. udp_lib_lport_inuse() detects the
 * conflict.
 */
bind(fail_fd, &amp;#34;[::]:8888&amp;#34;)&lt;/p&gt;
&lt;p&gt;/* After one more socket is bound to &amp;#34;[fd00::11]:8888&amp;#34;,
 * hslot-&amp;gt;count exceeds 10 and &amp;#34;hash2&amp;#34; is used instead.
 */
bind(fd11, &amp;#34;[fd00::11]:8888&amp;#34;)
bind(fail_fd, &amp;#34;[::]:8888&amp;#34;)      /* succeeds unexpectedly */&lt;/p&gt;
&lt;p&gt;The same issue applies to the IPv4 wildcard address &amp;#34;0.0.0.0&amp;#34;
and the IPv4-mapped wildcard address &amp;#34;::ffff:0.0.0.0&amp;#34;. For
example, if there are existing sockets bound to
&amp;#34;192.168.1.[1-11]:8888&amp;#34;, then binding &amp;#34;0.0.0.0:8888&amp;#34; or
&amp;#34;[::ffff:0.0.0.0]:8888&amp;#34; can also miss the conflict when
hslot-&amp;gt;count &amp;gt; 10.&lt;/p&gt;
&lt;p&gt;TCP inet_csk_get_port() already has the correct check in
inet_u…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP, Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP, Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;udp: Fix wildcard bind conflict check when using hash2&lt;/p&gt;
&lt;p&gt;When binding a udp_sock to a local address and port, UDP uses
two hashes (udptable-&amp;gt;hash and udptable-&amp;gt;hash2) for collision
detection. The current code switches to &amp;#34;hash2&amp;#34; when
hslot-&amp;gt;count &amp;gt; 10.&lt;/p&gt;
&lt;p&gt;&amp;#34;hash2&amp;#34; is keyed by local address and local port.
&amp;#34;hash&amp;#34; is keyed by local port only.&lt;/p&gt;
&lt;p&gt;The issue can be shown in the following bind sequence (pseudo code):&lt;/p&gt;
&lt;p&gt;bind(fd1,  &amp;#34;[fd00::1]:8888&amp;#34;)
bind(fd2,  &amp;#34;[fd00::2]:8888&amp;#34;)
bind(fd3,  &amp;#34;[fd00::3]:8888&amp;#34;)
bind(fd4,  &amp;#34;[fd00::4]:8888&amp;#34;)
bind(fd5,  &amp;#34;[fd00::5]:8888&amp;#34;)
bind(fd6,  &amp;#34;[fd00::6]:8888&amp;#34;)
bind(fd7,  &amp;#34;[fd00::7]:8888&amp;#34;)
bind(fd8,  &amp;#34;[fd00::8]:8888&amp;#34;)
bind(fd9,  &amp;#34;[fd00::9]:8888&amp;#34;)
bind(fd10, &amp;#34;[fd00::10]:8888&amp;#34;)&lt;/p&gt;
&lt;p&gt;/* Correctly return -EADDRINUSE because &amp;#34;hash&amp;#34; is used
 * instead of &amp;#34;hash2&amp;#34;. udp_lib_lport_inuse() detects the
 * conflict.
 */
bind(fail_fd, &amp;#34;[::]:8888&amp;#34;)&lt;/p&gt;
&lt;p&gt;/* After one more socket is bound to &amp;#34;[fd00::11]:8888&amp;#34;,
 * hslot-&amp;gt;count exceeds 10 and &amp;#34;hash2&amp;#34; is used instead.
 */
bind(fd11, &amp;#34;[fd00::11]:8888&amp;#34;)
bind(fail_fd, &amp;#34;[::]:8888&amp;#34;)      /* succeeds unexpectedly */&lt;/p&gt;
&lt;p&gt;The same issue applies to the IPv4 wildcard address &amp;#34;0.0.0.0&amp;#34;
and the IPv4-mapped wildcard address &amp;#34;::ffff:0.0.0.0&amp;#34;. For
example, if there are existing sockets bound to
&amp;#34;192.168.1.[1-11]:8888&amp;#34;, then binding &amp;#34;0.0.0.0:8888&amp;#34; or
&amp;#34;[::ffff:0.0.0.0]:8888&amp;#34; can also miss the conflict when
hslot-&amp;gt;count &amp;gt; 10.&lt;/p&gt;
&lt;p&gt;TCP inet_csk_get_port() already has the correct check in
inet_u…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-31503</guid>
    </item>
  </channel>
</rss>
