<?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>Tue, 29 Sep 2026 14:18:53 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-101913</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-101913</link>
      <description>&lt;p&gt;ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Prior to 10.5.1, the Address6 isLinkLocal method in src/ipv6.ts recognizes only fe80::/64 instead of the complete fe80::/10 IPv6 link-local range. An attacker-controlled address elsewhere in fe80::/10 can therefore pass a trust-boundary check that relies on isLinkLocal. The same address is identified as link-local by getType and getScope, exposing the inconsistent classification. A successful bypass can reach an on-link host outside the intended trust boundary. This issue is fixed in version 10.5.1.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Prior to 10.5.1, the Address6 isLinkLocal method in src/ipv6.ts recognizes only fe80::/64 instead of the complete fe80::/10 IPv6 link-local range. An attacker-controlled address elsewhere in fe80::/10 can therefore pass a trust-boundary check that relies on isLinkLocal. The same address is identified as link-local by getType and getScope, exposing the inconsistent classification. A successful bypass can reach an on-link host outside the intended trust boundary. This issue is fixed in version 10.5.1.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-101913</guid>
    </item>
    <item>
      <title>GHSA-rpw4-54j3-4h4q — ip-address: Address6.isLinkLocal() recognizes fe80::/64 rather than fe80::/10, allowing SSRF and trust-boundary bypass…</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-rpw4-54j3-4h4q</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: ip-address&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`Address6.isLinkLocal()` recognizes `fe80::/64` rather than `fe80::/10`. Link-local unicast is the whole `/10` under RFC 4291 §2.4 and the IANA IPv6 Special-Purpose Address Registry, so the method returns `false` for every link-local address outside the one `/64` that stateless address autoconfiguration happens to use. `new Address6(&amp;#39;fe81::1&amp;#39;).isLinkLocal()` is `false`.&lt;/p&gt;
&lt;p&gt;The library contradicts itself on the same object: for `fe81::1`, `getType()` returns `&amp;#39;Link-local unicast&amp;#39;`, `getScope()` returns `&amp;#39;Link local&amp;#39;`, and `isHostInSubnet(new Address6(&amp;#39;fe80::/10&amp;#39;))` returns `true`, while `isLinkLocal()` returns `false`.&lt;/p&gt;
&lt;p&gt;An application that builds a network trust-boundary decision on these checks (for example a filter intended to block Server-Side Request Forgery, or SSRF) will classify a link-local target as unremarkable and allow the request. SSRF is an attack in which a user-supplied address coaxes the server into making a request to an internal destination the user could not otherwise reach.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;`isLinkLocal()` in `src/ipv6.ts` compares the first 64 bits of the address against a literal string:&lt;/p&gt;
&lt;p&gt;```ts
// Zeroes are required, i.e. we can&amp;#39;t check isHostInSubnet with &amp;#39;fe80::/10&amp;#39;
if (
  this.getBitsBase2(0, 64) ===
  &amp;#39;1111111010000000000000000000000000000000000000000000000000000000&amp;#39;
) {
  return true;
}
```&lt;/p&gt;
&lt;p&gt;The comparison requires the first 64 bits to be exactly `fe80:0000:0000:0000`, so it accepts 2⁶⁴ of the 2¹¹⁸ addresses in `fe80::/10`. The comment sta…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: ip-address&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`Address6.isLinkLocal()` recognizes `fe80::/64` rather than `fe80::/10`. Link-local unicast is the whole `/10` under RFC 4291 §2.4 and the IANA IPv6 Special-Purpose Address Registry, so the method returns `false` for every link-local address outside the one `/64` that stateless address autoconfiguration happens to use. `new Address6(&amp;#39;fe81::1&amp;#39;).isLinkLocal()` is `false`.&lt;/p&gt;
&lt;p&gt;The library contradicts itself on the same object: for `fe81::1`, `getType()` returns `&amp;#39;Link-local unicast&amp;#39;`, `getScope()` returns `&amp;#39;Link local&amp;#39;`, and `isHostInSubnet(new Address6(&amp;#39;fe80::/10&amp;#39;))` returns `true`, while `isLinkLocal()` returns `false`.&lt;/p&gt;
&lt;p&gt;An application that builds a network trust-boundary decision on these checks (for example a filter intended to block Server-Side Request Forgery, or SSRF) will classify a link-local target as unremarkable and allow the request. SSRF is an attack in which a user-supplied address coaxes the server into making a request to an internal destination the user could not otherwise reach.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;`isLinkLocal()` in `src/ipv6.ts` compares the first 64 bits of the address against a literal string:&lt;/p&gt;
&lt;p&gt;```ts
// Zeroes are required, i.e. we can&amp;#39;t check isHostInSubnet with &amp;#39;fe80::/10&amp;#39;
if (
  this.getBitsBase2(0, 64) ===
  &amp;#39;1111111010000000000000000000000000000000000000000000000000000000&amp;#39;
) {
  return true;
}
```&lt;/p&gt;
&lt;p&gt;The comparison requires the first 64 bits to be exactly `fe80:0000:0000:0000`, so it accepts 2⁶⁴ of the 2¹¹⁸ addresses in `fe80::/10`. The comment sta…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-rpw4-54j3-4h4q</guid>
    </item>
  </channel>
</rss>
