
POC para CVE-2025-24813 usando Spring-Boot
Tomcat es vulnerable debido a dos vulnerabilidades separadas; la primera es una debilidad en el DefaultServlet que permite PUTs parciales para escribir en un directorio temporal. Ver: https://github.com/apache/tomcat/blob/f2a274bc00cf73670a614999561c69a391b5e35f/java/org/apache/catalina/servlets/DefaultServlet.java#L608
La segunda es la clase FileStore, que deserializa cualquier archivo .session en el directorio temporal. Ver: https://github.com/apache/tomcat/blob/05a72ef525e41835aaf5ce3d04122970f4aa8c21/java/org/apache/catalina/session/FileStore.java#L202
La aplicación usa Tomcat 10.1.24 (incluido en Spring-Boot 3.3.0), que es vulnerable a CVE-2025-24813, y lo configura con:
PersistentManager y FileStoreserver.servlet.register-default-servlet=true)readonly=false)Ver plantilla: https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2025/CVE-2025-24813.yaml
Se necesita un período de enfriamiento de 60 segundos, ya que tarda un tiempo en que el manejador de FileStore recoja el archivo de sesión y ejecute el payload:
nuclei -target http://localhost:8080/ -t http/cves/2025/CVE-2025-24813.yaml -interactions-cooldown-period 60 -v