CVE-2026-90885
Apache Camel: procesamiento de entidades externas XML de Camel-Saxon: XQueryBuilder analizó un cuerpo de mensaje que ya era un javax.xml.transform.Source con la configuración predeterminada del analizador de Saxon, por lo que se resolvió una entidad externa declarada en ese cuerpo
- Publicado
- 26 oct 2026
- Actualizado
- 26 oct 2026
- Asignación de CNA
- apache
- Evidencia observada
- 30 oct 2026
CVSS primario
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:NBajo · próximos 30 días
- Percentil
- 48,6 %
- Fecha del modelo
- 31 oct 2026
EPSS es una estimación estadística, no una certeza o una medida de impacto. Combínelo con CVSS, estado KEV, exposición y su entorno.
Resumen
Vulnerabilidad de restricción inadecuada de referencia a entidad externa XML en el componente Saxon de Apache Camel. Este problema afecta a Apache Camel: desde 4.0.0 antes de 4.18.5, desde 4.19.0 antes de 4.22.2. XQueryBuilder en camel-saxon, que evalúa expresiones para el lenguaje xquery y el componente xquery, construía su Configuration de Saxon predeterminada con opciones de análisis que solo establecían una regla de eliminación de espacios en blanco, dejando el analizador XML en sus valores predeterminados, bajo los cuales se acepta una declaración DOCTYPE y se resuelven las entidades externas. Un cuerpo de mensaje de tipo String o byte[], o cualquier cuerpo leído como InputStream, primero se convierte en un javax.xml.transform.Source mediante los propios convertidores de tipos XML de Camel, que configuran el analizador contra entidades externas, por lo que esos cuerpos no se veían afectados. Sin embargo, un cuerpo que ya era un Source se entregaba a Saxon sin cambios, y cuando ese Source aún tenía que ser analizado, como ocurre con un Source basado en flujo, Saxon lo analizaba con esa Configuration, eludiendo la protección aplicada a los demás tipos de cuerpo. Tal cuerpo surge, por ejemplo, después de que una ruta convierta el mensaje con convertBodyTo(Source.class), o cuando un componente o procesador anterior en la ruta establece el cuerpo como un Source basado en flujo. Por lo tanto, un DOCTYPE con un subconjunto externo, o una entidad externa, declarado en ese cuerpo se resolvía y se expandía en el documento contra el que se evaluaba la expresión. Un remitente externo cuyo XML llegara a una expresión XQuery o a un endpoint xquery de esa forma podría leer archivos legibles por el proceso de Camel y provocar que el proceso emitiera solicitudes a los hosts que el documento nombra. No se requiere ninguna opción no predeterminada, ya que la Configuration predeterminada se usa siempre que la ruta no proporcione una propia. Se recomienda a los usuarios actualizar a la versión 4.23.0, que corrige el problema. Si los usuarios están en la línea de versiones 4.22.x, se sugiere actualizar a 4.22.2. Si los usuarios están en la línea de versiones 4.18.x, se sugiere actualizar a 4.18.5. La línea de versiones 4.14.x y anteriores, así como las líneas de versiones 4.15.x a 4.17.x y 4.19.x a 4.21.x, alcanzaron el fin de su ciclo de vida antes de que se resolviera este problema y no recibirán una corrección, por lo que las implementaciones en ellas deben migrar a una versión compatible. Para las implementaciones que no puedan actualizar de inmediato, no evalúen XQuery sobre un cuerpo de mensaje que ya sea un javax.xml.transform.Source cuando ese cuerpo contenga XML de un remitente no confiable, o establezcan la opción de configuración del endpoint o lenguaje xquery a una Configuration de Saxon cuyas opciones de análisis rechacen una declaración DOCTYPE y deshabiliten las entidades externas y la carga de DTD externos, que es lo que ahora aplican por defecto las versiones corregidas.
Uso responsable
Utilice información sobre vulnerabilidades solo en sistemas de su propiedad o que esté autorizado a probar. Kitploit enlaza con metadatos de investigación pública y no almacena código de explotación ni cargas útiles maliciosas.