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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-47883 — Минимальная proof-of-concept для открытого перенаправления UrlHandlerFilter в Spring Framework (CVE-2026-47883), демонстрирующая, что специально сформированные запросы с двойным слэшем приводят к заголовкам Location, контролируемым атакующим. | Kitploit
Инструменты/GitHubGitHub/daehyuh/cve-2026-47883
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасность
GitHubdaehyuh/cve-2026-47883

CVE-2026-47883

Минимальная proof-of-concept для открытого перенаправления UrlHandlerFilter в Spring Framework (CVE-2026-47883), демонстрирующая, что специально сформированные запросы с двойным слэшем приводят к заголовкам Location, контролируемым атакующим.

Репозиторий
2 дней назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

CVE-2026-47883: Spring Framework UrlHandlerFilter Open Redirect PoC

Этот репозиторий содержит минимальный воспроизводимый PoC для CVE-2026-47883, опубликованного в официальном бюллетене безопасности Spring.

  • Официальный бюллетень: https://spring.io/security/cve-2026-47883/
  • Официальное название: Spring Framework Open Redirect in UrlHandlerFilter
  • Серьёзность: Medium
  • CVSS v3.1: 5.4 (AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N)
  • CWE: CWE-601 — URL Redirection to Untrusted Site (Open Redirect)
  • Дата публикации: 2026-08-20

Краткое описание уязвимости

Если UrlHandlerFilter в Spring Framework настроен с очень широким шаблоном и режимом redirect, может быть сформирован заголовок Location, ведущий на внешний origin, что приводит к open redirect. В официальном бюллетене Spring указано, что уязвимы обе вариации фильтра — для Spring MVC и Spring WebFlux.

Скачать инструмент

В Servlet-пути этого PoC значение redirect формируется из URI запроса после удаления завершающего слэша и используется в заголовке ответа.

root@kitploit:~
String location = trimTrailingSlash(request.getRequestURI());
response.setHeader(HttpHeaders.LOCATION, location);

Если raw request URI равен //attacker.example/, результатом будет //attacker.example. Согласно RFC 3986 §4.2, //attacker.example является network-path reference, поэтому браузер может интерпретировать его как внешний адрес с сохранением текущей схемы (например, https://attacker.example).

Условия возникновения

В этом PoC используются следующие условия.

  • Используется уязвимая версия Spring Framework.
  • UrlHandlerFilter зарегистрирован в режиме redirect.
  • Применён очень широкий шаблон, например /**.
  • Атакующий может передать на сервер raw request target, начинающийся с //.
root@kitploit:~
UrlHandlerFilter.trailingSlashHandler("/**")
    .redirect(HttpStatus.PERMANENT_REDIRECT)
    .build();

Область воздействия

Затронутые артефакты согласно официальному бюллетеню:

  • org.springframework:spring-webmvc
  • org.springframework:spring-webflux

Затронутые версии:

  • Spring Framework 7.0.0 - 7.0.8
  • Spring Framework 6.2.0 - 6.2.19

Исправленные версии:

Исправленная версияДоступность
7.0.9OSS
7.0.8.1Только Enterprise Support
6.2.20Только Enterprise Support

Что демонстрирует этот PoC

UrlHandlerFilterBootServletIntegrationTest (основное воспроизведение)

Запускается реальное приложение на Spring Boot + embedded Tomcat и регистрируется следующий фильтр.

root@kitploit:~
UrlHandlerFilter.trailingSlashHandler("/**")
    .redirect(HttpStatus.PERMANENT_REDIRECT)
    .build();

Чтобы HTTP-клиент не мог заранее нормализовать путь //, запрос отправляется через raw TCP socket.

  1. embeddedServletContainerEmitsNetworkPathReferenceForDoubleSlashPath
    • Отправляется GET //attacker.example/ HTTP/1.1.
    • Проверяется ответ 308 Permanent Redirect и заголовок Location: //attacker.example.
    • Демонстрируется уязвимое поведение, которое браузер может интерпретировать как внешний origin.
  2. embeddedServletContainerKeepsExpectedSameOriginRelativeLocationForOrdinaryPath
    • В качестве контрольного примера отправляется GET /account/ HTTP/1.1.
    • Проверяется, что Location: /account сохраняется.

UrlHandlerFilterOpenRedirectTest (вспомогательный тест)

API Servlet-фильтра проверяется напрямую с помощью mock-объектов, а также проверяется контрольный пример с обычным путём.

Во вспомогательном reactive-тесте проверяется, что определённый URI, созданный с помощью MockServerHttpRequest, нормализуется до /attacker.example. Однако это не является end-to-end воспроизведением raw request-target в WebFlux и не означает, что WebFlux не затронут. Согласно официальному бюллетеню Spring, уязвимы как Spring MVC, так и Spring WebFlux.

Как запустить

Windows:

root@kitploit:~
.\mvnw.cmd test

macOS/Linux:

root@kitploit:~
./mvnw test

Ожидаемый результат для уязвимой версии:

root@kitploit:~
UrlHandlerFilterBootServletIntegrationTest: Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
UrlHandlerFilterOpenRedirectTest: Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS

Успешное выполнение тестов означает, что «уязвимое поведение воспроизведено». В основном интеграционном тесте специально сформированный raw request создаёт значение Location, которое может быть интерпретировано как внешний origin, тогда как обычный запрос сохраняет same-origin относительный путь.

Используемые зависимости

В этом репозитории используется следующая комбинация.

root@kitploit:~
Spring Boot 3.5.14
Spring Framework 6.2.18
Apache Tomcat 10.1.54
Java 17+

Spring Boot и Tomcat — это среда запуска PoC; официально уязвимым продуктом является Spring Framework. Используемая в PoC версия Spring Framework 6.2.18 входит в официальную область воздействия 6.2.0 - 6.2.19.

Почему это опасно

Атакующий может использовать URL доверенного пользователем приложения, чтобы перенаправить его на внешний сайт. Это может использоваться в сценариях фишинга, эксплуатации доверительных отношений и последующего хищения учётных данных.

Официальный вектор CVSS не требует предварительных привилегий, но требует взаимодействия с пользователем; влияние на конфиденциальность и целостность оценивается как Low, влияние на доступность — None.

Как устранить

Согласно официальным рекомендациям Spring, необходимо обновиться до исправленной версии, соответствующей вашему каналу поддержки. В официальном бюллетене указано, что после обновления дополнительные меры mitigации не требуются.

Credit

В официальном бюллетене Spring указано следующее.

  • Daehyun Kang (@daehyuh)

Справочные ссылки

  • Официальный бюллетень Spring: https://spring.io/security/cve-2026-47883/
  • CWE-601: https://cwe.mitre.org/data/definitions/601.html
  • RFC 3986 §4.2: https://www.rfc-editor.org/rfc/rfc3986#section-4.2
  • Калькулятор CVSS v3.1: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N&version=3.1