The CVSS 7.3 score for this SSRF in Forgejo's extension_proxy component likely understates the actual risk. The vulnerable function, sanitize_proxy_url, lives inside a routing component specifically designed to relay arbitrary HTTP traffic — this isn't a one-off URL fetch in a static asset handler, it's a proxy primitive that attackers can use as a bounce point for internal network reconnaissance, AWS metadata access (169.254.169.254), or firewall bypass.

The function naming itself is revealing. 'Sanitize' implies input cleaning (stripping dangerous schemes, rejecting file://), not destination validation (verifying the server should legitimately reach that target). This cognitive mismatch is common in Python's urllib ecosystem, where 'secure' parsing functions don't include network reachability checks — developers stop at 'is this a parseable URL?' rather than 'should this server actually connect here?'

If extension_proxy routes are accessible without session tokens or API keys — common in self-hosted deployments where admin panels share the same trust boundary as git operations — the attack surface shifts from 'sophisticated attacker chaining requests' to 'any authenticated user with repository access.' The non-responsive vendor means there's no official patch path: you must either remove the extension, fork-and-patch, or implement compensating controls.

Prioritize network-layer egress filtering: block traffic to 169.254.169.254 and RFC-1918 address space from all outbound connections originating from the git server. Application-level allowlisting is fragile against DNS rebinding, IPv6 tunnels, and 302 redirects to internal IPs — the sanitize_proxy_url name suggests the developer implemented scheme/host allowlisting rather than destination reachability validation, making bypasses likely. Audit your deployment for any active use of extension_proxy before disabling it, and monitor for anomalous outbound HTTP patterns from the git server process.