{"id":151774,"date":"2025-07-03T13:02:40","date_gmt":"2025-07-03T20:02:40","guid":{"rendered":"https:\/\/unit42.paloaltonetworks.com\/?p=151774"},"modified":"2025-08-14T15:01:13","modified_gmt":"2025-08-14T22:01:13","slug":"apache-cve-2025-24813-cve-2025-27636-cve-2025-29891","status":"publish","type":"post","link":"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/","title":{"rendered":"Apache bajo an\u00e1lisis: PUT parcial de Tomcat y secuestro de encabezados de Camel"},"content":{"rendered":"<h2><a id=\"post-151774-_heading=h.2l5ldj224gfv\"><\/a>Resumen ejecutivo<\/h2>\n<p>En marzo de 2025, Apache revel\u00f3 <a href=\"https:\/\/lists.apache.org\/thread\/j5fkjv2k477os90nczf2v9l61fb0kkgq\" target=\"_blank\" rel=\"noopener\">CVE-2025-24813<\/a>, una vulnerabilidad que afecta a Apache Tomcat. Se trata de una plataforma muy utilizada que permite a los servidores web Apache ejecutar aplicaciones web basadas en Java. El fallo permite la ejecuci\u00f3n remota de c\u00f3digo, afectando a las versiones 9.0.0.M1 a 9.0.98, 10.1.0-M1 a 10.1.34 y 11.0.0-M1 a 11.0.2 de Apache Tomcat.<\/p>\n<p>El mismo mes, Apache revel\u00f3 dos vulnerabilidades adicionales en Apache Camel, un marco de middleware de enrutamiento de mensajes. Estas vulnerabilidades son <a href=\"https:\/\/camel.apache.org\/security\/CVE-2025-27636.html\" target=\"_blank\" rel=\"noopener\">CVE-2025-27636<\/a> y <a href=\"https:\/\/camel.apache.org\/security\/CVE-2025-29891.html\" target=\"_blank\" rel=\"noopener\">CVE-2025-29891<\/a>, dos fallos que permiten la ejecuci\u00f3n remota de c\u00f3digo y que afectan a las versiones 4.10.0 a 4.10.1, 4.8.0 a 4.8.4 y 3.10.0 a 3.22.3 de Apache Camel.<\/p>\n<p>Estas vulnerabilidades son importantes porque millones de desarrolladores conf\u00edan en la plataforma proporcionada por Apache Foundation. La explotaci\u00f3n exitosa de estas vulnerabilidades podr\u00eda permitir que los atacantes ejecuten c\u00f3digo arbitrario con privilegios de Tomcat\/Camel.<\/p>\n<p>Apache ha publicado parches y los investigadores no han tardado en publicar exploits de pruebas de concepto (PoC). Se observaron escaneos y sondeos de servidores vulnerables en el entorno real poco despu\u00e9s de la revelaci\u00f3n de la informaci\u00f3n. Hemos confirmado la posibilidad de ejecuci\u00f3n remota de c\u00f3digo a partir de estas tres vulnerabilidades.<\/p>\n<p>En marzo de 2025, Palo Alto Networks bloque\u00f3 125,856\u00a0sondas\/exploraciones\/intentos de explotaci\u00f3n relacionados con estas vulnerabilidades. A las organizaciones les aconsejamos que apliquen los parches pronto.<\/p>\n<p>Los clientes de Palo Alto Networks est\u00e1n mejor protegidos gracias a los siguientes productos y servicios:<\/p>\n<ul>\n<li>La suscripci\u00f3n del <a href=\"https:\/\/docs.paloaltonetworks.com\/ngfw\" target=\"_blank\" rel=\"noopener\">firewall de nueva generaci\u00f3n<\/a> con <a href=\"https:\/\/docs.paloaltonetworks.com\/advanced-threat-prevention\/administration\" target=\"_blank\" rel=\"noopener\">prevenci\u00f3n de amenazas avanzada<\/a> puede ayudar a identificar y bloquear el tr\u00e1fico asociado<\/li>\n<li><a href=\"https:\/\/www.paloaltonetworks.com\/cortex\/cortex-xpanse\" target=\"_blank\" rel=\"noopener\">Cortex Xpanse<\/a> y el complemento ASM para <a href=\"https:\/\/www.paloaltonetworks.com\/cortex\/cortex-xsiam\" target=\"_blank\" rel=\"noopener\">Cortex XSIAM<\/a> pueden identificar servidores Apache Tomcat externos utilizando la regla de superficie de ataque \u201cServidor web Tomcat\u201d.<\/li>\n<\/ul>\n<p>Si cree que puede haber resultado vulnerado o tiene un problema urgente, p\u00f3ngase en contacto con el <a href=\"https:\/\/start.paloaltonetworks.com\/contact-unit42.html\" target=\"_blank\" rel=\"noopener\">equipo de respuesta ante incidentes de Unit\u00a042<\/a>.<\/p>\n<table style=\"width: 94.8828%;\">\n<thead>\n<tr>\n<td style=\"width: 35%;\"><b>Temas relacionados con Unit\u00a042<\/b><\/td>\n<td style=\"width: 133.829%;\"><a href=\"https:\/\/unit42.paloaltonetworks.com\/es-la\/category\/vulnerabilities-es-la\/\" target=\"_blank\" rel=\"noopener\"><b>Vulnerabilities<\/b><\/a>, <strong><a href=\"https:\/\/unit42.paloaltonetworks.com\/es-la\/tag\/cve-2025-24813-es-la\/\" target=\"_blank\" rel=\"noopener\">CVE-2025-24813<\/a><\/strong>, <strong><a href=\"https:\/\/unit42.paloaltonetworks.com\/es-la\/tag\/cve-2025-27636-es-la\/\" target=\"_blank\" rel=\"noopener\">CVE-2025-27636<\/a><\/strong>, <strong><a href=\"https:\/\/unit42.paloaltonetworks.com\/es-la\/tag\/cve-2025-29891-es-la\/\" target=\"_blank\" rel=\"noopener\">CVE-2025-29891<\/a><\/strong><\/td>\n<\/tr>\n<\/thead>\n<\/table>\n<h2><a id=\"post-151774-_heading=h.948mcprdlsf2\"><\/a>CVE-2025-24813: Apache Tomcat<\/h2>\n<h3><a id=\"post-151774-_heading=h.mcvx6x21xr7h\"><\/a>Resumen de vulnerabilidades<\/h3>\n<p>CVE-2025-24813 es una <a href=\"https:\/\/lists.apache.org\/thread\/j5fkjv2k477os90nczf2v9l61fb0kkgq\" target=\"_blank\" rel=\"noopener\">vulnerabilidad en la caracter\u00edstica PUT parcial de Apache Tomcat<\/a> con la que los atacantes pueden sobrescribir archivos de sesi\u00f3n serializados en disco, llevando a la ejecuci\u00f3n de c\u00f3digo arbitrario.<\/p>\n<p>Esta vulnerabilidad surge cuando Tomcat est\u00e1 configurado para conservar los datos de sesi\u00f3n HTTP, porque los sistemas Tomcat sin parchear gestionan incorrectamente las peticiones PUT parciales que contienen el encabezado<span style=\"font-family: 'courier new', courier, monospace;\"> Content-Range<\/span>.<\/p>\n<h4><a id=\"post-151774-_heading=h.kp2c9j6zqi5\"><\/a>PUT parcial<\/h4>\n<p>El t\u00e9rmino \u201c<a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc9110.html#name-partial-put\" target=\"_blank\" rel=\"noopener\">PUT parcial<\/a>\u201d se refiere a una solicitud HTTP PUT que actualiza solo parte de un recurso, en lugar de reemplazarlo por completo. Cuando es compatible, PUT parcial suele utilizar el encabezado <span style=\"font-family: 'courier new', courier, monospace;\">Content-Range<\/span> en una solicitud HTTP para especificar qu\u00e9 parte del recurso debe modificarse.<\/p>\n<p>Esto permite a los clientes cargar o sobrescribir segmentos de recursos en fragmentos. Los PUT parciales pueden aprovecharse para realizar subidas incrementales de archivos, sobrescribir partes espec\u00edficas de archivos o eludir ciertas comprobaciones de seguridad, si no se gestionan correctamente.<\/p>\n<h4><a id=\"post-151774-_heading=h.o60rdtdxe059\"><\/a>Funci\u00f3n de persistencia de sesi\u00f3n en Apache Tomcat<\/h4>\n<p>El gestor de sesiones HTTP de Apache Tomcat incluye una funci\u00f3n de persistencia de sesi\u00f3n. Esta funci\u00f3n guarda los datos de la sesi\u00f3n en un archivo o una base de datos cuando se apaga el servidor, y vuelve a cargar estos datos en cach\u00e9 cuando se reinicia el servidor. Los datos de la sesi\u00f3n contienen informaci\u00f3n como el estado de inicio de sesi\u00f3n del usuario y sus preferencias, y esta funci\u00f3n ayuda a conservar los datos de la sesi\u00f3n de un usuario cuando se reinicia el servidor.<\/p>\n<p>Tomcat codifica estos datos de sesi\u00f3n guardados como un flujo de bytes mediante un proceso denominado <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/technotes\/guides\/serialization\/index.html\" target=\"_blank\" rel=\"noopener\">serializaci\u00f3n<\/a> y almacena los datos serializados en el sistema de archivos local. Serializa todos los atributos de sesi\u00f3n almacenados en el objeto <span style=\"font-family: 'courier new', courier, monospace;\">HttpSession<\/span>. Esto incluye cualquier dato que su aplicaci\u00f3n web coloque expl\u00edcitamente en la sesi\u00f3n utilizando <span style=\"font-family: 'courier new', courier, monospace;\">session.setAttribute()<\/span>. La informaci\u00f3n se almacena normalmente en alg\u00fan lugar en <span style=\"font-family: 'courier new', courier, monospace;\">$TOMCAT_HOME\/webapps\/ROOT\/<\/span>.<\/p>\n<p>Sin embargo, los datos de sesi\u00f3n serializados se almacenan en el mismo directorio utilizado por la funci\u00f3n <span style=\"font-family: 'courier new', courier, monospace;\">executePartialPut<\/span> de Tomcat. Los usuarios pueden elaborar solicitudes HTTP para controlar el ID de sesi\u00f3n y el nombre de archivo de los datos almacenados en cach\u00e9 en este directorio. Esto podr\u00eda permitir que un atacante establezca intencionalmente el ID de sesi\u00f3n para que coincida con el nombre de archivo en cach\u00e9 de c\u00f3digo malicioso previamente guardado en la cach\u00e9. Esto puede provocar la deserializaci\u00f3n del archivo almacenado en cach\u00e9, activando el c\u00f3digo malicioso incrustado.<\/p>\n<h4><a id=\"post-151774-_heading=h.p5kvmsrhc62n\"><\/a>Condiciones previas<\/h4>\n<p>El encabezado <span style=\"font-family: 'courier new', courier, monospace;\">Content-Range<\/span> se utiliza a menudo con actualizaciones parciales. Este encabezado indica que el cuerpo de la solicitud contiene una parte del recurso, en lugar del recurso completo. Si una solicitud HTTP PUT contiene un encabezado<span style=\"font-family: 'courier new', courier, monospace;\"> Content-Range<\/span>, Tomcat guarda el contenido (cuerpo) de la solicitud PUT en la ubicaci\u00f3n de cach\u00e9. El siguiente fragmento de c\u00f3digo muestra que Tomcat guarda los datos de una solicitud HTTP PUT que tiene contenido.<\/p>\n<pre class=\"lang:default decode:true\">if (range != null) {\r\n\r\nFile contentFile = executePartialPut(req, range, path);<\/pre>\n<p>Una configuraci\u00f3n vulnerable de Tomcat debe tener dos condiciones previas para explotar esta vulnerabilidad:<\/p>\n<ol>\n<li>Un par\u00e1metro de solo lectura desactivado en el archivo de configuraci\u00f3n de Tomcat en <span style=\"font-family: 'courier new', courier, monospace;\">$TOMCAT_HOME\/conf\/web.xml<\/span>. A continuaci\u00f3n, se muestra la secci\u00f3n de <span style=\"font-family: 'courier new', courier, monospace;\">web.xml<\/span> que contiene un par\u00e1metro de solo lectura desactivado.<\/li>\n<\/ol>\n<pre class=\"lang:default decode:true\">&lt;init-param&gt;\r\n\r\n&lt;param-name&gt;readonly&lt;\/param-name&gt;\r\n\r\n&lt;param-value&gt;false&lt;\/param-value&gt;\r\n\r\n&lt;\/init-param&gt;\r\n\r\n[end code]\r\n\r\nSession persistence is enabled in the Tomcat configuration file at $TOMCAT_HOME\/conf\/content.xml. The section of content.xml that demonstrates enabled session persistence follows.\r\n\r\n[begin code]\r\n\r\n&lt;Manager className=\"org.apache.catalina.session.PersistentManager\"&gt;\r\n\r\n&lt;Store className=\"org.apache.catalina.session.FileStore\" \/&gt;\r\n\r\n&lt;\/Manager&gt;<\/pre>\n<h3><a id=\"post-151774-_heading=h.jst8iz58yekk\"><\/a>Aprovechar la vulnerabilidad<\/h3>\n<p><a href=\"https:\/\/github.com\/PaloAltoNetworks\/Unit42-timely-threat-intel\/blob\/main\/2025-03-14-Testing-CVE-2025-24813.md\" target=\"_blank\" rel=\"noopener\">Realizamos pruebas de explotaci\u00f3n de CVE-2025-24813<\/a> en marzo de 2025. La explotaci\u00f3n de esta vulnerabilidad consta de dos pasos:<\/p>\n<ul>\n<li>En primer lugar, prepare la carga \u00fatil envi\u00e1ndola como un archivo a trav\u00e9s de una solicitud HTTP PUT con Content-Range y un nombre de archivo autodefinido en la URL. Este archivo contiene c\u00f3digo malicioso serializado para su posterior deserializaci\u00f3n.<\/li>\n<li>A continuaci\u00f3n, active el exploit enviando una solicitud HTTP GET adicional que contenga una cookie formada por <span style=\"font-family: 'courier new', courier, monospace;\">JSESSIONID=<\/span> seguida inmediatamente del nombre de archivo autodefinido precedido de un punto. En este caso, la l\u00ednea de la cookie dir\u00eda:<span style=\"font-family: 'courier new', courier, monospace;\"> Cookie<\/span>: \"<span style=\"font-family: 'courier new', courier, monospace;\">JSESSIONID=.<em>[filename]<\/em><\/span>\" como muestra la Figura\u00a01 a continuaci\u00f3n. Esto activar\u00e1 la deserializaci\u00f3n de la cach\u00e9 para ejecutar el c\u00f3digo malicioso.<\/li>\n<\/ul>\n<figure id=\"attachment_151775\" aria-describedby=\"caption-attachment-151775\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151775 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-800656-151774-1.png\" alt=\"Diagrama de flujo que representa un proceso de ciberataque en dos pasos. En el paso\u00a01, se env\u00eda a un servidor una solicitud HTTP denominada 'PUT \/filename.session' con 'Content-Range: bytes 0-5\/100'. En el paso\u00a02, un atacante env\u00eda una solicitud HTTP etiquetada como 'GET \/' con 'Cookie: JSESSIONID=_filename' al servidor. Las flechas indican la direcci\u00f3n de la comunicaci\u00f3n entre las etapas y el servidor.\" width=\"800\" height=\"428\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-800656-151774-1.png 2048w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-800656-151774-1-786x421.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-800656-151774-1-1308x700.png 1308w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-800656-151774-1-768x411.png 768w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-800656-151774-1-1536x822.png 1536w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-151775\" class=\"wp-caption-text\">Figura\u00a01. Dos pasos del exploit.<\/figcaption><\/figure>\n<h4><a id=\"post-151774-_heading=h.u8ilxvr3v3sq\"><\/a>Paso 1: Preparar el c\u00f3digo malicioso serializado<\/h4>\n<p>Este primer paso consiste en enviar un archivo de c\u00f3digo malicioso serializado como el cuerpo de una solicitud HTTP PUT. Apache Tomcat almacenar\u00e1 en la cach\u00e9 el c\u00f3digo malicioso como un archivo de sesi\u00f3n en el sistema de archivos local, ya que el nombre del archivo en el URI termina en <span style=\"font-family: 'courier new', courier, monospace;\">.session<\/span>, como muestra la Figura\u00a02 en la l\u00ednea del encabezado PUT.<\/p>\n<p>En la Figura\u00a02, se observa la solicitud PUT del primer paso con <span style=\"font-family: 'courier new', courier, monospace;\">gopan.session<\/span> como nombre de archivo. El formato de esta solicitud HTTP PUT del tr\u00e1fico es:<\/p>\n<p><span style=\"font-family: 'courier new', courier, monospace;\">PUT \/<em>[filename]<\/em>.session HTTP\/1.1<\/span><\/p>\n<figure id=\"attachment_151786\" aria-describedby=\"caption-attachment-151786\" style=\"width: 799px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151786 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-803461-151774-2.png\" alt=\"Una captura de pantalla de una solicitud HTTP PUT con parte del encabezado y el contenido del archivo visibles. El encabezado incluye informaci\u00f3n sobre el host, el tipo de conexi\u00f3n y la longitud del contenido. Una secci\u00f3n resaltada indica que el nombre de archivo &quot;gopan.session&quot; se env\u00eda como cuerpo de contenido de la solicitud.\" width=\"799\" height=\"431\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-803461-151774-2.png 1116w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-803461-151774-2-786x424.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-803461-151774-2-768x414.png 768w\" sizes=\"(max-width: 799px) 100vw, 799px\" \/><figcaption id=\"caption-attachment-151786\" class=\"wp-caption-text\">Figura 2. Carga \u00fatil en el paso 1.<\/figcaption><\/figure>\n<h4><a id=\"post-151774-_heading=h.ieizdnlrm2v\"><\/a>Paso 2: Desencadenar el exploit<\/h4>\n<p>El segundo paso consiste en enviar una solicitud HTTP GET de seguimiento para desencadenar el exploit y ejecutar el c\u00f3digo malicioso. En la Figura\u00a03, se observa la solicitud HTTP GET con el valor de cookie <span style=\"font-family: 'courier new', courier, monospace;\">JSESSIONID<\/span> utilizado en el paso anterior. El formato de esta cookie es:<\/p>\n<p><span style=\"font-family: 'courier new', courier, monospace;\">Cookie: JSESSIONID=.<em>[filename]<\/em><\/span><\/p>\n<figure id=\"attachment_151797\" aria-describedby=\"caption-attachment-151797\" style=\"width: 700px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151797 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-806703-151774-3.png\" alt=\"Captura de pantalla de un terminal inform\u00e1tico que muestra solicitudes y respuestas HTTP. La respuesta muestra un error HTTP\u00a0500, y algunos de los datos de la cookie hacen referencia a los nombres de archivo 'gopan' y 'gopan-family'.\" width=\"700\" height=\"378\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-806703-151774-3.png 1114w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-806703-151774-3-786x425.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-806703-151774-3-768x415.png 768w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption id=\"caption-attachment-151797\" class=\"wp-caption-text\">Figura 3. Explotaci\u00f3n de la vulnerabilidad para ejecutar la carga \u00fatil enviada previamente en el paso 1.<\/figcaption><\/figure>\n<p>El valor de la cookie para este exploit utiliza un punto (.) antes del valor del nombre de archivo de <span style=\"font-family: 'courier new', courier, monospace;\">JSESSIONID<\/span>. Este punto inicial har\u00e1 que Tomcat guarde el archivo de sesi\u00f3n con el punto inicial.<\/p>\n<h4><a id=\"post-151774-_heading=h.rzlb6ypxl5ix\"><\/a>An\u00e1lisis del c\u00f3digo fuente<\/h4>\n<h5><a id=\"post-151774-_heading=h.f47sftxd1uth\"><\/a>C\u00f3mo Tomcat almacena en cach\u00e9 el cuerpo PUT en un archivo<\/h5>\n<p>Como se muestra en la Figura 5, Tomcat comprueba primero si el indicador de solo lectura (<span style=\"font-family: 'courier new', courier, monospace;\">readonly<\/span>) est\u00e1 activado en el archivo de configuraci\u00f3n. Si est\u00e1 activado, Tomcat no escribe ning\u00fan c\u00f3digo en la cach\u00e9, incluido el c\u00f3digo malicioso.<\/p>\n<figure id=\"attachment_151808\" aria-describedby=\"caption-attachment-151808\" style=\"width: 900px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151808 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-809849-151774-4.png\" alt=\"Diagrama de flujo que detalla las interacciones entre las operaciones HttpServlet. Comienza con 'doPut' manejando una solicitud y una respuesta, comprobando la viabilidad y el rango antes de decidir ejecutar 'executePartialPut' o 'write req, save the file'. Otra rama muestra 'replacePartialPut' gestionando una solicitud de cadena, creando un archivo temporal y verificando el objeto del archivo, as\u00ed como escribiendo la sesi\u00f3n en el objeto del archivo.\" width=\"900\" height=\"848\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-809849-151774-4.png 2048w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-809849-151774-4-467x440.png 467w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-809849-151774-4-743x700.png 743w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-809849-151774-4-768x723.png 768w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-809849-151774-4-1536x1447.png 1536w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><figcaption id=\"caption-attachment-151808\" class=\"wp-caption-text\">Figura 4. Primer paso: de PUT a escribir un archivo.<\/figcaption><\/figure>\n<ul>\n<li>Si el indicador de solo lectura (<span style=\"font-family: 'courier new', courier, monospace;\">readonly<\/span>) no est\u00e1 activado, Tomcat tambi\u00e9n comprobar\u00e1 el campo <span style=\"font-family: 'courier new', courier, monospace;\">Content-Range<\/span> en el encabezado HTTP.<\/li>\n<li>Si la solicitud carece de encabezado <span style=\"font-family: 'courier new', courier, monospace;\">Content-Range<\/span>, Tomcat finaliza el proceso.<\/li>\n<li>Si la solicitud tiene un encabezado <span style=\"font-family: 'courier new', courier, monospace;\">Content-Range<\/span>, Tomcat guarda los datos de sesi\u00f3n de la solicitud HTTP PUT, en este caso <span style=\"font-family: 'courier new', courier, monospace;\">gopan.session<\/span>, en dos ubicaciones, como se muestra en la Figura\u00a05.\n<ul>\n<li>El primero se guarda como un archivo de cach\u00e9 normal en <span style=\"font-family: 'courier new', courier, monospace;\">$TOMCAT_HOME\/webapps\/ROOT\/<\/span> sin el punto inicial.<\/li>\n<li>El segundo se guarda como un archivo temporal con un punto inicial en el directorio de trabajo en <span style=\"font-family: 'courier new', courier, monospace;\">$TOMCAT_HOME\/work\/Catalina\/localhost\/ROOT\/<\/span>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<figure id=\"attachment_151819\" aria-describedby=\"caption-attachment-151819\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151819 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-813024-151774-5.png\" alt=\"Captura de pantalla de una estructura de directorios en un IDE, destacando la instalaci\u00f3n de Apache Tomcat con archivos bajo el directorio de trabajo. Directorio ra\u00edz de la instalaci\u00f3n de Tomcat. Archivo de sesi\u00f3n sin punto inicial en el nombre, almacenado como archivo normal en el directorio de cach\u00e9 actual. Archivo de sesi\u00f3n con punto inicial en el nombre, almacenado como archivo temporal en el directorio de trabajo.\" width=\"800\" height=\"964\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-813024-151774-5.png 1699w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-813024-151774-5-365x440.png 365w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-813024-151774-5-581x700.png 581w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-813024-151774-5-768x926.png 768w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-813024-151774-5-1274x1536.png 1274w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-151819\" class=\"wp-caption-text\">Figura 5. Archivo de sesi\u00f3n en cach\u00e9.<\/figcaption><\/figure>\n<p>Significativamente, cuando Tomcat restaura una sesi\u00f3n, tambi\u00e9n carga el archivo de sesi\u00f3n en cach\u00e9 desde la misma carpeta de trabajo.<\/p>\n<p>En la Figuras\u00a06 y 7, se muestran segmentos de c\u00f3digo del servlet Java predeterminado que Tomcat utiliza para cargar los archivos de sesi\u00f3n en cach\u00e9 al restaurar una sesi\u00f3n en <span style=\"font-family: 'courier new', courier, monospace;\">java\/org\/apache\/catalina\/servlets\/DefaultServlet.java<\/span>. Los comentarios en amarillo describen las acciones realizadas por el c\u00f3digo.<\/p>\n<figure id=\"attachment_151830\" aria-describedby=\"caption-attachment-151830\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151830 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-817926-151774-6.png\" alt=\"Captura de pantalla de un programa Java que muestra c\u00f3digo relacionado con el manejo de solicitudes y respuestas del servidor HTTP.\" width=\"800\" height=\"947\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-817926-151774-6.png 1248w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-817926-151774-6-372x440.png 372w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-817926-151774-6-591x700.png 591w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-817926-151774-6-768x910.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-151830\" class=\"wp-caption-text\">Figura\u00a06. Primer segmento de c\u00f3digo del servlet Java por defecto de Apache utilizado por Tomcat.<\/figcaption><\/figure>\n<figure id=\"attachment_151841\" aria-describedby=\"caption-attachment-151841\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151841 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-820314-151774-7.png\" alt=\"Captura de pantalla que muestra una secci\u00f3n de c\u00f3digo de programaci\u00f3n, visualizada en un editor de texto con sintaxis resaltada.\" width=\"800\" height=\"1201\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-820314-151774-7.png 1248w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-820314-151774-7-293x440.png 293w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-820314-151774-7-466x700.png 466w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-820314-151774-7-768x1153.png 768w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-820314-151774-7-1023x1536.png 1023w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-151841\" class=\"wp-caption-text\">Figura 7. Segundo segmento de c\u00f3digo del servlet Java por defecto de Apache utilizado por Tomcat.<\/figcaption><\/figure>\n<h5><a id=\"post-151774-_heading=h.suokmew3ty1c\"><\/a>C\u00f3mo se desencadena la vulnerabilidad mediante una solicitud HTTP<\/h5>\n<p>Cuando Tomcat recibe una solicitud HTTP con un ID de sesi\u00f3n, si la persistencia de sesi\u00f3n est\u00e1 habilitada en la configuraci\u00f3n, <a href=\"https:\/\/github.com\/PaloAltoNetworks\/Unit42-timely-threat-intel\/blob\/main\/2025-03-14-Testing-CVE-2025-24813.md\" target=\"_blank\" rel=\"noopener\">intentar\u00e1 encontrar la sesi\u00f3n en la memoria<\/a>. Si Tomcat no puede encontrar la sesi\u00f3n en la memoria, restaurar\u00e1 la sesi\u00f3n desde el archivo de cach\u00e9 guardado. En ese momento, Tomcat deserializa el archivo de sesi\u00f3n, como se muestra en la Figura\u00a08.<\/p>\n<figure id=\"attachment_151852\" aria-describedby=\"caption-attachment-151852\" style=\"width: 900px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151852 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-822966-151774-8.png\" alt=\"Diagrama de flujo que representa los procesos de gesti\u00f3n de sesiones. Incluye funciones como findSession, swapIn, loadSessionFromStore y load, con detalles sobre pasos como comprobar si la sesi\u00f3n est\u00e1 en memoria, cargar desde el almac\u00e9n y deserializar el contenido.\" width=\"900\" height=\"764\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-822966-151774-8.png 2048w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-822966-151774-8-518x440.png 518w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-822966-151774-8-824x700.png 824w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-822966-151774-8-768x652.png 768w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-822966-151774-8-1536x1304.png 1536w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><figcaption id=\"caption-attachment-151852\" class=\"wp-caption-text\">Figura\u00a08. Segundo paso: de sessionID a la deserializaci\u00f3n.<\/figcaption><\/figure>\n<p>En la Figura\u00a08, se ilustra el flujo de gesti\u00f3n de sesiones de Tomcat. El c\u00f3digo que localiza las sesiones, las carga desde el disco y deserializa su contenido se implementa en los siguientes archivos:<\/p>\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">java\/org\/apache\/catalina\/session\/PersistentManagerBase.java<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">java\/org\/apache\/catalina\/Store.java<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">java\/org\/apache\/catalina\/session\/FileStore.java<\/span><\/li>\n<\/ul>\n<p>En la Figura 9, se muestra un segmento de c\u00f3digo de <span style=\"font-family: 'courier new', courier, monospace;\">java\/org\/apache\/catalina\/session\/PersistentManagerBase.java<\/span> que dirige a Tomcat a encontrar un archivo para los datos de la sesi\u00f3n, si estos datos no est\u00e1n disponibles en la memoria.<\/p>\n<figure id=\"attachment_151863\" aria-describedby=\"caption-attachment-151863\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151863 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-825874-151774-9.png\" alt=\"Captura de pantalla de un c\u00f3digo inform\u00e1tico en Java. El c\u00f3digo incluye un m\u00e9todo llamado findSession con comentarios que explican partes de la l\u00f3gica del c\u00f3digo relacionadas con la comprobaci\u00f3n de la disponibilidad de la sesi\u00f3n en memoria y su recuperaci\u00f3n de un archivo si no se encuentra.\" width=\"1000\" height=\"405\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-825874-151774-9.png 1248w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-825874-151774-9-786x319.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-825874-151774-9-768x311.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-151863\" class=\"wp-caption-text\">Figura 9. Segmento de c\u00f3digo de <span style=\"font-family: 'courier new', courier, monospace;\">PersistentManagerBase.java<\/span> para encontrar los datos de sesi\u00f3n como un archivo, si no est\u00e1n en la memoria.<\/figcaption><\/figure>\n<p>En las Figuras\u00a010 y 11, se muestran segmentos de c\u00f3digo del mismo archivo <span style=\"font-family: 'courier new', courier, monospace;\">PersistentManagerBase.java<\/span> que ilustran c\u00f3mo carga los datos de la sesi\u00f3n desde un archivo de cach\u00e9 guardado.<\/p>\n<figure id=\"attachment_151874\" aria-describedby=\"caption-attachment-151874\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151874 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-827764-151774-10.png\" alt=\"Captura de pantalla de c\u00f3digo inform\u00e1tico que muestra la sintaxis para la gesti\u00f3n de sesiones y el manejo de excepciones.\" width=\"1000\" height=\"550\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-827764-151774-10.png 1248w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-827764-151774-10-786x432.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-827764-151774-10-768x422.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-151874\" class=\"wp-caption-text\">Figura 10. Segmento de c\u00f3digo de <span style=\"font-family: 'courier new', courier, monospace;\">PersistentManagerBase.java<\/span> para cargar la sesi\u00f3n desde el archivo (1 de 2).<\/figcaption><\/figure>\n<figure id=\"attachment_151885\" aria-describedby=\"caption-attachment-151885\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151885 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-830725-151774-11.png\" alt=\"Captura de pantalla de un fragmento de c\u00f3digo que muestra un m\u00e9todo llamado 'loadSessionFromStore'. El c\u00f3digo incluye la gesti\u00f3n de excepciones y el registro de mensajes de error.\" width=\"1000\" height=\"405\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-830725-151774-11.png 1248w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-830725-151774-11-786x319.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-830725-151774-11-768x311.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-151885\" class=\"wp-caption-text\">Figura 11. Segmento de c\u00f3digo de <span style=\"font-family: 'courier new', courier, monospace;\">PersistentManagerBase.java<\/span> para cargar la sesi\u00f3n desde el archivo (2 de 2).<\/figcaption><\/figure>\n<p>Como se muestra en la Figura\u00a011, <span style=\"font-family: 'courier new', courier, monospace;\">store.load(id)<\/span> desencadena la deserializaci\u00f3n, despertando el c\u00f3digo malicioso previamente incrustado en el archivo por el atacante. Esto resulta en la ejecuci\u00f3n de c\u00f3digo arbitrario.<\/p>\n<p>La revisi\u00f3n de este c\u00f3digo fuente revela, en primer lugar, c\u00f3mo Tomcat guarda los datos de la sesi\u00f3n de una solicitud HTTP PUT, un proceso mediante el cual un atacante puede almacenar c\u00f3digo malicioso. Esta revisi\u00f3n tambi\u00e9n proporciona informaci\u00f3n sobre c\u00f3mo un exploit para la vulnerabilidad CVE-2025-24813 puede desencadenarse con una sola solicitud HTTP GET de seguimiento.<\/p>\n<p>Sin embargo, Tomcat no es el \u00fanico software de Apache para el que hemos visto intentos de ataque en el entorno real. Tambi\u00e9n hemos observado intentos de explotaci\u00f3n de dos vulnerabilidades en Apache Camel.<\/p>\n<h2><a id=\"post-151774-_heading=h.h8vkw8uyxmp4\"><\/a>CVE-2025-27636 y CVE-2025-29891: Apache Camel<\/h2>\n<h3><a id=\"post-151774-_heading=h.6k7z5hwuhe56\"><\/a>Descripci\u00f3n general de Apache Camel<\/h3>\n<p>Apache Camel es un marco de integraci\u00f3n de c\u00f3digo abierto que permite a los desarrolladores conectar distintos sistemas de forma fiable y escalable. Con Camel, los desarrolladores pueden establecer reglas de enrutamiento y mediaci\u00f3n en varios lenguajes espec\u00edficos del dominio con el fin de integrar diversos sistemas y aplicaciones. Apache Camel es compatible con una amplia gama de protocolos y tecnolog\u00edas.<\/p>\n<p>La mayor\u00eda de los gestores de mensajes de Camel se proporcionan como paquetes Java, lo que le permite al desarrollador seleccionar qu\u00e9 paquetes incluir en su producto.<\/p>\n<h3><a id=\"post-151774-_heading=h.3557hpfu24dr\"><\/a>Detalles de la explotaci\u00f3n<\/h3>\n<p>Ya sea cifrado o sin cifrar, HTTP es un m\u00e9todo habitual para enviar datos a trav\u00e9s de Internet. Si bien Camel utiliza varios tipos de componentes HTTP, como <a href=\"https:\/\/camel.apache.org\/components\/4.10.x\/jetty-component.html\" target=\"_blank\" rel=\"noopener\">Jetty<\/a> y <a href=\"https:\/\/camel.apache.org\/components\/4.10.x\/netty-component.html\" target=\"_blank\" rel=\"noopener\">Netty<\/a>, en \u00faltima instancia enruta los mensajes HTTP analizados de vuelta a sus componentes centrales, conocidos como <a href=\"https:\/\/camel.apache.org\/camel-core\/\" target=\"_blank\" rel=\"noopener\">camel-core<\/a>, para que se realice su posterior procesamiento.<\/p>\n<p>Con el prop\u00f3sito de facilitar el intercambio de datos entre Camel y sus componentes HTTP, como Jetty y Netty, los desarrolladores idearon un m\u00e9todo que utiliza pares clave-valor para almacenar informaci\u00f3n contextual importante, como el c\u00f3digo de respuesta HTTP. Dado que los encabezados HTTP se utilizan en el procesamiento, Camel tambi\u00e9n almacena los encabezados HTTP dentro del mismo par clave-valor. Para evitar conflictos entre la informaci\u00f3n contextual interna y los datos externos, los desarrolladores de Camel a\u00f1adieron un prefijo <span style=\"font-family: 'courier new', courier, monospace;\">Camel<\/span> a todas las claves contextuales internas e implementaron un filtro para evitar que los encabezados externos causaran problemas (Figura\u00a012).<\/p>\n<figure id=\"attachment_151896\" aria-describedby=\"caption-attachment-151896\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151896 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-832690-151774-12.png\" alt=\"Diagrama que muestra dos secciones denominadas HTTP Headers y Camel Headers, cada una de las cuales contiene ejemplos de nombres de encabezado espec\u00edficos como User-Agent, Host, Accept, CamelExecCommandExecutable y CamelHttpResponseCode.\" width=\"1000\" height=\"536\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-832690-151774-12.png 2048w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-832690-151774-12-786x421.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-832690-151774-12-1306x700.png 1306w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-832690-151774-12-768x412.png 768w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-832690-151774-12-1536x824.png 1536w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-151896\" class=\"wp-caption-text\">Figura 12. Encabezados HTTP normales comparados con los encabezados HTTP de Apache Camel.<\/figcaption><\/figure>\n<p>Sin embargo, dado que el filtro distingue entre may\u00fasculas y min\u00fasculas, un atacante podr\u00eda eludirlo alterando las may\u00fasculas y min\u00fasculas de los encabezados.<\/p>\n<h3><a id=\"post-151774-_heading=h.w0slthu8s59z\"><\/a>An\u00e1lisis del c\u00f3digo fuente<\/h3>\n<p>Por defecto, Camel registra el gestor de filtros de encabezado predeterminado. Pide al filtro que ignore todas las l\u00edneas de encabezado que empiecen con <span style=\"font-family: 'courier new', courier, monospace;\">Camel, camel<\/span> y <span style=\"font-family: 'courier new', courier, monospace;\">org.apache.camel<\/span>. El c\u00f3digo para esto est\u00e1 en <span style=\"font-family: 'courier new', courier, monospace;\">components\/camel-http-base\/src\/main\/java\/org\/apache\/camel\/http\/base\/HttpHeaderFilterStrategy.java<\/span>, y en la Figura\u00a013 se muestra el segmento aplicable.<\/p>\n<figure id=\"attachment_151907\" aria-describedby=\"caption-attachment-151907\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151907 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-835329-151774-13.png\" alt=\"Imagen de un fragmento de c\u00f3digo llamado HttpHeaderFilterStrategy, que muestra m\u00e9todos relacionados con el filtrado de encabezados HTTP. Incluye comentarios de c\u00f3digo y elementos como condiciones de filtro que especifican el uso de camel case y nombres de dominio.\" width=\"800\" height=\"317\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-835329-151774-13.png 1222w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-835329-151774-13-786x311.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-835329-151774-13-768x304.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-151907\" class=\"wp-caption-text\">Figura 13. Segmento de c\u00f3digo de <span style=\"font-family: 'courier new', courier, monospace;\">HttpHeaderFilterStrategy.java<\/span> para ignorar l\u00edneas de encabezado espec\u00edficas.<\/figcaption><\/figure>\n<p>Camel enumera los encabezados de las solicitudes HTTP, ejecuta la funci\u00f3n <span style=\"font-family: 'courier new', courier, monospace;\">applyFilterToExternalHeaders<\/span> y escribe los encabezados en un mapa interno utilizando <span style=\"font-family: 'courier new', courier, monospace;\">components\/camel-http-common\/src\/main\/java\/org\/apache\/camel\/http\/common\/DefaultHttpBinding.java<\/span>, como se muestra en la Figura\u00a014.<\/p>\n<figure id=\"attachment_151918\" aria-describedby=\"caption-attachment-151918\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151918 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-837375-151774-14.png\" alt=\"Captura de pantalla de un fragmento de c\u00f3digo inform\u00e1tico que incluye c\u00f3digo para leer encabezados HTTP en una solicitud servlet, con comentarios y sentencias condicionales.\" width=\"800\" height=\"530\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-837375-151774-14.png 1270w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-837375-151774-14-664x440.png 664w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-837375-151774-14-1056x700.png 1056w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-837375-151774-14-768x509.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-151918\" class=\"wp-caption-text\">Figura 14. Segmento de c\u00f3digo de <span style=\"font-family: 'courier new', courier, monospace;\">DefaultHttpBinding.java<\/span>.<\/figcaption><\/figure>\n<p>La l\u00f3gica de filtrado de encabezados realiza diferentes combinaciones en funci\u00f3n de la configuraci\u00f3n de Camel. Por defecto, Camel solo utiliza <span style=\"font-family: 'courier new', courier, monospace;\">tryHeaderMatch<\/span> para comprobar \u00fanicamente el principio del encabezado. Esto se hace a trav\u00e9s de <span style=\"font-family: 'courier new', courier, monospace;\">core\/camel-support\/src\/main\/java\/org\/apache\/camel\/support\/DefaultHeaderFilterStrategy.java<\/span>, como se muestra en la Figura\u00a015.<\/p>\n<figure id=\"attachment_151929\" aria-describedby=\"caption-attachment-151929\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151929 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-839741-151774-15.png\" alt=\"Captura de pantalla del c\u00f3digo para gestionar los filtros de encabezado HTTP. tryHeaderMatch est\u00e1 subrayado con rojo y marcado con una flecha roja.\" width=\"800\" height=\"837\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-839741-151774-15.png 1268w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-839741-151774-15-421x440.png 421w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-839741-151774-15-669x700.png 669w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-839741-151774-15-768x803.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-151929\" class=\"wp-caption-text\">Figura 15. Segmento de c\u00f3digo de <span style=\"font-family: 'courier new', courier, monospace;\">DefaultHeaderFilterStrategy.java<\/span> que muestra <span style=\"font-family: 'courier new', courier, monospace;\">tryHeaderMatch<\/span>.<\/figcaption><\/figure>\n<p>Suponiendo que un atacante anula el encabezado <span style=\"font-family: 'courier new', courier, monospace;\">CAmelExecCommandExecutable<\/span> utilizando una A may\u00fascula en la palabra <span style=\"font-family: 'courier new', courier, monospace;\">CAmel<\/span>, y el desarrollador est\u00e1 utilizando el paquete <span style=\"font-family: 'courier new', courier, monospace;\">camel-exec<\/span>, <span style=\"font-family: 'courier new', courier, monospace;\">camel-exec<\/span> leer\u00e1 el valor y lo ejecutar\u00e1 a trav\u00e9s de <span style=\"font-family: 'courier new', courier, monospace;\">components\/camel-exec\/src\/main\/java\/org\/apache\/camel\/component\/exec\/impl\/DefaultExecBinding.java<\/span>, como se muestra en la Figura\u00a016 a continuaci\u00f3n.<\/p>\n<figure id=\"attachment_151940\" aria-describedby=\"caption-attachment-151940\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151940 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-842914-151774-16.png\" alt=\"Captura de pantalla de c\u00f3digo del proyecto Apache Camel con la clase DefaultExecBinding, que incluye implementaciones de m\u00e9todos y gesti\u00f3n de par\u00e1metros relacionados con la ejecuci\u00f3n de comandos.\" width=\"800\" height=\"306\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-842914-151774-16.png 1188w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-842914-151774-16-786x300.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-842914-151774-16-768x293.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-151940\" class=\"wp-caption-text\">Figura 16. Segmento de c\u00f3digo de <span style=\"font-family: 'courier new', courier, monospace;\">DefaultExecBinding.java<\/span>.<\/figcaption><\/figure>\n<p>Si un desarrollador ha configurado este endpoint para ejecutar un ejecutable benigno, el atacante podr\u00eda sustituir el endpoint por un comando peligroso mediante un shell inverso. El atacante puede, potencialmente, obtener un shell inverso a trav\u00e9s de la ejecuci\u00f3n remota de comandos.<\/p>\n<h2><a id=\"post-151774-_heading=h.hap4hxaot0mf\"><\/a>Telemetr\u00eda<\/h2>\n<p>Durante marzo de 2025, nuestra telemetr\u00eda hab\u00eda identificado 125,856\u00a0escaneos, sondas o intentos de usar exploits procedentes de m\u00e1s de 70\u00a0pa\u00edses para la vulnerabilidad CVE-2025-24813 de Tomcat y las vulnerabilidades CVE-2025-27636 y CVE-2025-29891 de Camel. Como muestra el an\u00e1lisis de los datos del desencadenante en la Figura\u00a017, la frecuencia de esta actividad se dispar\u00f3 inmediatamente despu\u00e9s de que se anunciaran estos exploits a mediados de marzo de 2025, alcanzando su punto m\u00e1ximo en la primera semana.<\/p>\n<p>Los datos indican adem\u00e1s la presencia tanto de esc\u00e1neres autom\u00e1ticos como de exploits activos en el entorno real.<\/p>\n<figure id=\"attachment_151951\" aria-describedby=\"caption-attachment-151951\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151951 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/chart-3.png\" alt=\"Gr\u00e1fico lineal que representa el n\u00famero de disparadores a lo largo del tiempo. El gr\u00e1fico muestra en el eje\u00a0x las fechas comprendidas entre el 2025-03-16 y el 2025-03-30, con un aumento inicial del n\u00famero de disparadores, un m\u00e1ximo a mitad del per\u00edodo y un descenso en la fecha final. Conjunto de logos de Unit\u00a042 y Palo Alto Networks.\" width=\"1000\" height=\"390\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/chart-3.png 2048w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/chart-3-786x307.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/chart-3-1794x700.png 1794w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/chart-3-768x300.png 768w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/chart-3-1536x599.png 1536w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-151951\" class=\"wp-caption-text\">Figura 17. Detecci\u00f3n de actividad de exploit en marzo de 2025.<\/figcaption><\/figure>\n<h3><a id=\"post-151774-_heading=h.f4swl8mzlpm\"><\/a>Carga \u00fatil de los intentos de usar exploits<\/h3>\n<p>Hemos capturado las cargas \u00fatiles que los atacantes han utilizado hasta ahora en estos escaneos, sondeos e intentos de usar exploits.<\/p>\n<p>En la Figura\u00a018, se muestra un ejemplo de la solicitud HTTP PUT inicial para un intento de uso de exploit de la vulnerabilidad CVE-2025-24813 de Apache Tomcat. Este tipo de actividad es un escaneo o un sondeo para determinar si un servidor est\u00e1 ejecutando una versi\u00f3n vulnerable de Tomcat.<\/p>\n<figure id=\"attachment_151962\" aria-describedby=\"caption-attachment-151962\" style=\"width: 700px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151962 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-848754-151774-18.png\" alt=\"Captura de pantalla de una solicitud HTTP PUT que muestra los encabezados y parte del c\u00f3digo Java relacionado con las clases HashMap y URL. Parte de la informaci\u00f3n se ha suprimido por motivos de privacidad.\" width=\"700\" height=\"241\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-848754-151774-18.png 1322w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-848754-151774-18-786x271.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-848754-151774-18-768x265.png 768w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption id=\"caption-attachment-151962\" class=\"wp-caption-text\">Figura\u00a018. Solicitud HTTP PUT para exploit de CVE-2025-24813.<\/figcaption><\/figure>\n<p><a id=\"post-151774-_heading=h.2vi1deb02dny\"><\/a> Si tiene \u00e9xito, el exploit de la Figura\u00a020 hace que el servidor v\u00edctima intente ponerse en contacto con un servidor de pruebas de seguridad de aplicaciones fuera de banda (OAST).<\/p>\n<p>En la Figura\u00a019, se muestra la solicitud HTTP de un exploit de la vulnerabilidad CVE-2025-27636 de Apache Camel. Si tiene \u00e9xito, esto har\u00eda que el servidor ejecutara un comando echo. Es una forma de probar un servidor que ejecuta Apache Camel si un atacante ya tiene acceso y puede ver los resultados de un comando echo.<\/p>\n<figure id=\"attachment_151973\" aria-describedby=\"caption-attachment-151973\" style=\"width: 500px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151973 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-850847-151774-19.png\" alt=\"Captura de pantalla de una solicitud HTTP GET con encabezados visibles, incluidos Host, User-Agent establecido en curl\/7.61.1 y Accept que admite cualquier tipo, seguido de un intento de ejecuci\u00f3n de comando. Se ha suprimido parte de la informaci\u00f3n. \" width=\"500\" height=\"113\" \/><figcaption id=\"caption-attachment-151973\" class=\"wp-caption-text\">Figura 19. Solicitud HTTP del exploit de Apache Camel para CVE-2025-27636.<\/figcaption><\/figure>\n<p><a id=\"post-151774-_heading=h.9iuxkwlpo0xs\"><\/a> En la Figura\u00a020, se muestra la solicitud HTTP de un exploit de la vulnerabilidad CVE-2025-29891 de Apache Camel. Al igual que el intento de usar un exploit para Apache Tomcat que se muestra en la Figura\u00a020, este exploit para Apache Camel pedir\u00eda al servidor vulnerable que se contactara con un servidor OAST.<\/p>\n<figure id=\"attachment_151984\" aria-describedby=\"caption-attachment-151984\" style=\"width: 700px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151984 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-852742-151774-20.png\" alt=\"Captura de pantalla que muestra un ejemplo de solicitud GET y POST con la URL parcialmente visible como &quot;http:\/\/&quot;. Parte de la informaci\u00f3n est\u00e1 suprimida. \" width=\"700\" height=\"74\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-852742-151774-20.png 1644w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-852742-151774-20-786x83.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-852742-151774-20-768x81.png 768w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-852742-151774-20-1536x163.png 1536w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption id=\"caption-attachment-151984\" class=\"wp-caption-text\">Figura 20. Solicitud HTTP del exploit de Apache Camel para CVE-2025-29891.<\/figcaption><\/figure>\n<h3><a id=\"post-151774-_heading=h.a347ag4us5s0\"><\/a>Exploit CVE-2025-24813 en el entorno real<\/h3>\n<p>Desde que publicamos nuestra cobertura de esta vulnerabilidad, hemos observado 7,859\u00a0intentos de usar exploits para la vulnerabilidad CVE-2025-24813 de Apache Tomcat.<\/p>\n<p>En esta secci\u00f3n, analizamos esta actividad desde dos perspectivas: la longitud del nombre de sesi\u00f3n y el valor del encabezado <span style=\"font-family: 'courier new', courier, monospace;\">Content-Range<\/span>.<\/p>\n<h4><a id=\"post-151774-_heading=h.xe6ym0fw4o9h\"><\/a>Longitud del nombre de sesi\u00f3n de Tomcat<\/h4>\n<p>Como se\u00f1alamos en el an\u00e1lisis anterior, los exploits para CVE-2025-24813 utilizan un nombre anexado con <span style=\"font-family: 'courier new', courier, monospace;\">.session<\/span> en la solicitud HTTP inicial. Este archivo <span style=\"font-family: 'courier new', courier, monospace;\">.session<\/span> contiene el c\u00f3digo que el host vulnerable ejecutar\u00e1 si el exploit tiene \u00e9xito.<\/p>\n<p>La mayor\u00eda de los prefijos de estos nombres de sesi\u00f3n utilizan menos de 10\u00a0caracteres. Nuestra telemetr\u00eda revela que los prefijos m\u00e1s comunes utilizan 6\u00a0caracteres como nombre de sesi\u00f3n, como se muestra en la Figura\u00a021.<\/p>\n<figure id=\"attachment_151995\" aria-describedby=\"caption-attachment-151995\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-151995 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-854789-151774-21.png\" alt=\"Gr\u00e1fico de barras que muestra el n\u00famero de caracteres de los nombres de sesi\u00f3n. El eje\u00a0x representa el recuento de nombres de sesi\u00f3n, y el eje\u00a0y enumera rangos de recuento de caracteres desde menos de 4 hasta 10 o m\u00e1s. Conjunto de logos de Unit\u00a042 y Palo Alto Networks.\" width=\"1000\" height=\"542\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-854789-151774-21.png 2048w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-854789-151774-21-786x426.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-854789-151774-21-1290x700.png 1290w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-854789-151774-21-768x417.png 768w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-854789-151774-21-1536x833.png 1536w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-151995\" class=\"wp-caption-text\">Figura 21. Tendencias sobre la longitud del nombre de sesi\u00f3n en los intentos de exploit CVE-2025-24813.<\/figcaption><\/figure>\n<p>Observamos este patr\u00f3n de longitud de 6\u00a0caracteres en m\u00e1s de 6,000\u00a0detecciones. \u00bfPor qu\u00e9 la gran mayor\u00eda de esta actividad de exploits utiliza un nombre de sesi\u00f3n con una cadena de 6\u00a0caracteres? Este patr\u00f3n de actividad se correlaciona con el encabezado <span style=\"font-family: 'courier new', courier, monospace;\">Content-Range.<\/span><\/p>\n<h4><a id=\"post-151774-_heading=h.9ejal44livny\"><\/a>Encabezado Content-Range de Tomcat<\/h4>\n<p>Como se\u00f1alamos en el an\u00e1lisis del c\u00f3digo fuente de Tomcat para CVE-2025-24813, el encabezado HTTP para <span style=\"font-family: 'courier new', courier, monospace;\">Content-Range<\/span> es un factor importante en esta vulnerabilidad. En la Figura\u00a022, se agrupan los diferentes valores de <span style=\"font-family: 'courier new', courier, monospace;\">Content-Range<\/span>.<\/p>\n<figure id=\"attachment_152006\" aria-describedby=\"caption-attachment-152006\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-152006 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-857147-151774-22.png\" alt=\"Un gr\u00e1fico de barras horizontales que muestra los recuentos de diferentes rangos de bytes, con un recuento variable para cada categor\u00eda. Conjunto de logos de Unit\u00a042 y Palo Alto Networks.\" width=\"1000\" height=\"619\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-857147-151774-22.png 2048w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-857147-151774-22-711x440.png 711w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-857147-151774-22-1131x700.png 1131w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-857147-151774-22-768x476.png 768w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-857147-151774-22-1536x951.png 1536w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-152006\" class=\"wp-caption-text\">Figura 22. Tendencias en los valores de Content-Range vistos en los intentos de exploit CVE-2025-24813.<\/figcaption><\/figure>\n<p>Nuestra telemetr\u00eda revela que observamos el encabezado <span style=\"font-family: 'courier new', courier, monospace;\">Content-Range: bytes 0-452\/457<\/span> en m\u00e1s de 6,000\u00a0detecciones. Este hallazgo se correlaciona con el nombre de sesi\u00f3n de 6\u00a0caracteres.<\/p>\n<p>Estos dos hallazgos coinciden con el patr\u00f3n de una <a href=\"https:\/\/github.com\/projectdiscovery\/nuclei-templates\/blob\/99289657b8d7c150b1c716d43fc0458daff2bbbb\/http\/cves\/2025\/CVE-2025-24813.yaml#L54\" target=\"_blank\" rel=\"noopener\">plantilla CVE-2025-24813<\/a> para el <a href=\"https:\/\/github.com\/projectdiscovery\/nuclei\" target=\"_blank\" rel=\"noopener\">esc\u00e1ner Nuclei<\/a> disponible en GitHub. En la Figura\u00a023, se destaca la correlaci\u00f3n con nuestros resultados.<\/p>\n<figure id=\"attachment_152017\" aria-describedby=\"caption-attachment-152017\" style=\"width: 746px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-152017 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-860626-151774-23.png\" alt=\"Captura de pantalla de un editor de texto que muestra c\u00f3digo con l\u00edneas resaltadas relacionadas con una sesi\u00f3n HTTP y variables Python. Tres secciones destacadas con recuadros rojos. Son el nombre de archivo, PUT y Content-Range. \" width=\"746\" height=\"464\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-860626-151774-23.png 746w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/08\/word-image-860626-151774-23-707x440.png 707w\" sizes=\"(max-width: 746px) 100vw, 746px\" \/><figcaption id=\"caption-attachment-152017\" class=\"wp-caption-text\">Figura\u00a023. Segmento de la plantilla CVE-2025-24813 en el repositorio <a href=\"https:\/\/github.com\/projectdiscovery\/nuclei-templates\/blob\/99289657b8d7c150b1c716d43fc0458daff2bbbb\/http\/cves\/2025\/CVE-2025-24813.yaml#L54\" target=\"_blank\" rel=\"noopener\">nuclei-templates<\/a> de GitHub.<\/figcaption><\/figure>\n<p>Esto significa que un gran n\u00famero de los escaneos de CVE-2025-24813 que hemos visto hasta ahora han utilizado el esc\u00e1ner Nuclei. Esto tiene sentido, ya que Nuclei es un esc\u00e1ner disponible de manera gratuita bajo la licencia MIT que cualquiera puede utilizar. Es probable que tanto atacantes como defensores utilicen este esc\u00e1ner y esta plantilla para comprobar la vulnerabilidad.<\/p>\n<h2><a id=\"post-151774-_heading=h.8bdf1b3e2h2u\"><\/a>Conclusi\u00f3n<\/h2>\n<p>Las instancias vulnerables de Apache Tomcat que permiten escribir directorio (desactivado por defecto) y PUT parcial (activado por defecto) son vulnerables a CVE-2025-24813. Las instancias vulnerables de Apache Camel que utilizan componentes espec\u00edficos son vulnerables a CVE-2025-27636 y CVE-2025-29891.<\/p>\n<p>Estas vulnerabilidades presentan un riesgo de seguridad significativo debido a los fallos cr\u00edticos. Los atacantes pueden aprovecharse de ellas a trav\u00e9s de solicitudes HTTP espec\u00edficamente dise\u00f1adas.<\/p>\n<p>Estos exploits no solo permiten la posible ejecuci\u00f3n remota de c\u00f3digo, sino que tambi\u00e9n plantean amenazas m\u00e1s amplias, como la vulneraci\u00f3n de datos y el movimiento lateral dentro de la red. El uso del esc\u00e1ner Nuclei para comprobar esta vulnerabilidad subraya la facilidad con la que los adversarios menos cualificados pueden aprovechar estas vulnerabilidades, por lo que es crucial actuar de inmediato.<\/p>\n<h3><a id=\"post-151774-_heading=h.zaawuqqlhrft\"><\/a>Protecci\u00f3n y mitigaci\u00f3n de Palo Alto Networks<\/h3>\n<p>Los clientes de Palo Alto Networks est\u00e1n mejor protegidos frente a las amenazas mencionadas gracias a los siguientes productos:<\/p>\n<ul>\n<li>La suscripci\u00f3n del <a href=\"https:\/\/docs.paloaltonetworks.com\/ngfw\" target=\"_blank\" rel=\"noopener\">firewall de nueva generaci\u00f3n<\/a> con <a href=\"https:\/\/docs.paloaltonetworks.com\/advanced-threat-prevention\/administration\" target=\"_blank\" rel=\"noopener\">prevenci\u00f3n de amenazas avanzada<\/a> puede identificar y bloquear el tr\u00e1fico asociado, si se siguen las pr\u00e1cticas recomendadas, mediante la siguiente firma de prevenci\u00f3n de amenazas: 96,315<\/li>\n<li><a href=\"https:\/\/www.paloaltonetworks.com\/cortex\/cortex-xpanse\" target=\"_blank\" rel=\"noopener\">Cortex Xpanse<\/a> y el complemento ASM para <a href=\"https:\/\/www.paloaltonetworks.com\/cortex\/cortex-xsiam\" target=\"_blank\" rel=\"noopener\">Cortex XSIAM<\/a> pueden identificar servidores Apache Tomcat externos utilizando la regla de superficie de ataque \u201cServidor web Tomcat\u201d. Los clientes tambi\u00e9n pueden ver sus activos potencialmente afectados a trav\u00e9s del Centro de respuesta ante amenazas.<\/li>\n<\/ul>\n<p>Si cree que puede haber resultado vulnerado o tiene un problema urgente, p\u00f3ngase en contacto con el <a href=\"https:\/\/start.paloaltonetworks.com\/contact-unit42.html\" target=\"_blank\" rel=\"noopener\">equipo de respuesta ante incidentes de Unit\u00a042<\/a> o llame al:<\/p>\n<ul>\n<li>Norteam\u00e9rica: llamada gratuita: +1\u00a0(866)\u00a0486-4842 (866.4.UNIT42)<\/li>\n<li>Reino Unido: +44.20.3743.3660<\/li>\n<li>Europa y Oriente Medio: +31.20.299.3130<\/li>\n<li>Asia: +65.6983.8730<\/li>\n<li>Jap\u00f3n: +81.50.1790.0200<\/li>\n<li>Australia: +61.2.4062.7950<\/li>\n<li>India: 00080005045107<\/li>\n<\/ul>\n<p>Palo Alto Networks ha compartido estos resultados con nuestros compa\u00f1eros de Cyber Threat Alliance (CTA). Los miembros de CTA utilizan esta inteligencia para implementar r\u00e1pidamente medidas de protecci\u00f3n para sus clientes y desarticular sistem\u00e1ticamente a los ciberdelincuentes. Obtenga m\u00e1s informaci\u00f3n sobre <a href=\"https:\/\/www.cyberthreatalliance.org\" target=\"_blank\" rel=\"noopener\">Cyber Threat Alliance<\/a>.<\/p>\n<h2><a id=\"post-151774-_heading=h.790vtds8mg7f\"><\/a>Indicadores de vulneraci\u00f3n<\/h2>\n<h3><a id=\"post-151774-_heading=h.4ptcqnixwt8a\"><\/a>CVE-2025-24813<\/h3>\n<h4><a id=\"post-151774-_heading=h.uimq0uj2i5nw\"><\/a>Direcciones IP de origen observadas para CVE-2025-24813<\/h4>\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">54.193.62[.]84<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">96.113.95[.]10<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">209.189.232[.]134<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">162.241.149[.]101<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">167.172.67[.]75<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">100.65.135[.]245<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">138.197.82[.]147<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">123.16.159[.]102<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">193.53.40[.]18<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">91.208.206[.]203<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">212.56.34[.]85<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">195.164.49[.]70<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">185.91.127[.]9<\/span><\/li>\n<\/ul>\n<h4><a id=\"post-151774-_heading=h.7obhsqedozxx\"><\/a>URL de actividad - CVE-2025-24813<\/h4>\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">PUT \/qdigu\/session<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">PUT \/UlOLJo.session<\/span><\/li>\n<\/ul>\n<h4><a id=\"post-151774-_heading=h.g0yyeh5kw3tw\"><\/a>Hash SHA256 de las muestras de carga \u00fatil<\/h4>\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">6a9a0a3f0763a359737da801a48c7a0a7a75d6fa810418216628891893773540<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">6b7912e550c66688c65f8cf8651b638defc4dbeabae5f0f6a23fb20d98333f6b<\/span><\/li>\n<\/ul>\n<h3><a id=\"post-151774-_heading=h.lpubft1q3pcy\"><\/a>CVE-2025-27636, CVE-2025-29891<\/h3>\n<h4><a id=\"post-151774-_heading=h.emp5651fzd6q\"><\/a>Direcciones IP de origen observadas para CVE-2025-27636, CVE-2025-29891<\/h4>\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">30.153.178[.]49<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">54.147.173[.]17<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">54.120.8[.]214<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">139.87.112[.]169<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">139.87.112[.]115<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">64.39.98[.]52<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">139.87.112[.]98<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">139.87.113[.]24<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">64.39.98[.]139<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">54.96.66[.]57<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">138.197.82[.]147<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">22.85.196[.]34<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">64.39.98[.]245<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">64.39.98[.]9<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">54.120.8[.]207<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">130.212.99[.]156<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">139.87.112[.]121<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">139.87.113[.]26<\/span><\/li>\n<\/ul>\n<h4><a id=\"post-151774-_heading=h.aahziqu9zx5m\"><\/a>Encabezados de actividad para CVE-2025-27636, CVE-2025-29891<\/h4>\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">CAmelHttpResponseCode<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">CAmelExecCommandExecutable<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">CAmelExecCommandArgs<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">CAmelBeanMethodName<\/span><\/li>\n<\/ul>\n<h2><a id=\"post-151774-_heading=h.u4gt9ajz2zot\"><\/a>Recursos adicionales<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc9110.html#name-partial-put\" target=\"_blank\" rel=\"noopener\">RFC9110<\/a> - Editor de RFC<\/li>\n<li><a href=\"https:\/\/github.com\/apache\/tomcat\" target=\"_blank\" rel=\"noopener\">Apache Tomcat<\/a> - Apache Foundation<\/li>\n<li><a href=\"https:\/\/github.com\/apache\/camel\" target=\"_blank\" rel=\"noopener\">Apache Camel<\/a> - Apache Foundation<\/li>\n<li><a href=\"https:\/\/github.com\/projectdiscovery\/nuclei-templates\/\" target=\"_blank\" rel=\"noopener\">Plantillas de Nuclei<\/a> - ProjectDiscovery<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Analizamos CVE-2025-24813 (RCE mediante petici\u00f3n PUT parcial en Tomcat), CVE-2025-27636 y CVE-2025-29891 (RCE por secuestro de encabezados en Apache Camel).<\/p>\n","protected":false},"author":340,"featured_media":144823,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[8838,8856],"tags":[9460,9461,9462,9463,9464],"product_categories":[8922,8923,8924,8921,8932,8934,8935,8938,8890],"coauthors":[9250,9251,3736,2070],"class_list":["post-151774","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-threat-research-es-la","category-vulnerabilities-es-la","tag-apache-es-la","tag-cve-2025-24813-es-la","tag-cve-2025-27636-es-la","tag-cve-2025-29891-es-la","tag-remote-code-execution-es-la","product_categories-advanced-dns-security-es-la","product_categories-advanced-threat-prevention-es-la","product_categories-advanced-url-filtering-es-la","product_categories-cloud-delivered-security-services-es-la","product_categories-cortex-es-la","product_categories-cortex-xdr-es-la","product_categories-cortex-xsiam-es-la","product_categories-next-generation-firewall-es-la","product_categories-unit-42-incident-response-es-la"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v27.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Apache bajo an\u00e1lisis: PUT parcial de Tomcat y secuestro de encabezados de Camel<\/title>\n<meta name=\"description\" content=\"Analizamos CVE-2025-24813 (RCE mediante petici\u00f3n PUT parcial en Tomcat), CVE-2025-27636 y CVE-2025-29891 (RCE por secuestro de encabezados en Apache Camel).\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/\" \/>\n<meta property=\"og:locale\" content=\"es_LA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apache bajo an\u00e1lisis: PUT parcial de Tomcat y secuestro de encabezados de Camel\" \/>\n<meta property=\"og:description\" content=\"Analizamos CVE-2025-24813 (RCE mediante petici\u00f3n PUT parcial en Tomcat), CVE-2025-27636 y CVE-2025-29891 (RCE por secuestro de encabezados en Apache Camel).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/\" \/>\n<meta property=\"og:site_name\" content=\"Unit 42\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-03T20:02:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-14T22:01:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/07\/06_Vulnerabilities_1920x900.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jun Li, Qiang Liu, Yiheng An, Haozhe Zhang\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Apache bajo an\u00e1lisis: PUT parcial de Tomcat y secuestro de encabezados de Camel","description":"Analizamos CVE-2025-24813 (RCE mediante petici\u00f3n PUT parcial en Tomcat), CVE-2025-27636 y CVE-2025-29891 (RCE por secuestro de encabezados en Apache Camel).","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/","og_locale":"es_LA","og_type":"article","og_title":"Apache bajo an\u00e1lisis: PUT parcial de Tomcat y secuestro de encabezados de Camel","og_description":"Analizamos CVE-2025-24813 (RCE mediante petici\u00f3n PUT parcial en Tomcat), CVE-2025-27636 y CVE-2025-29891 (RCE por secuestro de encabezados en Apache Camel).","og_url":"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/","og_site_name":"Unit 42","article_published_time":"2025-07-03T20:02:40+00:00","article_modified_time":"2025-08-14T22:01:13+00:00","og_image":[{"width":1920,"height":900,"url":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/07\/06_Vulnerabilities_1920x900.jpg","type":"image\/jpeg"}],"author":"Jun Li, Qiang Liu, Yiheng An, Haozhe Zhang","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/#article","isPartOf":{"@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/"},"author":{"name":"Haozhe Zhang","@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/1a929af2b2a146305e9220d4ce89afa6"},"headline":"Apache bajo an\u00e1lisis: PUT parcial de Tomcat y secuestro de encabezados de Camel","datePublished":"2025-07-03T20:02:40+00:00","dateModified":"2025-08-14T22:01:13+00:00","mainEntityOfPage":{"@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/"},"wordCount":4004,"image":{"@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/#primaryimage"},"thumbnailUrl":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/07\/06_Vulnerabilities_1920x900.jpg","keywords":["Apache","CVE-2025-24813","CVE-2025-27636","CVE-2025-29891","Remote Code Execution"],"articleSection":["Investigaci\u00f3n de amenazas","Vulnerabilidades"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/","url":"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/","name":"Apache bajo an\u00e1lisis: PUT parcial de Tomcat y secuestro de encabezados de Camel","isPartOf":{"@id":"https:\/\/unit42.paloaltonetworks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/#primaryimage"},"image":{"@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/#primaryimage"},"thumbnailUrl":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/07\/06_Vulnerabilities_1920x900.jpg","datePublished":"2025-07-03T20:02:40+00:00","dateModified":"2025-08-14T22:01:13+00:00","author":{"@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/1a929af2b2a146305e9220d4ce89afa6"},"description":"Analizamos CVE-2025-24813 (RCE mediante petici\u00f3n PUT parcial en Tomcat), CVE-2025-27636 y CVE-2025-29891 (RCE por secuestro de encabezados en Apache Camel).","breadcrumb":{"@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/#primaryimage","url":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/07\/06_Vulnerabilities_1920x900.jpg","contentUrl":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/07\/06_Vulnerabilities_1920x900.jpg","width":1920,"height":900,"caption":"Pictorial representation of CVEs such as CVE-2025-24813, CVE-2025-27636, CVE-2025-29891. Digital illustration of the United States with glowing connections and data flows across a map, symbolizing network connectivity and information technology."},{"@type":"BreadcrumbList","@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/apache-cve-2025-24813-cve-2025-27636-cve-2025-29891\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/unit42.paloaltonetworks.com\/"},{"@type":"ListItem","position":2,"name":"Apache bajo an\u00e1lisis: PUT parcial de Tomcat y secuestro de encabezados de Camel"}]},{"@type":"WebSite","@id":"https:\/\/unit42.paloaltonetworks.com\/#website","url":"https:\/\/unit42.paloaltonetworks.com\/","name":"Unit 42","description":"Palo Alto Networks","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/unit42.paloaltonetworks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/1a929af2b2a146305e9220d4ce89afa6","name":"Haozhe Zhang","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/image\/4ffb3c2d260a0150fb91b3715442f8b3","url":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2018\/11\/unit-news-meta.svg","contentUrl":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2018\/11\/unit-news-meta.svg","caption":"Haozhe Zhang"},"jobTitle":"Principle Security Researcher","url":"https:\/\/unit42.paloaltonetworks.com\/es-la\/author\/haozhe-zhang\/"}]}},"_links":{"self":[{"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/posts\/151774","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/users\/340"}],"replies":[{"embeddable":true,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/comments?post=151774"}],"version-history":[{"count":1,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/posts\/151774\/revisions"}],"predecessor-version":[{"id":152029,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/posts\/151774\/revisions\/152029"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/media\/144823"}],"wp:attachment":[{"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/media?parent=151774"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/categories?post=151774"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/tags?post=151774"},{"taxonomy":"product_categories","embeddable":true,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/product_categories?post=151774"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/coauthors?post=151774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}