Cloudanix VulnDB

CVE-2025-47909

High · 7.3

CVSS

7.3

EPSS

0.2%

Published

Aug 29, 2025

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A configuration setting meant to allow trusted websites accidentally lets attackers on the same network trick users into performing actions they did not intend.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Data Tampering
Component
Library
Class
CSRF
Remediation
Upgrade
Effort
Low
Patch risk
Low

What it actually does

TrustedOrigins configuration implicitly trusts both HTTP and HTTPS origins for a given host, bypassing Origin header same-origin checks and enabling network attackers to submit cross-origin forms from the HTTP variant of a trusted host.

Why it matters to the business

Attackers on the local network can trigger unauthorized state-changing actions on behalf of authenticated users, potentially leading to data exposure, account manipulation, or other application-specific impacts until the configuration is corrected.

How an attack unfolds

A network-positioned attacker observes an application that lists a host in TrustedOrigins, registers the matching HTTP origin, serves a malicious form from that HTTP origin, and causes a victim browser to submit it to the HTTPS application endpoint, defeating the post-CVE-2025-24358 synthetic-URL check because only the host component is validated.

How to fix it

Migrate applications to net/http.CrossOriginProtection introduced in Go 1.25. When that is unavailable, adopt the backported module at filippo.io/csrf or the gorilla/csrf drop-in replacement at filippo.io/csrf/gorilla. Audit all TrustedOrigins lists and remove entries that are no longer required.

How to confirm the fix worked

Review source code and configuration for use of TrustedOrigins, confirm that only scheme-aware cross-origin protection is active, and test that HTTP origins of listed hosts are rejected while HTTPS origins continue to function as intended.

Typical attack path

  1. Identify an application that configures TrustedOrigins with a host name
  2. Position as a network MitM or compromised HTTP site for that host
  3. Craft and host a form targeting the HTTPS application endpoint
  4. Induce an authenticated victim to load and submit the form
  5. Bypass Origin validation and perform the CSRF action

How to detect it

Search application and web-server logs for POST or state-changing requests whose Origin header contains an HTTP scheme for a host listed in TrustedOrigins; correlate with authentication events and look for form submissions lacking expected Referer or Origin values.

What your security team should do

  • Prioritize migration to net/http.CrossOriginProtection or the filippo.io/csrf module within the next sprint
  • Scan codebases for TrustedOrigins usage and document required hosts
  • Add static-analysis rules to flag continued use of the vulnerable pattern
  • Monitor EPSS and KEV updates given the 424 days since publication

The record

Hosts listed in TrustedOrigins implicitly allow requests from the corresponding HTTP origins, allowing network MitMs to perform CSRF attacks. After the CVE-2025-24358 fix, a network attacker that places a form at http://example.com can't get it to submit to https://example.com because the Origin header is checked with sameOrigin against a synthetic URL. However, if a host is added to TrustedOrigins, both its HTTP and HTTPS origins will be allowed, because the schema of the synthetic URL is ignored and only the host is checked. For example, if an application is hosted on https://example.com and adds example.net to TrustedOrigins, a network attacker can serve a form at http://example.net to perform the attack. Applications should migrate to net/http.CrossOriginProtection, introduced in Go 1.25. If that is not an option, a backport is available as a module at filippo.io/csrf, and a drop-in replacement for the github.com/gorilla/csrf API is available at filippo.io/csrf/gorilla.

Affected packages

