La sintaxis XML permite la inclusión automática de otros archivos, que pueden estar en el mismo sistema, o incluso en cualquier otro lugar (a través de una URL). Consulte, por ejemplo, esta documentación . Conceptualmente, el ataque sería un caso en el que el atacante puede agregar una "referencia de entidad externa" en una pieza de XML que será interpretada como XML por una máquina (por ejemplo, un servidor web), con los derechos de ese servidor; el atacante puede hacer que la máquina lea un archivo local de su elección (un archivo local al servidor ) e incluirlo en el XML interpretado. Si el XML interpretado se devuelve al atacante, este obtiene un acceso de lectura a los archivos locales del servidor.
Podríamos imaginarlo en un sistema CMS, donde el atacante puede insertar mensajes con una sintaxis XML. Si el CMS permite el XML arbitrario del atacante, entonces el atacante puede usar entidades externas para leer y mostrar archivos como /etc/passwd
(o incluso /etc/shadow
si el CMS se ejecuta como root
).