Submit #1011796: mxml v4.0.5, v4.0.6 Use After Freeinfo

Titlemxml v4.0.5, v4.0.6 Use After Free
DescriptionMini-XML (mxml) v4.0.5 and v4.0.6 contain a use-after-free vulnerability, in the common error path of mxml_load_data() in mxml-file.c. The cleanup code calls mxmlDelete(node) and then mxmlDelete(first) without checking whether first is a descendant of node. Because mxmlDelete() is recursive, mxmlDelete(node) can already free first when node is an ancestor of first; the subsequent mxmlDelete(first) then dereferences freed memory. AddressSanitizer reports the read in mxmlRemove() at mxml-node.c:757. The same error path can also free the caller-supplied top node. As a result, after a failed mxmlLoadString(), the caller’s top pointer is left dangling, and a later mxmlDelete(top) by the caller causes another use-after-free. This issue was introduced by the fix for issue #354. Processing malformed XML can trigger a reliable crash and potentially heap corruption.
Source⚠️ https://github.com/michaelrsweet/mxml/issues/358
User
 suyuanwang (UID 101634)
Submission10/02/2026 17:21 (1 month ago)
Moderation10/18/2026 19:05 (16 days later)
StatusAccepted
VulDB entry421908 [michaelrsweet mxml 4.0.5/4.0.6 mxml-file.c mxml_load_data use after free]
Points20

Do you need the next level of professionalism?

Upgrade your account now!