此概念验证展示了 CVE-2025-22870 的利用方式,该漏洞存在于 golang.org/x/net/http/httpproxy 包中(版本低于 v0.36.0),可通过滥用 IPv6 区域标识符与 NO_PROXY 模式匹配的方式绕过 HTTP 代理限制。
golang.org/x/net/http/httpproxy当环境变量 NO_PROXY 被设置为限制某些域名通过代理路由时(例如 NO_PROXY=*.example.com),一个精心构造的请求若包含 IPv6 区域 ID(例如 [::1%25.example.com]),可能会 错误匹配 并绕过代理。这导致 代理绕过,在某些条件下可能引发 服务器端请求伪造(SSRF)。
该漏洞可被利用,在 绕过已配置代理 的同时直接向内部或本地服务发送请求,即使这些域名本应受 NO_PROXY 保护。
此 PoC 利用了 golang.org/x/net/http/httpproxy 包中的漏洞,具体是在根据 NO_PROXY 规则进行匹配时对 IPv6 区域标识符的解析方式存在缺陷。
使用的 payload 为:
[::1%25.example.com]:https://raw.githubusercontent.com/joshuaprovoste/cve-2025-22870/main/7777
由于受影响包中的解析错误,该地址在符合 NO_PROXY 条件的情况下仍绕过了代理。