La sintassi XML consente l'inclusione automatica di altri file, che possono essere sullo stesso sistema o anche altrove (tramite un URL). Vedi ad esempio questa documentazione . L'attacco sarebbe concettualmente un caso in cui l'autore dell'attacco può aggiungere un "riferimento di entità esterna" in un pezzo di XML che verrà interpretato come XML da una macchina (ad esempio un server Web), con i diritti di quel server; l'utente malintenzionato può quindi fare in modo che la macchina legga un file locale di sua scelta (un file locale nel server ) e includerlo nell'XML interpretato. Se l'XML interpretato viene quindi rinviato all'attaccante, l'autore dell'attacco ottiene un accesso in lettura ai file locali del server.
Potremmo immaginarlo in un sistema CMS, in cui l'utente malintenzionato può inserire messaggi con una sintassi XML. Se il CMS consente l'XML arbitrario dall'attaccante, l'utente malintenzionato può utilizzare entità esterne per leggere e visualizzare file come /etc/passwd
(o anche /etc/shadow
se il CMS viene eseguito come root
).