Step 1: Payload Delivery: An attacker crafts a malicious XML file containing specially designed entity definitions.
Step 2: XML Parsing: The vulnerable application, using ezXML, attempts to parse the malicious XML file.
Step 3: Entity Resolution: The parser encounters the entity definitions and calls ezxml_ent_ok() to resolve them.
Step 4: Recursive Expansion: ezxml_ent_ok() enters a recursive loop, attempting to expand the malicious entities.
Step 5: Stack Exhaustion: The recursive calls consume increasing amounts of stack space.
Step 6: Crash: The stack overflows, leading to a program crash and denial of service.