<?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>Mon, 28 Sep 2026 18:37:03 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-25680 — Invoking denial of service when parsing arbitrary HTML in golang.org/x/net/html</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-25680</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; golang.org/x/net/html&lt;/p&gt;
&lt;p&gt;Parsing arbitrary HTML can consume excessive CPU time, possibly leading to denial of service.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; golang.org/x/net/html&lt;/p&gt;
&lt;p&gt;Parsing arbitrary HTML can consume excessive CPU time, possibly leading to denial of service.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-25680</guid>
    </item>
    <item>
      <title>GHSA-3fxj-6jh8-hvhx — chi Has an IP Spoofing Vulnerability in `middleware.RealIP`</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-3fxj-6jh8-hvhx</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/go-chi/chi/v5/middleware&lt;/p&gt;
&lt;p&gt;## Summary
The `RealIP` middleware in `go-chi/chi` is vulnerable to IP spoofing because it blindly trusts the first (leftmost) element of the `X-Forwarded-For` HTTP header. This allows a remote attacker to bypass IP-based access control lists (ACLs) and rate-limiting mechanisms by providing a spoofed IP address in the header.&lt;/p&gt;
&lt;p&gt;## Details
In `middleware/realip.go`, the `realIP` function parses the `X-Forwarded-For` header and extracts the first comma-separated value:&lt;/p&gt;
&lt;p&gt;```go
func realIP(r *http.Request) string {
    // ...
    } else if xff := r.Header.Get(xForwardedFor); xff != &amp;#34;&amp;#34; {
        ip, _, _ = strings.Cut(xff, &amp;#34;,&amp;#34;)
    }
    // ...
}
```&lt;/p&gt;
&lt;p&gt;Standard practice for `X-Forwarded-For` is that each proxy appends the client&amp;#39;s IP to the end of the list. However, since the client can also provide this header, the leftmost values are untrusted. A client can send a header like `X-Forwarded-For: &amp;lt;spoofed_ip&amp;gt;, &amp;lt;actual_proxy_ip&amp;gt;`, and `go-chi/chi` will treat `&amp;lt;spoofed_ip&amp;gt;` as the source of the request.&lt;/p&gt;
&lt;p&gt;## Proof of Concept (PoC)
The following code demonstrates how an attacker can bypass an IP-based restriction.&lt;/p&gt;
&lt;p&gt;```go
package main&lt;/p&gt;
&lt;p&gt;import (
        &amp;#34;fmt&amp;#34;
        &amp;#34;net/http&amp;#34;
        &amp;#34;net/http/httptest&amp;#34;&lt;/p&gt;
&lt;p&gt;&amp;#34;github.com/go-chi/chi/v5&amp;#34;
        &amp;#34;github.com/go-chi/chi/v5/middleware&amp;#34;
)&lt;/p&gt;
&lt;p&gt;func main() {
        r := chi.NewRouter()&lt;/p&gt;
&lt;p&gt;// Enable the vulnerable RealIP middleware
        r.Use(middleware.RealIP)&lt;/p&gt;
&lt;p&gt;// An endpoint that should be restricted to a specific administrat…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/go-chi/chi/v5/middleware&lt;/p&gt;
&lt;p&gt;## Summary
The `RealIP` middleware in `go-chi/chi` is vulnerable to IP spoofing because it blindly trusts the first (leftmost) element of the `X-Forwarded-For` HTTP header. This allows a remote attacker to bypass IP-based access control lists (ACLs) and rate-limiting mechanisms by providing a spoofed IP address in the header.&lt;/p&gt;
&lt;p&gt;## Details
In `middleware/realip.go`, the `realIP` function parses the `X-Forwarded-For` header and extracts the first comma-separated value:&lt;/p&gt;
&lt;p&gt;```go
func realIP(r *http.Request) string {
    // ...
    } else if xff := r.Header.Get(xForwardedFor); xff != &amp;#34;&amp;#34; {
        ip, _, _ = strings.Cut(xff, &amp;#34;,&amp;#34;)
    }
    // ...
}
```&lt;/p&gt;
&lt;p&gt;Standard practice for `X-Forwarded-For` is that each proxy appends the client&amp;#39;s IP to the end of the list. However, since the client can also provide this header, the leftmost values are untrusted. A client can send a header like `X-Forwarded-For: &amp;lt;spoofed_ip&amp;gt;, &amp;lt;actual_proxy_ip&amp;gt;`, and `go-chi/chi` will treat `&amp;lt;spoofed_ip&amp;gt;` as the source of the request.&lt;/p&gt;
&lt;p&gt;## Proof of Concept (PoC)
The following code demonstrates how an attacker can bypass an IP-based restriction.&lt;/p&gt;
&lt;p&gt;```go
package main&lt;/p&gt;
&lt;p&gt;import (
        &amp;#34;fmt&amp;#34;
        &amp;#34;net/http&amp;#34;
        &amp;#34;net/http/httptest&amp;#34;&lt;/p&gt;
&lt;p&gt;&amp;#34;github.com/go-chi/chi/v5&amp;#34;
        &amp;#34;github.com/go-chi/chi/v5/middleware&amp;#34;
)&lt;/p&gt;
&lt;p&gt;func main() {
        r := chi.NewRouter()&lt;/p&gt;
&lt;p&gt;// Enable the vulnerable RealIP middleware
        r.Use(middleware.RealIP)&lt;/p&gt;
&lt;p&gt;// An endpoint that should be restricted to a specific administrat…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-3fxj-6jh8-hvhx</guid>
    </item>
  </channel>
</rss>
