
Proof-of-concept per CVE-2025-22870 che dimostra il bypass del proxy HTTP nelle versioni vulnerabili (<0.36.0) di golang.org/x/net/http/httpproxy. Sfrutta un'analisi impropria dell'ID di zona IPv6 per eludere le restrizioni NO_PROXY, permettendo il bypass del proxy e potenziali SSRF in ambienti mal configurati.
Questa PoC dimostra lo sfruttamento di CVE-2025-22870, una vulnerabilità nel pacchetto golang.org/x/net/http/httpproxy (anteriore alla v0.36.0), che può essere utilizzata per aggirare le restrizioni del proxy HTTP abusando del modo in cui gli identificatori di zona IPv6 vengono confrontati con i pattern NO_PROXY.
golang.org/x/net/http/httpproxyQuando la variabile d'ambiente NO_PROXY è impostata per limitare determinati domini dall'essere instradati attraverso un proxy (ad es., NO_PROXY=*.example.com), una richiesta appositamente predisposta verso un host con un ID di zona IPv6 (ad es., [::1%25.example.com]) potrebbe corrispondere in modo errato ed evitare di essere proxyata. Ciò si traduce in un bypass del proxy, che potrebbe consentire Server-Side Request Forgery (SSRF) in determinate condizioni.
Questa vulnerabilità può essere sfruttata per inviare richieste direttamente a servizi interni o locali eludendo i proxy configurati, anche se i domini erano presumibilmente protetti da NO_PROXY.
La PoC sfrutta una vulnerabilità nel pacchetto golang.org/x/net/http/httpproxy, in particolare nel modo in cui analizza gli identificatori di zona IPv6 quando li confronta con le regole NO_PROXY.
Il payload utilizzato è:
[::1%25.example.com]:https://raw.githubusercontent.com/joshuaprovoste/cve-2025-22870/HEAD/7777
A causa del bug di analisi nel pacchetto vulnerabile, questo indirizzo bypassa il proxy nonostante corrisponda a NO_PROXY.