
Preuve de concept pour CVE-2025-22870 démontrant le contournement du proxy HTTP dans les versions vulnérables (<0.36.0) de golang.org/x/net/http/httpproxy. Exploite une analyse incorrecte de l'identifiant de zone IPv6 pour contourner les restrictions NO_PROXY, permettant le contournement du proxy et un SSRF potentiel dans des environnements mal configurés.
Cette preuve de concept démontre l'exploitation de CVE-2025-22870, une vulnérabilité dans le package golang.org/x/net/http/httpproxy (antérieur à la version v0.36.0), qui peut être utilisée pour contourner les restrictions de proxy HTTP en abusant de la manière dont les identifiants de zone IPv6 sont mis en correspondance avec les motifs NO_PROXY.
golang.org/x/net/http/httpproxyLorsque la variable d'environnement NO_PROXY est définie pour restreindre certains domaines à ne pas être routés via un proxy (par exemple, NO_PROXY=*.example.com), une requête spécialement conçue vers un hôte avec un ID de zone IPv6 (par exemple, [::1%25.example.com]) peut correspondre incorrectement et éviter d'être proxifiée. Cela entraîne un contournement de proxy, ce qui pourrait permettre une falsification de requête côté serveur (SSRF) dans certaines conditions.
Cette vulnérabilité peut être exploitée pour envoyer des requêtes directement à des services internes ou locaux tout en contournant les proxies configurés, même si les domaines étaient censés être protégés par NO_PROXY.
La PoC exploite une vulnérabilité dans le package golang.org/x/net/http/httpproxy, plus précisément dans la manière dont il analyse les identifiants de zone IPv6 lors de la mise en correspondance avec les règles NO_PROXY.
La charge utile utilisée est :
[::1%25.example.com]:https://raw.githubusercontent.com/joshuaprovoste/cve-2025-22870/main/7777
En raison du bogue d'analyse dans le package vulnérable, cette adresse contourne le proxy malgré la correspondance avec NO_PROXY.