CVE-2025-66516: Apache Tika – Inyección XXE mediante PDF malicioso con acceso a archivos arbitrarios y SSRF

Apache Tika es un potente kit de herramientas de código abierto para el análisis de contenido, utilizado por aplicaciones empresariales para extraer metadatos y texto de una amplia gama de tipos de archivos, incluidos PDF, documentos de Microsoft Office y otros. Su uso generalizado como biblioteca de backend significa que una vulnerabilidad en Tika puede tener un impacto en cascada en innumerables aplicaciones que lo utilizan para el procesamiento de archivos y la ingesta de datos.

Esta vulnerabilidad es particularmente grave porque permite la divulgación de información no autenticada y el pivoteo de red (SSRF). Cualquier aplicación expuesta públicamente que utilice una versión vulnerable de Tika para procesar archivos cargados por los usuarios está en alto riesgo. Un atacante puede simplemente cargar un PDF especialmente diseñado para leer archivos confidenciales del lado del servidor, como archivos de credenciales y código fuente, o para realizar escaneos y ataques a servicios de red internos que no están directamente expuestos a Internet.

Fundamental: hay un exploit público disponible y las noticias reportan actividad de explotación activa en entornos reales. La complejidad de los componentes afectados (tika-core, tika-pdf-module, tika-parsers) aumenta la probabilidad de que los parches se apliquen de forma incompleta, dejando los sistemas expuestos. Las organizaciones deben tratar este problema como una amenaza crítica y urgente.

ProductoApache Tika
Fecha2025-12-06 00:33:00

Resumen técnico

La causa técnica de esta vulnerabilidad es una CWE-611: Restricción inadecuada de la referencia a entidades externas XML, comúnmente conocida como inyección XXE. El defecto existe dentro de la biblioteca central de Apache Tika (tika-core) durante el análisis de datos de XML Forms Architecture (XFA) que pueden estar incrustados en archivos PDF. El analizador XML responsable de gestionar los formularios XFA no deshabilita la resolución de entidades externas.

La cadena de ataque es la siguiente:

  1. Un atacante crea un archivo PDF malicioso que contiene un formulario XFA incrustado. Dentro de los datos XML de este formulario, el atacante incluye una DTD (Document Type Definition) maliciosa con una declaración de entidad externa.
  2. Esta entidad apunta a un recurso de archivo local (ej. file:///etc/passwd) o a un recurso de red interna.
  3. El atacante carga este PDF en una aplicación del lado del servidor que utiliza una versión vulnerable de Apache Tika para el procesamiento.
  4. Cuando el analizador PDF de Tika procesa el archivo, encuentra los datos XFA maliciosos, resuelve la entidad externa e incorpora el contenido del recurso solicitado (ej. el contenido de /etc/passwd) en la salida XML analizada, que luego puede ser exfiltrada por el atacante.

Un ejemplo conceptual de entidad maliciosa dentro de los datos XFA es:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
   <!ENTITY % xxe SYSTEM "file:///etc/shadow">
   %xxe;
]>
<root/>

Nota: este es un ejemplo conceptual, no un payload funcional.

Versiones afectadas:

  • tika-core: Versiones 1.13 hasta 3.2.1
  • tika-pdf-module: Versiones 2.0.0 hasta 3.2.1
  • tika-parsers: Versiones 1.13 hasta 1.28.5

La vulnerabilidad está corregida en las versiones posteriores. Debido a la compleja cadena de dependencias, es fundamental asegurarse de que la biblioteca tika-core subyacente esté actualizada.

Recomendaciones

  • Aplicar el parche inmediatamente: Actualiza todos los componentes de Apache Tika afectados a las versiones más recientes disponibles. Asegúrate de que la biblioteca subyacente tika-core esté actualizada más allá de la versión 3.2.1 y que tika-parsers esté actualizado más allá de la versión 1.28.5. Verifica las dependencias en los archivos de compilación del proyecto (pom.xml, build.gradle, etc.) para confirmar que se están desplegando las versiones correctas.

  • Mitigaciones:

    • Si no es posible aplicar el parche de inmediato, considera implementar un control temporal para rechazar las cargas de archivos PDF o enrutarlos a través de un entorno sandbox para su procesamiento.
    • Si la aplicación lo permite, configura programáticamente el analizador XML utilizado por Tika para deshabilitar explícitamente la resolución de entidades externas. Esto actúa como una defensa secundaria robusta.
    • Utiliza un Web Application Firewall (WAF) con reglas diseñadas para inspeccionar el contenido de los archivos, aunque detectar XXE dentro de formatos binarios complejos como los PDF puede ser poco fiable.

  • Investigación y monitoreo:

    • Monitorea los registros (logs) de la aplicación en busca de mensajes de error relacionados con el análisis XML, especialmente aquellos que contengan palabras clave como DOCTYPE, ENTITY o SYSTEM.
    • Examina el tráfico de red saliente desde los servidores de aplicaciones en busca de solicitudes inusuales hacia direcciones IP internas o URL externas que no formen parte de las actividades normales, ya que esto podría indicar actividad SSRF.
    • Realiza una auditoría de los directorios de carga de archivos para identificar PDF sospechosos, especialmente aquellos que son de tamaño pequeño pero que causan errores de procesamiento.

  • Respuesta a incidentes:

    • Si se sospecha de una vulneración, aísla inmediatamente el host de la red para evitar una mayor exfiltración de datos o movimientos laterales.
    • Asume que todos los secretos, credenciales y claves API almacenados o accesibles en el servidor comprometido han sido vulnerados e inicia los procedimientos de rotación.
    • Realiza un análisis forense del sistema aislado para determinar el alcance de la brecha e identificar qué archivos fueron accedidos.

  • Defensa en profundidad:

    • Ejecuta tu aplicación web con los privilegios de usuario más bajos posibles para limitar el impacto de una lectura arbitraria de archivos.
    • Implementa una segmentación de red estricta y reglas de firewall para evitar que los servidores web establezcan conexiones arbitrarias a servidores de bases de datos internos, consolas administrativas y otros recursos confidenciales.

[Callforaction-THREAT-Footer]