<?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>Wed, 30 Sep 2026 17:54:51 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-102714</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-102714</link>
      <description>&lt;p&gt;`_nx_icmpv6_validate_options()` scans the option area with `while (length &amp;gt; 2)` (`common/src/nx_icmpv6_validate_options.c:79`). An area whose size leaves a one- or two-byte residue exits the loop with that tail unexamined; the residue is not negative, so the function returns `NX_SUCCESS`. Its zero-length rejection never sees those bytes.&lt;/p&gt;
&lt;p&gt;Every consumer then re-walks the same area, reading a two-byte option header at the residue and subtracting `nx_icmpv6_option_length &amp;lt;&amp;lt; 3` with no zero check and no remaining-length check. Three outcomes follow, selected by bytes the attacker controls.&lt;/p&gt;
&lt;p&gt;**Zero length byte.** The walker subtracts zero and advances zero. All four handlers loop forever — `_nx_icmpv6_process_ra` (`nx_icmpv6_process_ra.c:245, :528`), `_nx_icmpv6_process_ns` (`:251, :329`), `_nx_icmpv6_process_na` (`:147, :156`) and `_nx_icmpv6_process_redirect` (`:247, :350`). The walk runs in the IP thread, which is the highest-priority thread and does not yield inside the loop, so the system stops until a watchdog reset and the frame can be replayed after each one.&lt;/p&gt;
&lt;p&gt;**Non-zero length byte on a short residue.** The three unsigned counters underflow — `2 - 8` becomes `0xFFFFFFFA` — and the walk continues past the packet buffer, reading until it faults or meets a zero length byte and freezes. The Router Advertisement counter is signed and exits cleanly in this case.&lt;/p&gt;
&lt;p&gt;**One-byte residue.** The walker reads a two-byte option header, over-reading one byte.&lt;/p&gt;
&lt;p&gt;During a runawa…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;`_nx_icmpv6_validate_options()` scans the option area with `while (length &amp;gt; 2)` (`common/src/nx_icmpv6_validate_options.c:79`). An area whose size leaves a one- or two-byte residue exits the loop with that tail unexamined; the residue is not negative, so the function returns `NX_SUCCESS`. Its zero-length rejection never sees those bytes.&lt;/p&gt;
&lt;p&gt;Every consumer then re-walks the same area, reading a two-byte option header at the residue and subtracting `nx_icmpv6_option_length &amp;lt;&amp;lt; 3` with no zero check and no remaining-length check. Three outcomes follow, selected by bytes the attacker controls.&lt;/p&gt;
&lt;p&gt;**Zero length byte.** The walker subtracts zero and advances zero. All four handlers loop forever — `_nx_icmpv6_process_ra` (`nx_icmpv6_process_ra.c:245, :528`), `_nx_icmpv6_process_ns` (`:251, :329`), `_nx_icmpv6_process_na` (`:147, :156`) and `_nx_icmpv6_process_redirect` (`:247, :350`). The walk runs in the IP thread, which is the highest-priority thread and does not yield inside the loop, so the system stops until a watchdog reset and the frame can be replayed after each one.&lt;/p&gt;
&lt;p&gt;**Non-zero length byte on a short residue.** The three unsigned counters underflow — `2 - 8` becomes `0xFFFFFFFA` — and the walk continues past the packet buffer, reading until it faults or meets a zero length byte and freezes. The Router Advertisement counter is signed and exits cleanly in this case.&lt;/p&gt;
&lt;p&gt;**One-byte residue.** The walker reads a two-byte option header, over-reading one byte.&lt;/p&gt;
&lt;p&gt;During a runawa…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-102714</guid>
    </item>
    <item>
      <title>GHSA-jj75-gvv3-wr54</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-jj75-gvv3-wr54</link>
      <description>&lt;p&gt;`_nx_icmpv6_validate_options()` scans the option area with `while (length &amp;gt; 2)` (`common/src/nx_icmpv6_validate_options.c:79`). An area whose size leaves a one- or two-byte residue exits the loop with that tail unexamined; the residue is not negative, so the function returns `NX_SUCCESS`. Its zero-length rejection never sees those bytes.&lt;/p&gt;
&lt;p&gt;Every consumer then re-walks the same area, reading a two-byte option header at the residue and subtracting `nx_icmpv6_option_length &amp;lt;&amp;lt; 3` with no zero check and no remaining-length check. Three outcomes follow, selected by bytes the attacker controls.&lt;/p&gt;
&lt;p&gt;**Zero length byte.** The walker subtracts zero and advances zero. All four handlers loop forever — `_nx_icmpv6_process_ra` (`nx_icmpv6_process_ra.c:245, :528`), `_nx_icmpv6_process_ns` (`:251, :329`), `_nx_icmpv6_process_na` (`:147, :156`) and `_nx_icmpv6_process_redirect` (`:247, :350`). The walk runs in the IP thread, which is the highest-priority thread and does not yield inside the loop, so the system stops until a watchdog reset and the frame can be replayed after each one.&lt;/p&gt;
&lt;p&gt;**Non-zero length byte on a short residue.** The three unsigned counters underflow — `2 - 8` becomes `0xFFFFFFFA` — and the walk continues past the packet buffer, reading until it faults or meets a zero length byte and freezes. The Router Advertisement counter is signed and exits cleanly in this case.&lt;/p&gt;
&lt;p&gt;**One-byte residue.** The walker reads a two-byte option header, over-reading one byte.&lt;/p&gt;
&lt;p&gt;During a runawa…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;`_nx_icmpv6_validate_options()` scans the option area with `while (length &amp;gt; 2)` (`common/src/nx_icmpv6_validate_options.c:79`). An area whose size leaves a one- or two-byte residue exits the loop with that tail unexamined; the residue is not negative, so the function returns `NX_SUCCESS`. Its zero-length rejection never sees those bytes.&lt;/p&gt;
&lt;p&gt;Every consumer then re-walks the same area, reading a two-byte option header at the residue and subtracting `nx_icmpv6_option_length &amp;lt;&amp;lt; 3` with no zero check and no remaining-length check. Three outcomes follow, selected by bytes the attacker controls.&lt;/p&gt;
&lt;p&gt;**Zero length byte.** The walker subtracts zero and advances zero. All four handlers loop forever — `_nx_icmpv6_process_ra` (`nx_icmpv6_process_ra.c:245, :528`), `_nx_icmpv6_process_ns` (`:251, :329`), `_nx_icmpv6_process_na` (`:147, :156`) and `_nx_icmpv6_process_redirect` (`:247, :350`). The walk runs in the IP thread, which is the highest-priority thread and does not yield inside the loop, so the system stops until a watchdog reset and the frame can be replayed after each one.&lt;/p&gt;
&lt;p&gt;**Non-zero length byte on a short residue.** The three unsigned counters underflow — `2 - 8` becomes `0xFFFFFFFA` — and the walk continues past the packet buffer, reading until it faults or meets a zero length byte and freezes. The Router Advertisement counter is signed and exits cleanly in this case.&lt;/p&gt;
&lt;p&gt;**One-byte residue.** The walker reads a two-byte option header, over-reading one byte.&lt;/p&gt;
&lt;p&gt;During a runawa…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-jj75-gvv3-wr54</guid>
    </item>
  </channel>
</rss>
