CVE-2025-46721
What it is
nosurf is cross-site request forgery (CSRF) protection middleware for Go. A vulnerability in versions prior to 1.2.0 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 CSRF checks and issue requests on user's behalf. 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`. A patch for the issue was released in nosurf 1.2.0. 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).
At a glance
- Exploitability
- Can be exploited over the network without logging in, but needs a user to act. High risk of data tampering.
- Exploit odds
- 0.2% chance of exploitation in the next 30 days (EPSS).
- Fix
- A patch, advisory or fixed version is referenced. Upgrade or apply it.
Timeline
- PublishedDisclosed publicly on CVE.org and NVD
- Last updatedMost recent change to the record
Why it ranks here
- Exploited in the wild: no, CISA does not list it.
- Exploit odds: 0.2% in the next 30 days (EPSS).
- Severity: 6.0 MEDIUM (CVSS).
- Fix: a patch or advisory is linked.
Details
- Published
- Last modified
- Exploit probability
- 0.2% · EPSS, next 30 days
- Weakness
- CWE-352 · Cross-site request forgery
- Record status
- Analyzed
Affected
- Nosurf Project Nosurf < 1.2.0
Attack profile CVSS 4.0 · 6.0
- Attack vector
- Network
- Complexity
- Low
- Attack requirements
- Present
- Privileges needed
- None
- User interaction
- Passive
- Confidentiality
- None
- Integrity
- High
- Availability
- None
Raw 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Is it in your code?
Hand this to your coding agent. It searches your project for the affected products and checks versions. Nothing leaves your machine.
Read https://cve-list.com/agent/cve/CVE-2025-46721.md and follow it. Check whether this project is affected by CVE-2025-46721. Read only. Don't change anything and don't upload my code. Tell me yes, no or not sure, with the file as proof.
Fix and advisories
- https://github.com/advisories/GHSA-rq77-p4h8-4crw
- https://github.com/justinas/nosurf/commit/ec9bb776d8e5ba9e906b6eb70428f4e7b009feee
- https://github.com/justinas/nosurf/releases/tag/v1.2.0
- https://github.com/justinas/nosurf/security/advisories/GHSA-w9hf-35q4-vcjw
- https://github.com/advisories/GHSA-rq77-p4h8-4crw
References
- https://github.com/advisories/GHSA-rq77-p4h8-4crw
- https://github.com/justinas/nosurf-cve-2025-46721
- https://github.com/justinas/nosurf/commit/ec9bb776d8e5ba9e906b6eb70428f4e7b009feee
- https://github.com/justinas/nosurf/releases/tag/v1.2.0
- https://github.com/justinas/nosurf/security/advisories/GHSA-w9hf-35q4-vcjw
- https://github.com/advisories/GHSA-rq77-p4h8-4crw