Ecosystem Package Introduced Fixed
Go github.com/gorilla/csrf 0 No fix
Go github.com/gorilla/csrf 1.7.3 No fix
Chainguard harbor-2.10 0 0
Chainguard harbor-2.10-exporter 0 0
Chainguard harbor-2.10-jobservice 0 0
Chainguard harbor-2.10-portal 0 0
Chainguard harbor-2.10-portal-nginx-config 0 0
Chainguard harbor-2.10-redis-compat 0 0
Chainguard harbor-2.10-registryctl 0 0
Chainguard harbor-2.11 0 0
Chainguard harbor-2.11-exporter 0 0
Chainguard harbor-2.11-jobservice 0 0
Chainguard harbor-2.11-photon-registry 0 0
Chainguard harbor-2.11-portal 0 0
Chainguard harbor-2.11-portal-nginx-config 0 0
Chainguard harbor-2.11-redis-compat 0 0
Chainguard harbor-2.11-registryctl 0 0
Chainguard harbor-2.12 0 0
Chainguard harbor-2.12-exporter 0 0
Chainguard harbor-2.12-jobservice 0 0
Chainguard harbor-2.12-photon-registry 0 0
Chainguard harbor-2.12-portal 0 0
Chainguard harbor-2.12-portal-nginx-config 0 0
Chainguard harbor-2.12-redis-compat 0 0
Chainguard harbor-2.12-registryctl 0 0
Chainguard harbor-2.13 0 0
Chainguard harbor-2.13-exporter 0 0
Chainguard harbor-2.13-jobservice 0 0
Chainguard harbor-2.13-photon-registry 0 0
Chainguard harbor-2.13-portal 0 0
Chainguard harbor-2.13-portal-nginx-config 0 0
Chainguard harbor-2.13-redis-compat 0 0
Chainguard harbor-2.13-registryctl 0 0
Chainguard harbor-2.14 0 0
Chainguard harbor-2.14-exporter 0 0
Chainguard harbor-2.14-jobservice 0 0
Chainguard harbor-2.14-photon-registry 0 0
Chainguard harbor-2.14-portal 0 0
Chainguard harbor-2.14-portal-nginx-config 0 0
Chainguard harbor-2.14-redis-compat 0 0
Chainguard harbor-2.14-registryctl 0 0
Chainguard harbor-fips-2.10 0 0
Chainguard harbor-fips-2.10-db 0 0
Chainguard harbor-fips-2.10-exporter 0 0
Chainguard harbor-fips-2.10-jobservice 0 0
Chainguard harbor-fips-2.10-portal 0 0
Chainguard harbor-fips-2.10-redis-compat 0 0
Chainguard harbor-fips-2.10-registryctl 0 0
Chainguard harbor-fips-2.11 0 0
Chainguard harbor-fips-2.11-db 0 0
Chainguard harbor-fips-2.11-exporter 0 0
Chainguard harbor-fips-2.11-jobservice 0 0
Chainguard harbor-fips-2.11-photon-registry 0 0
Chainguard harbor-fips-2.11-portal 0 0
Chainguard harbor-fips-2.11-redis-compat 0 0
Chainguard harbor-fips-2.11-registryctl 0 0
Chainguard harbor-fips-2.12 0 0
Chainguard harbor-fips-2.12-db 0 0
Chainguard harbor-fips-2.12-exporter 0 0
Chainguard harbor-fips-2.12-jobservice 0 0
Chainguard harbor-fips-2.12-photon-registry 0 0
Chainguard harbor-fips-2.12-portal 0 0
Chainguard harbor-fips-2.12-redis-compat 0 0
Chainguard harbor-fips-2.12-registryctl 0 0
Chainguard harbor-fips-2.13 0 0
Chainguard harbor-fips-2.13-db 0 0
Chainguard harbor-fips-2.13-exporter 0 0
Chainguard harbor-fips-2.13-jobservice 0 0
Chainguard harbor-fips-2.13-photon-registry 0 0
Chainguard harbor-fips-2.13-portal 0 0
Chainguard harbor-fips-2.13-redis-compat 0 0
Chainguard harbor-fips-2.13-registryctl 0 0
Chainguard harbor-fips-2.14 0 0
Chainguard harbor-fips-2.14-db 0 0
Chainguard harbor-fips-2.14-exporter 0 0
Chainguard harbor-fips-2.14-jobservice 0 0
Chainguard harbor-fips-2.14-photon-registry 0 0
Chainguard harbor-fips-2.14-portal 0 0
Chainguard harbor-fips-2.14-redis-compat 0 0
Chainguard harbor-fips-2.14-registryctl 0 0
Chainguard zitadel-3 0 0
Chainguard zitadel-3-compat 0 0
Chainguard zitadel-4 0 0
Chainguard zitadel-4-compat 0 0
Debian:11 golang-github-gorilla-csrf 0 No fix
Debian:12 golang-github-gorilla-csrf 0 No fix
Debian:13 golang-github-gorilla-csrf 0 No fix
Debian:14 golang-github-gorilla-csrf 0 No fix
Wolfi harbor-2.10 0 0
Wolfi harbor-2.10-jobservice 0 0
Wolfi harbor-2.10-portal 0 0
Wolfi harbor-2.10-portal-nginx-config 0 0
Wolfi harbor-2.10-registryctl 0 0
Wolfi harbor-2.11 0 0
Wolfi harbor-2.11-jobservice 0 0
Wolfi harbor-2.11-portal 0 0
Wolfi harbor-2.11-portal-nginx-config 0 0
Wolfi harbor-2.11-registryctl 0 0
Wolfi harbor-2.12 0 0
Wolfi harbor-2.12-jobservice 0 0
Wolfi harbor-2.12-portal 0 0
Wolfi harbor-2.12-portal-nginx-config 0 0
Wolfi harbor-2.12-registryctl 0 0
Wolfi harbor-2.13 0 0
Wolfi harbor-2.13-exporter 0 0
Wolfi harbor-2.13-jobservice 0 0
Wolfi harbor-2.13-portal 0 0
Wolfi harbor-2.13-portal-nginx-config 0 0
Wolfi harbor-2.13-redis-compat 0 0
Wolfi harbor-2.13-registryctl 0 0
Wolfi harbor-2.14 0 0
Wolfi harbor-2.14-exporter 0 0
Wolfi harbor-2.14-jobservice 0 0
Wolfi harbor-2.14-photon-registry 0 0
Wolfi harbor-2.14-portal 0 0
Wolfi harbor-2.14-portal-nginx-config 0 0
Wolfi harbor-2.14-redis-compat 0 0
Wolfi harbor-2.14-registryctl 0 0

Related vulnerabilities