CVE-2026-66294 in saxy
Resumen
por VulDB • 2026-11-06
Inyección XML en el codificador Saxy XML. `Saxy.Encoder.cdata/1` serializa un nodo `{ :cdata, characters }` envolviendo los caracteres proporcionados entre `<![CDATA[` y `]]>` y pasando la carga útil byte por byte. Las rutas de datos de carácter (character-data) y valor de atributo del codificador escapan los metacaracteres XML `<`, `>`, `&`, `"`, y `'`, pero la ruta CDATA no aplica ninguna neutralización en absoluto. XML no proporciona ningún mecanismo de escape de caracteres dentro de una sección CDATA, por lo que la única forma correcta de representar un subcadena `]]>` es dividir la sección y volver a unirla como `]]]><![CDATA[>`. Saxy ni realiza esa división ni rechaza la subcadena.
Una aplicación que renderiza texto no confiable como CDATA, construyendo el nodo con `Saxy.XML.cdata/1` y serializándolo con `Saxy.encode!/2` o `Saxy.encode_to_iodata!/2`, permite por tanto a un atacante terminar la sección en una posición de su elección. Todo lo suministrado después del `]]>` se emite fuera de cualquier contexto CDATA y se analiza como marcado, por lo que un único campo de texto controlado por el atacante se convierte en estructura de documento controlada por el atacante: elementos hermanos arbitrarios y atributos que la aplicación nunca construyó. Los consumidores posteriores del documento serializado aceptan el marcado inyectado como genuino. Los servicios que generan envoltorios SOAP, feeds RSS o Atom, mapas del sitio (sitemaps), SVG o exportaciones XML a partir de contenido proporcionado por el usuario pueden tener campos confiables falsificados o anulados. Las aplicaciones que nunca colocan texto no confiable en un nodo CDATA no se ven afectadas.
Este problema afecta a saxy: desde la versión 0.7.0 hasta antes de la 1.7.0.
If you want to get best quality of vulnerability data, you may have to visit VulDB.