CVE-2023-45612
Descripción de CVE
En JetBrains Ktor anterior a 2.3.5, la configuración predeterminada de ContentNegotiation con formato XML era vulnerable a XXE.
La vulnerabilidad fue corregida por @marychatte el 29 de septiembre de 2023 (https://github.com/ktorio/ktor/pull/3770); la vulnerabilidad fue causada por un ataque a la cadena de suministro basado en una mala configuración en la librería externa xmlutil versión 0.86.1.

Basado en la guía de OWASP (https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#xmlinputfactory-a-stax-parser), la corrección no es lo suficientemente completa; encontré una respuesta interesante aquí (https://security.stackexchange.com/questions/260956/java-xxe-vulnerability): El objetivo principal es deshabilitar las DTD; básicamente consiste en la defensa principal contra este ataque.
¿Qué es OWASP?
- OWASP (Open Worldwide Application Security Project) es una comunidad global sin fines de lucro centrada en mejorar la seguridad del software. Proporciona recursos gratuitos y neutrales respecto a los proveedores, como documentación, herramientas y formación, para ayudar a desarrolladores, investigadores de seguridad y organizaciones a crear aplicaciones seguras. Uno de sus proyectos más conocidos es el OWASP Top 10, que destaca los riesgos de seguridad más críticos en aplicaciones web.
Prueba de Concepto
Directrices de Prevención
- Actualizar: Ktor ≥ 2.3.5 y xmlutil a versiones corregidas
- Reforzar el análisis XML:
- Deshabilitar declaraciones DOCTYPE
- Deshabilitar entidades externas generales/de parámetros
- Deshabilitar carga de DTD externas
- Habilitar FEATURE_SECURE_PROCESSING
- Deshabilitar XInclude
- Preferir JSON sobre XML a menos que sea estrictamente necesario
- Principio de mínimo privilegio: Ejecutar servicios sin acceso al sistema de archivos/red para el análisis
- Validación de entrada: Rechazar cargas útiles con declaraciones DOCTYPE en la capa de aplicación
Referencias: