
POC para CVE-2025-24813 usando Spring-Boot
O Tomcat é vulnerável devido a duas vulnerabilidades separadas. A primeira é uma fraqueza no DefaultServlet que permite envios parciais (partial puts) para escrever em um diretório temporário. veja: https://github.com/apache/tomcat/blob/f2a274bc00cf73670a614999561c69a391b5e35f/java/org/apache/catalina/servlets/DefaultServlet.java#L608
A segunda é a classe FileStore, que desserializa qualquer arquivo .session no diretório temporário. veja: https://github.com/apache/tomcat/blob/05a72ef525e41835aaf5ce3d04122970f4aa8c21/java/org/apache/catalina/session/FileStore.java#L202
A aplicação usa Tomcat 10.1.24 (incluído no Spring-Boot 3.3.0), que é vulnerável ao CVE-2025-24813, e o configura com:
PersistentManager e FileStoreserver.servlet.register-default-servlet=true)readonly=false)Veja o template: https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2025/CVE-2025-24813.yaml
É necessário um período de cooldown de 60 segundos, pois leva um tempo até que o manipulador FileStore colete o arquivo de sessão e execute o payload:
nuclei -target http://localhost:8080/ -t http/cves/2025/CVE-2025-24813.yaml -interactions-cooldown-period 60 -v