<?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 06:19:34 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-24122 — Cosign Certificate Chain Expiry Validation Issue Allows Issuing Certificate Expiry to Be Overlooked</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-24122</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; sigstore cosign&lt;/p&gt;
&lt;p&gt;Cosign provides code signing and transparency for containers and binaries. In versions 3.0.4 and below, an issuing certificate with a validity that expires before the leaf certificate will be considered valid during verification even if the provided timestamp would mean the issuing certificate should be considered expired. When verifying artifact signatures using a certificate, Cosign first verifies the certificate chain using the leaf certificate&amp;#39;s &amp;#34;not before&amp;#34; timestamp and later checks expiry of the leaf certificate using either a signed timestamp provided by the Rekor transparency log or from a timestamp authority, or using the current time. The root and all issuing certificates are assumed to be valid during the leaf certificate&amp;#39;s validity. There is no impact to users of the public Sigstore infrastructure. This may affect private deployments with customized PKIs. This issue has been fixed in version 3.0.5.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; sigstore cosign&lt;/p&gt;
&lt;p&gt;Cosign provides code signing and transparency for containers and binaries. In versions 3.0.4 and below, an issuing certificate with a validity that expires before the leaf certificate will be considered valid during verification even if the provided timestamp would mean the issuing certificate should be considered expired. When verifying artifact signatures using a certificate, Cosign first verifies the certificate chain using the leaf certificate&amp;#39;s &amp;#34;not before&amp;#34; timestamp and later checks expiry of the leaf certificate using either a signed timestamp provided by the Rekor transparency log or from a timestamp authority, or using the current time. The root and all issuing certificates are assumed to be valid during the leaf certificate&amp;#39;s validity. There is no impact to users of the public Sigstore infrastructure. This may affect private deployments with customized PKIs. This issue has been fixed in version 3.0.5.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-24122</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>
