En enero de 2026, OPSWAT publicó un análisis de CVE-2025-66516, una vulnerabilidad crítica en Apache Tika provocada por un PDF malicioso que llegaba a un analizador de fondo. La solución fue sencilla: depurar el archivo antes de que llegara al analizador, de modo que este nunca viera la carga útil. Funcionó porque había un solo analizador, un solo tipo de archivo y una biblioteca conocida.
¿Y si el XML no fuera un PDF, sino un archivo de configuración importado a una plataforma de SSO (inicio de sesión único), una definición de flujo de trabajo enviada a un motor de automatización financiera o una carga útil de datos sanitarios procesada por un sistema de integración hospitalaria? Estos archivos circulan a diario entre organizaciones, contratistas, organismos reguladores y socios, y llegan a través de sistemas de transferencia gestionada de archivos y portales de socios como datos empresariales fiables. La mayoría de las soluciones de depuración nunca los inspeccionan.
El XML es el lenguaje de la industria, y ahí radica el problema
Los ataques XXE (entidad externa XML) en PDF y SVG siguen un patrón similar: un usuario sube un archivo; una biblioteca de fondo lo analiza; y el analizador ejecuta la carga útil. El punto de entrada es visible.
El XML industrial es diferente. Se trata de transferencias entre empresas, importaciones de configuraciones y cargas útiles de un sistema a otro procedentes de socios, organismos reguladores, contratistas y proveedores conocidos. Esa aparente legitimidad es precisamente la razón por la que eluden el escrutinio al que se someten las subidas a la web.
El XML forma parte del funcionamiento de numerosos sectores:
- Servicios financieros: los mensajes SWIFT, las instrucciones FIX (Financial Information eXchange) y los pagos ISO 20022 se transmiten en formato XML.
- Sanidad: HL7 (Health Level Seven) y FHIR (Fast Healthcare Interoperability Resources), los protocolos estándar para el intercambio de datos sanitarios, se basan en XML. Una entidad maliciosa presente en una carga útil FHIR puede pasar desapercibida en cualquier sistema que compruebe la estructura, pero no el DOCTYPE.
- TI empresarial: Las plataformas de identidad y de inicio de sesión único (SSO) importan archivos de configuración XML durante la integración, la migración y la incorporación. Una sola importación puede abarcar todas las aplicaciones que autentica la plataforma.
- OT: Los sistemas SCADA y de gestión energética intercambian datos en formatos XML definidos por las normas IEC 61968 y 61970, a menudo atravesando los límites entre las redes de TI y OT, donde los controles son mínimos.
En todos los casos, la carga útil no es un script ni una macro, sino que se encuentra en la capa de contenido del XML: una declaración DOCTYPE que hace referencia a una entidad externa que apunta a una ruta de archivo local o a un punto final interno. Cuando el analizador procesa el archivo, recupera ese contenido.
Aunque el archivo es válido desde el punto de vista estructural según la comprobación del esquema, su contenido requiere un nivel más profundo de depuración; por ejemplo, lo que declara el DOCTYPE o a dónde apunta la entidad.
Esto no es un problema heredado
La vulnerabilidad XXE se describió en 2003 y se incluyó en el Top 10 de OWASP en 2017, lo que a veces lleva a los equipos a considerarla resuelta. Los datos de 2025 y 2026 indican lo contrario, y los casos que realmente importan para la seguridad de los archivos son aquellos en los que la carga útil llega en forma de archivo.
- lxml (CVE-2026-41066): la configuración predeterminada del analizador en una biblioteca XML de Python muy utilizada permitía que código XML no fiable leyera archivos locales. lxml es la misma biblioteca que utiliza svglib para analizar archivos SVG (Scalable Vector Graphics); la ruta transmitida a través del archivo « OPSWAT » quedó demostrada en su entrada de blog de 2024 sobre SVG XXE. Al depurar el archivo, se elimina la entidad antes de que el analizador la detecte.
- Atlassian Crowd (CVE-2026-21569, CVSS 7,9 —Alto—): una plataforma de autenticación única (SSO) y de gestión de identidades. Una carga útil XML manipulada permite a un atacante acceder a archivos de forma local o remota, y la calificación «CVSS Scope:Changed» significa que, si el ataque tiene éxito, afecta a todas las aplicaciones que Crowd autentica. El XML llega como una importación de configuración o integración procedente de un socio o de un equipo de administrador.
- IBM Business Automation Workflow (CVE-2025-13096, CVSS 7.1 Alto): IBM BAW procesa archivos XML en flujos de trabajo como la concesión de préstamos y la tramitación de reclamaciones. La vulnerabilidad permite la divulgación de archivos y la falsificación de solicitudes del lado del servidor (SSRF, por sus siglas en inglés:Server-Side Request Forgery), lo que permite a un atacante acceder a terminales internos; además, la misma estructura DOCTYPE puede provocar la expansión de entidades para provocar un ataque de denegación de servicio (DoS). El XML llega a través de portales de socios procedentes de peritos, organismos reguladores e integradores.
Todo apunta a un formato común: un archivo XML empresarial de confianza que contiene una carga útil de tipo DOCTYPE y que llega a través de un flujo de trabajo establecido antes de llegar a un analizador sintáctico vulnerable.
Una aclaración sobre el alcance: en este blog se aborda el XXE que llega en forma de archivo. Los archivos XML y los formatos basados en XML, como SVG, PDF con XFA y archivos de Office, que pasan por un proceso de depuración, se reconstruyen sin problemas. Los casos relacionados con archivos son los más habituales: subidas de archivos, importaciones de configuraciones, intercambio de datos con socios y archivos adjuntos de correo electrónico. El XXE al que se accede a través del cuerpo sin procesar de una solicitud API o de una llamada de análisis sintáctico en el código no implica el tránsito de ningún archivo, por lo que no hay ninguna pasarela de desinfección de archivos en esa ruta.
Cómo gestiona la tecnología Deep CDR™ los archivos XML independientes
La tecnología Deep CDR™ es compatible con XML 1.0 y 1.1, además de otros formatos relacionados basados en XML, como ZEI, JNLP, TDS, RDF, BML, MPD y TTML, todo ello en un mismo motor.
En el caso de los archivos XML, las referencias que apuntan fuera del documento se rechazan de forma predeterminada, y el DOCTYPE y sus referencias a entidades externas no se conservan en el archivo reconstruido. Ninguno de estos comportamientos es una política que haya que identificar y ajustar. Siempre que el XML externo se procese a través del flujo de trabajo de depuración de MetaDefender Core™, la protección se aplica.

