
PoC для CVE-2025-24813 с использованием Spring-Boot
Tomcat уязвим из-за двух отдельных уязвимостей: первая — слабость в DefaultServlet, которая позволяет частичным PUT-запросам записывать во временный каталог см.: https://github.com/apache/tomcat/blob/f2a274bc00cf73670a614999561c69a391b5e35f/java/org/apache/catalina/servlets/DefaultServlet.java#L608
Вторая — класс FileStore, который десериализует любой .session файл во временном каталоге см.: https://github.com/apache/tomcat/blob/05a72ef525e41835aaf5ce3d04122970f4aa8c21/java/org/apache/catalina/session/FileStore.java#L202
Приложение использует Tomcat 10.1.24 (входит в состав Spring-Boot 3.3.0), который уязвим к CVE-2025-24813, и настраивает его следующим образом:
PersistentManager и FileStoreserver.servlet.register-default-servlet=true)readonly=false)См. шаблон: https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2025/CVE-2025-24813.yaml
Необходим период охлаждения 60 секунд, поскольку требуется время, прежде чем обработчик Filestore подхватит файл сессии и выполнит полезную нагрузку:
nuclei -target http://localhost:8080/ -t http/cves/2025/CVE-2025-24813.yaml -interactions-cooldown-period 60 -v