<?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>Thu, 08 Oct 2026 09:10:11 +0000</lastBuildDate>
    <item>
      <title>GHSA-rq77-p4h8-4crw — gorilla/csrf CSRF vulnerability due to broken Referer validation</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-rq77-p4h8-4crw</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/gorilla/csrf&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;gorilla/csrf is vulnerable to CSRF via form submission from origins that share a top level domain with the target origin.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;gorilla/csrf does not validate the Origin header against an allowlist. Its executes its validation of the Referer header for cross-origin requests only when it believes the request is being served over TLS. It determines this by inspecting the `r.URL.Scheme` value. However, this value is never populated for &amp;#34;server&amp;#34; requests [per the Go spec](https://pkg.go.dev/net/http#Request), and so this check does not run in practice. 
```
	// URL specifies either the URI being requested (for server
	// requests) or the URL to access (for client requests).
	//
	// For server requests, the URL is parsed from the URI
	// supplied on the Request-Line as stored in RequestURI.  For
	// most requests, fields other than Path and RawQuery will be
	// empty. (See [RFC 7230, Section 5.3](https://rfc-editor.org/rfc/rfc7230.html#section-5.3))
	//
	// For client requests, the URL&amp;#39;s Host specifies the server to
	// connect to, while the Request&amp;#39;s Host field optionally
	// specifies the Host header value to send in the HTTP
	// request.
	URL *[url](https://pkg.go.dev/net/url).[URL](https://pkg.go.dev/net/url#URL)
```&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;- create trusted origin `target.example.test` protected with gorilla/csrf and served over TLS hosting form on `/submit`
- create attacker origin `attack.example.test` served over TLS
- attacker exfiltrates token &amp;amp; cookie combination…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/gorilla/csrf&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;gorilla/csrf is vulnerable to CSRF via form submission from origins that share a top level domain with the target origin.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;gorilla/csrf does not validate the Origin header against an allowlist. Its executes its validation of the Referer header for cross-origin requests only when it believes the request is being served over TLS. It determines this by inspecting the `r.URL.Scheme` value. However, this value is never populated for &amp;#34;server&amp;#34; requests [per the Go spec](https://pkg.go.dev/net/http#Request), and so this check does not run in practice. 
```
	// URL specifies either the URI being requested (for server
	// requests) or the URL to access (for client requests).
	//
	// For server requests, the URL is parsed from the URI
	// supplied on the Request-Line as stored in RequestURI.  For
	// most requests, fields other than Path and RawQuery will be
	// empty. (See [RFC 7230, Section 5.3](https://rfc-editor.org/rfc/rfc7230.html#section-5.3))
	//
	// For client requests, the URL&amp;#39;s Host specifies the server to
	// connect to, while the Request&amp;#39;s Host field optionally
	// specifies the Host header value to send in the HTTP
	// request.
	URL *[url](https://pkg.go.dev/net/url).[URL](https://pkg.go.dev/net/url#URL)
```&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;- create trusted origin `target.example.test` protected with gorilla/csrf and served over TLS hosting form on `/submit`
- create attacker origin `attack.example.test` served over TLS
- attacker exfiltrates token &amp;amp; cookie combination…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-rq77-p4h8-4crw</guid>
    </item>
  </channel>
</rss>
