Expat Parser Default Settings Enable External Entities
Node.js applications use Expat XML parser through libraries like node-expat, saxes, or sax-js with default configurations that allow external entity processing and DTD declarations. The Expat parser defaults to processing external entities unless explicitly configured otherwise. Applications create parser instances without security hardening: new expat.Parser() or saxes.SaxesParser() without options disabling entity expansion. When parsing XML containing entity declarations like <!ENTITY xxe SYSTEM "file:///etc/passwd">, the parser resolves these entities by default, enabling file disclosure, SSRF to internal services, or billion laughs DoS attacks.