GitHub Advisoryadvisory · Go

GHSA-w9hf-35q4-vcjw nosurf vulnerable to CSRF due to non-functional same-origin request checks

MEDIUM Published 2025-05-14 Modified 2025-05-14 Official page ↗
Aliases
CVE-2025-46721
Ecosystem
Go
Packages
github.com/justinas/nosurf
Severity
Moderate
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Weaknesses
CWE-352
Reviewed
2025-05-14

Affected packages

• Go github.com/justinas/nosurf: < 1.2.0 → fixed in 1.2.0

Description

Impact This vulnerability allows an attacker who controls content on the target site, or on a subdomain of the target site (either via XSS, or otherwise) to bypass Cross-Site Request Forgery checks and issue requests on user's behalf. Details Due to misuse of the Go `net/http` library, nosurf categorizes all incoming requests as plain-text HTTP requests, in which case the `Referer` header is not checked to have the same origin as the target webpage. If the attacker has control over HTML contents on either the target website (e.g. `example.com`), or on a website hosted on a subdomain of the target (e.g. `attacker.example.com`), they will also be able to manipulate cookies set for the target website. By acquiring the secret CSRF token from the cookie, or overriding the cookie with a new token known to the attacker, `attacker.example.com` is able to craft cross-site requests to `example.com`. Patches A patch for the issue was released in nosurf 1.2.0. Workarounds In lieu of upgrading to a patched version of nosurf, users may additionally use another HTTP middleware to ensure that a non-safe HTTP request is coming from the same origin (e.g. by requiring a `Sec-Fetch-Site: same-origin` header in the request). References https://github.com/advisories/GHSA-rq77-p4h8-4crw https://github.com/justinas/nosurf-cve-2025-46721 https://www.cve.org/CVERecord?id=CVE-2025-46721 https://github.com/justinas/nosurf/releases/tag/v1.2.0

Related

Alias · CVE (1)

  • CVE-2025-46721 nosurf is cross-site request forgery (CSRF) protection middleware for Go. vulnerability

Weakness · CWE (1)

  • CWE-352 Cross-Site Request Forgery weakness

References