Además de esta eliminación predeterminada del DOCTYPE, los operadores disponen de controles adicionales que pueden configurar para adaptarlos a su entorno

- Eliminar macro: elimina las macros VBA codificadas en formatos de Office basados en XML
- Eliminar CDATA: cuatro opciones de política escalonadas, desde «No hacer nada» hasta «Eliminar todo», que permiten a los equipos controlar el grado de rigor con el que se gestionan las secciones CDATA en función de la sensibilidad del flujo de trabajo.
- Eliminar inyección: soluciona la inyección de XML y el JavaScript de la capa de contenido incrustado en los valores de los elementos
- Procesar datos codificados en Base64: gestiona cargas útiles codificadas incrustadas en valores XML, incluidos los patrones del esquema de URL de datos


Una protección relacionada cubre el otro extremo de la misma dirección. Las estructuras diseñadas para expandirse hasta agotar la memoria se detectan y se eliminan, de modo que un archivo pequeño no puede convertirse en uno enorme durante su procesamiento; de ahí que se les denomine «XML Bomb» (o «Billion Laughs») por este motivo.

Cada acción de desinfección queda registrada en un informe forense en formato JSON. El informe incluye el nombre del objeto, el contenido eliminado (con un límite de 5.000 caracteres por entrada) y el hash SHA-256 del objeto eliminado. Los equipos de seguridad disponen de un registro de auditoría completo para la revisión del cumplimiento normativo y la reconstrucción de incidentes sin necesidad de volver a examinar el archivo original.
Para obtener una explicación detallada sobre la inyección de XML, la inyección de CDATA, las «bombas XML» y otros mecanismos de ataque relacionados con el XML, consulta nuestro análisis técnico en profundidad sobre los vectores de ataque a documentos XML.
Protege tus flujos de trabajo con archivos XML
Cuando un analizador de confianza se encuentra con un archivo XML malicioso, el archivo sale ganando. Apache Tika, Atlassian Crowd, IBM BAW y la ruta de análisis SVG lo demuestran en flujos de trabajo de documentos, plataformas de identidad y motores de flujos de trabajo.
Estos archivos no se consideran amenazas. Proceden de socios conocidos a través de flujos de trabajo establecidos y contienen contenido legítimo, lo que los hace eficaces. La solución no varía de un CVE a otro: interceptar en la capa de transferencia, depurar el contenido antes de que el archivo llegue al analizador y garantizar que la protección abarque los archivos de datos XML externos, no solo los archivos adjuntos de correo electrónico y las subidas a la web.

