<?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 11:42:57 +0000</lastBuildDate>
    <item>
      <title>GHSA-xpcf-pg52-r92g — Hono has incorrect IP matching in ipRestriction() for IPv4-mapped IPv6 addresses</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-xpcf-pg52-r92g</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: hono&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`ipRestriction()` does not canonicalize IPv4-mapped IPv6 client addresses (e.g. `::ffff:127.0.0.1`) before applying IPv4 allow or deny rules. In environments such as Node.js dual-stack, this can cause IPv4 rules to fail to match, leading to unintended authorization behavior.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;The middleware classifies client addresses based on their textual form. Addresses containing &amp;#34;`:`&amp;#34; are treated as IPv6, including IPv4-mapped IPv6 addresses such as `::ffff:127.0.0.1`. These addresses are not normalized to IPv4 before matching.&lt;/p&gt;
&lt;p&gt;As a result:&lt;/p&gt;
&lt;p&gt;* IPv4 static rules (e.g. `127.0.0.1`) do not match because the raw string differs
* IPv4 CIDR rules (e.g. `127.0.0.0/8`, `10.0.0.0/8`) are skipped because the address is treated as IPv6&lt;/p&gt;
&lt;p&gt;For example, with:&lt;/p&gt;
&lt;p&gt;`denyList: [&amp;#39;127.0.0.1&amp;#39;]`&lt;/p&gt;
&lt;p&gt;a request from `127.0.0.1` may be represented as `::ffff:127.0.0.1` and bypass the deny rule.&lt;/p&gt;
&lt;p&gt;This behavior commonly occurs in Node.js environments where IPv4 clients are exposed as IPv4-mapped IPv6 addresses.&lt;/p&gt;
&lt;p&gt;## Impact&lt;/p&gt;
&lt;p&gt;Applications that rely on IPv4-based `ipRestriction()` rules may incorrectly allow or deny requests.&lt;/p&gt;
&lt;p&gt;In affected deployments, a denied IPv4 client may bypass access restrictions. Conversely, legitimate clients may be rejected when using IPv4 allow lists.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: hono&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`ipRestriction()` does not canonicalize IPv4-mapped IPv6 client addresses (e.g. `::ffff:127.0.0.1`) before applying IPv4 allow or deny rules. In environments such as Node.js dual-stack, this can cause IPv4 rules to fail to match, leading to unintended authorization behavior.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;The middleware classifies client addresses based on their textual form. Addresses containing &amp;#34;`:`&amp;#34; are treated as IPv6, including IPv4-mapped IPv6 addresses such as `::ffff:127.0.0.1`. These addresses are not normalized to IPv4 before matching.&lt;/p&gt;
&lt;p&gt;As a result:&lt;/p&gt;
&lt;p&gt;* IPv4 static rules (e.g. `127.0.0.1`) do not match because the raw string differs
* IPv4 CIDR rules (e.g. `127.0.0.0/8`, `10.0.0.0/8`) are skipped because the address is treated as IPv6&lt;/p&gt;
&lt;p&gt;For example, with:&lt;/p&gt;
&lt;p&gt;`denyList: [&amp;#39;127.0.0.1&amp;#39;]`&lt;/p&gt;
&lt;p&gt;a request from `127.0.0.1` may be represented as `::ffff:127.0.0.1` and bypass the deny rule.&lt;/p&gt;
&lt;p&gt;This behavior commonly occurs in Node.js environments where IPv4 clients are exposed as IPv4-mapped IPv6 addresses.&lt;/p&gt;
&lt;p&gt;## Impact&lt;/p&gt;
&lt;p&gt;Applications that rely on IPv4-based `ipRestriction()` rules may incorrectly allow or deny requests.&lt;/p&gt;
&lt;p&gt;In affected deployments, a denied IPv4 client may bypass access restrictions. Conversely, legitimate clients may be rejected when using IPv4 allow lists.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-xpcf-pg52-r92g</guid>
    </item>
  </channel>
</rss>
