Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-72815-poc — Локальный PoC на Go, демонстрирующий CVE-2026-72815 — уязвимость подмены IP через X-Forwarded-For в middleware go-chi/chi middleware.RealIP, позволяющую обойти ACL на основе IP, со сравнением с исправленной версией v5.3.0. | Kitploit
Инструменты/GitHubGitHub/saku0512/cve-2026-72815-poc
Оборонительные ИнструментыАнализ уязвимостейАнализ КодаЭксплуатацияВеб-безопасностьАутентификацияСтатьи и ИсследованияОбучение и Образование

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
GitHub
saku0512/cve-2026-72815-poc

CVE-2026-72815-poc

Локальный PoC на Go, демонстрирующий CVE-2026-72815 — уязвимость подмены IP через X-Forwarded-For в middleware go-chi/chi middleware.RealIP, позволяющую обойти ACL на основе IP, со сравнением с исправленной версией v5.3.0.

Репозиторий
22 ч 55 мин назадЕщё не проверено
Поделиться

CVE-2026-72815: go-chi/chi middleware.RealIP IP Spoofing PoC

English version

Обзор

Этот репозиторий представляет собой локальный Proof of Concept (PoC) для уязвимости IP spoofing CVE-2026-72815 (GHSA-3fxj-6jh8-hvhx), существующей в middleware.RealIP из go-chi/chi.

Уязвимое middleware RealIP безусловно доверяет первому (крайнему левому) значению в X-Forwarded-For и перезаписывает им http.Request.RemoteAddr. В конфигурациях, где клиент может задавать X-Forwarded-For, злоумышленник может подменить произвольный IP-адрес в качестве источника запроса, что позволяет обходить или загрязнять IP-based ACL, rate limit, журналы аудита и т. д.

Данный PoC использует только httptest и не выполняет соединений с внешними хостами.

Отказ от ответственности

Используйте только в образовательных целях и для разрешённой проверки безопасности. Не используйте без разрешения против сред третьих лиц.

Детали уязвимости

  • CVE ID: CVE-2026-72815
  • GitHub Advisory: GHSA-3fxj-6jh8-hvhx
  • Продукт: github.com/go-chi/chi/v5
  • Уязвимый API: middleware.RealIP
  • Тип: Authentication Bypass by Spoofing (CWE-290)
  • CVSS v4.0: 6.9 (Moderate)
  • Уязвимые версии согласно CVE-записи: >= 5.2.1, < 5.3.0
  • Исправленная версия: 5.3.0

Первопричина

middleware.RealIP при наличии X-Forwarded-For берёт первое значение, разделённое запятой, и устанавливает его в RemoteAddr.

Концептуально это выглядит так:

root@kitploit:~
if xff := r.Header.Get("X-Forwarded-For"); xff != "" {
    ip, _, _ = strings.Cut(xff, ",")
}

r.RemoteAddr = ip

Обычно reverse proxy добавляет реальный IP-адрес источника в конец существующего X-Forwarded-For. Поэтому если злоумышленник может заранее указать такое значение, крайнее левое значение доверять нельзя:

root@kitploit:~
X-Forwarded-For: 127.0.0.1, 203.0.113.50

Уязвимый RealIP примет 127.0.0.1 в качестве IP-адреса клиента.

PoC

Требования

  • Go 1.23 или новее (для отдельного vulnerable case на v5.2.1 достаточно Go 1.20 или новее)
  • Сетевое подключение, необходимое для первоначальной загрузки модулей

1. Воспроизведение уязвимой версии v5.2.1

root@kitploit:~
cd vulnerable
GOWORK=off go run .

PoC предполагает, что реальный клиент имеет адрес 203.0.113.50, а IP-адрес, разрешённый для администратора, — 127.0.0.1.

Обычный запрос вернёт HTTP 403, но запрос со следующим заголовком приведёт к тому, что RealIP перезапишет RemoteAddr на 127.0.0.1, и ответ будет HTTP 200.

root@kitploit:~
X-Forwarded-For: 127.0.0.1, 203.0.113.50

Ожидаемый основной вывод:

root@kitploit:~
=== CVE-2026-72815 vulnerable case ===
[*] go-chi/chi version: v5.2.1
[*] normal request status: 403
[*] spoofed request status: 200
[!] VULNERABLE: attacker-controlled X-Forwarded-For bypassed the IP ACL.

2. При использовании безопасного API в v5.3.0

root@kitploit:~
cd fixed
GOWORK=off go run .

В v5.3.0 в качестве замены RealIP добавлены ClientIPFromHeader, ClientIPFromXFF, ClientIPFromXFFTrustedProxies, ClientIPFromRemoteAddr.

Fixed case в этом PoC предполагает конфигурацию, в которой «непосредственно перед сервером находится один доверенный proxy, и этот proxy добавляет реальный IP-адрес клиента в конец XFF», и использует ClientIPFromXFF(). Даже при отправке того же поддельного заголовка будет принято крайнее правое значение 203.0.113.50, поэтому обойти ACL не удастся.

Ожидаемый основной вывод:

root@kitploit:~
=== CVE-2026-72815 safe replacement case ===
[*] go-chi/chi version: v5.3.0
[*] normal request status: 403
[*] spoofed request status: 403
[+] SAFE: the spoofed leftmost X-Forwarded-For value did not bypass the IP ACL.

3. Проверка обоих вариантов вместе

root@kitploit:~
bash scripts/run-version-matrix.sh

Замечания по v5.3.0

Даже в v5.3.0 само поведение старого middleware.RealIP сохранено для обратной совместимости. В RealIP добавлено примечание о deprecated, и рекомендуется переход на безопасные API ClientIPFrom*.

Следовательно, недостаточно просто обновить зависимость до v5.3.0 и продолжать использовать middleware.RealIP — необходимо перейти на middleware ClientIPFrom*, соответствующий реальной конфигурации сети / reverse proxy.

Область PoC

Данный репозиторий проверяет только следующее.

  1. Что middleware.RealIP отражает контролируемое злоумышленником крайнее левое значение XFF в RemoteAddr
  2. Что в результате можно обойти простой IP-based ACL
  3. Что при использовании ClientIPFromXFF() из v5.3.0 в подходящей конфигурации proxy тот же ввод будет отклонён

Сканирование реальных сетей, запросы к сервисам третьих лиц, DoS, закрепление в системе и т. п. не выполняются.

Меры противодействия

  • Обновить go-chi/chi до v5.3.0 или новее
  • Перейти с middleware.RealIP на middleware ClientIPFrom*, соответствующий реальной инфраструктуре
  • На стороне reverse proxy также надлежащим образом перезаписывать или удалять forwarding header, отправленные клиентом
  • Не полагаться только на IP-адрес как на основание для важной аутентификации и авторизации

Справочные материалы

  • CVE-2026-72815
  • GHSA-3fxj-6jh8-hvhx
  • go-chi/chi PR #967: middleware.ClientIP
  • go-chi/chi v5.3.0
Скачать инструмент