
Концепт-эксплойт (PoC) для CVE-2025-22870, демонстрирующий обход HTTP-прокси в уязвимых версиях (<0.36.0) golang.org/x/net/http/httpproxy. Эксплуатирует некорректный разбор идентификатора зоны IPv6 для обхода ограничений NO_PROXY, что позволяет обойти прокси и потенциально выполнить SSRF в средах с некорректной конфигурацией.
Эта концептуальная демонстрация показывает эксплуатацию CVE-2025-22870, уязвимости в пакете golang.org/x/net/http/httpproxy (до версии v0.36.0), которая позволяет обходить ограничения HTTP-прокси, используя способ сопоставления идентификаторов зон IPv6 с шаблонами NO_PROXY.
golang.org/x/net/http/httpproxyКогда переменная окружения задана для ограничения определённых доменов от маршрутизации через прокси (например, ), специально сформированный запрос к хосту с (например, ) может и избежать проксирования. Это приводит к , что при определённых условиях может позволить .
NO_PROXYNO_PROXY=*.example.com[::1%25.example.com]Эта уязвимость может быть использована для отправки запросов напрямую к внутренним или локальным сервисам в обход настроенных прокси, даже если домены предположительно защищены NO_PROXY.
PoC эксплуатирует уязвимость в пакете golang.org/x/net/http/httpproxy, а именно в способе парсинга идентификаторов зон IPv6 при сопоставлении с правилами NO_PROXY.
Используемый пейлоад:
[::1%25.example.com]:https://raw.githubusercontent.com/joshuaprovoste/cve-2025-22870/main/7777
Из-за ошибки парсинга в уязвимом пакете этот адрес обходит прокси, несмотря на совпадение с NO_PROXY.