
CVE-2025-22870 の概念実証(PoC)です。golang.org/x/net/http/httpproxy の脆弱性のあるバージョン(<0.36.0)で HTTP プロキシバイパスを実証します。不適切な IPv6 ゾーン ID の解析を悪用して NO_PROXY の制限を回避し、プロキシバイパスを可能にするとともに、設定が不適切な環境では SSRF を引き起こす可能性があります。
このProof of Conceptは、golang.org/x/net/http/httpproxy パッケージ(v0.36.0より前)に存在するCVE-2025-22870の悪用を実証するものです。この脆弱性は、IPv6ゾーン識別子がNO_PROXYパターンと照合される方法を悪用して、HTTPプロキシ制限をバイパスするために使用される可能性があります。
golang.org/x/net/http/httpproxyNO_PROXY 環境変数が特定のドメインをプロキシ経由でルーティングしないように設定されている場合(例: NO_PROXY=*.example.com)、IPv6ゾーンID(例: [::1%25.example.com])を持つホストへの特別に細工されたリクエストが誤って一致し、プロキシを経由しない可能性があります。これによりプロキシバイパスが発生し、特定の条件下では**サーバーサイドリクエストフォージェリ(SSRF)**を引き起こす可能性があります。
この脆弱性を悪用すると、NO_PROXY によって保護されているはずのドメインであっても、設定されたプロキシを迂回して内部サービスやローカルサービスへのリクエストを直接送信することが可能になります。
このPoCは、golang.org/x/net/http/httpproxy パッケージの脆弱性、具体的にはNO_PROXY ルールとの照合時にIPv6ゾーン識別子を解析する方法に存在する問題を悪用します。
使用されるペイロードは以下のとおりです:
[::1%25.example.com]:https://raw.githubusercontent.com/joshuaprovoste/cve-2025-22870/HEAD/7777
影響を受けるパッケージの解析バグにより、このアドレスはNO_PROXYに一致しているにもかかわらず、プロキシをバイパスします。