Все уязвимости

CVE-2024-38816

Spring Framework WebMvc.fn/WebFlux.fn: обход пути к статическому ресурсу

CVE-2024-38816 касается функциональных Spring WebMvc.fn или WebFlux.fn при явной раздаче статических ресурсов из FileSystemResource. Обновите Spring и проверьте исключения: Spring Security Firewall, Tomcat и Jetty блокируют описанный сценарий.

Проверено 30 октября 2026Spring указывает CVSS 3.1 8.1 High, вектор AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N.

Кому нужно проверить

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

В чём риск

Вредоносный запрос может прочитать доступный процессу файл за пределами ожидаемого URL-маршрута. Это не означает автоматический доступ ко всей файловой системе: важны права процесса, конкретный ресурс и наличие защитного HTTP Firewall или безопасного контейнера.

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

Затронуты Spring Framework 6.1.0–6.1.12, 6.0.0–6.0.23 и 5.3.39 и ниже, только если приложение использует RouterFunctions для статических ресурсов и явно задаёт FileSystemResource. Приложения с Spring Security HTTP Firewall, а также работающие на Tomcat или Jetty, по advisory блокируют вредоносные запросы.

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

Исправлено в 6.1.13; для 6.0.24 и 5.3.40 исправление доступно через Enterprise Support. Старые неподдерживаемые версии могут временно включить Spring Security Firewall или использовать Tomcat/Jetty, но предпочтительно обновление.

Что сделать

  1. 1Проверьте версию Spring Framework, RouterFunctions и обработчики статических ресурсов. Ищите явное использование FileSystemResource и учитывайте фактический сервер приложения.
  2. 2Обновите до 6.1.13 или исправленного поддерживаемого пакета; для веток 6.0 и 5.3 подтвердите право на 6.0.24/5.3.40 через Enterprise Support. Проверьте сборку на staging.
  3. 3Если обновление задерживается, включите Spring Security HTTP Firewall либо используйте Tomcat/Jetty только после проверки архитектуры. Это временная мера и не заменяет обновление.
  4. 4После обновления проверьте разрешённые статические файлы, права процесса, ошибки 4xx и журналы. Не тестируйте чтение реальных секретов: используйте безопасные тестовые файлы без чувствительных данных.

Проверка условий Spring CVE-2024-38816

Уязвимость требует одновременного выполнения нескольких условий.

  1. 1Проверить версию Spring
  2. 2Найти RouterFunctions и FileSystemResource
  3. 3Проверить Firewall и контейнер
  4. 4Обновить и проверить доступ к файлам

Примеры конфигурации и проверки

Проверить разрешённую зависимость Spring (shell)
mvn dependency:tree -Dincludes=org.springframework:spring-web

Команда выполняется в Maven-проекте и только выводит resolved dependency. Она не подтверждает настройки RouterFunctions, FileSystemResource, Spring Security или реальный контейнер; эти условия нужно проверить отдельно.

Как не подпустить ботов к сайту

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

Первоисточники

Снизьте шанс атаки до того, как бот дойдёт до сайта

Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.