An issue was discovered in libxml2 before 2.10.4. When hashing empty dict strings in a crafted XML document, xmlDictComputeFastKey in dict.c can produce non-deterministic values, leading to various logic and memory errors, such as a double free. This behavior occurs because there is an attempt to use the first byte of an empty string, and any value is possible (not solely the '\0' value).
{ "availability": "Available with Ubuntu Pro (Infra-only): https://ubuntu.com/pro", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "2.9.1+dfsg1-3ubuntu4.13+esm5", "binary_name": "libxml2" }, { "binary_version": "2.9.1+dfsg1-3ubuntu4.13+esm5", "binary_name": "libxml2-dbg" }, { "binary_version": "2.9.1+dfsg1-3ubuntu4.13+esm5", "binary_name": "libxml2-dbgsym" }, { "binary_version": "2.9.1+dfsg1-3ubuntu4.13+esm5", "binary_name": "libxml2-dev" }, { "binary_version": "2.9.1+dfsg1-3ubuntu4.13+esm5", "binary_name": "libxml2-dev-dbgsym" }, { "binary_version": "2.9.1+dfsg1-3ubuntu4.13+esm5", "binary_name": "libxml2-doc" }, { "binary_version": "2.9.1+dfsg1-3ubuntu4.13+esm5", "binary_name": "libxml2-udeb" }, { "binary_version": "2.9.1+dfsg1-3ubuntu4.13+esm5", "binary_name": "libxml2-udeb-dbgsym" }, { "binary_version": "2.9.1+dfsg1-3ubuntu4.13+esm5", "binary_name": "libxml2-utils" }, { "binary_version": "2.9.1+dfsg1-3ubuntu4.13+esm5", "binary_name": "libxml2-utils-dbg" }, { "binary_version": "2.9.1+dfsg1-3ubuntu4.13+esm5", "binary_name": "libxml2-utils-dbgsym" }, { "binary_version": "2.9.1+dfsg1-3ubuntu4.13+esm5", "binary_name": "python-libxml2" }, { "binary_version": "2.9.1+dfsg1-3ubuntu4.13+esm5", "binary_name": "python-libxml2-dbg" }, { "binary_version": "2.9.1+dfsg1-3ubuntu4.13+esm5", "binary_name": "python-libxml2-dbgsym" } ] }
{ "availability": "Available with Ubuntu Pro (Infra-only): https://ubuntu.com/pro", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "2.9.3+dfsg1-1ubuntu0.7+esm5", "binary_name": "libxml2" }, { "binary_version": "2.9.3+dfsg1-1ubuntu0.7+esm5", "binary_name": "libxml2-dbg" }, { "binary_version": "2.9.3+dfsg1-1ubuntu0.7+esm5", "binary_name": "libxml2-dbgsym" }, { "binary_version": "2.9.3+dfsg1-1ubuntu0.7+esm5", "binary_name": "libxml2-dev" }, { "binary_version": "2.9.3+dfsg1-1ubuntu0.7+esm5", "binary_name": "libxml2-dev-dbgsym" }, { "binary_version": "2.9.3+dfsg1-1ubuntu0.7+esm5", "binary_name": "libxml2-doc" }, { "binary_version": "2.9.3+dfsg1-1ubuntu0.7+esm5", "binary_name": "libxml2-udeb" }, { "binary_version": "2.9.3+dfsg1-1ubuntu0.7+esm5", "binary_name": "libxml2-udeb-dbgsym" }, { "binary_version": "2.9.3+dfsg1-1ubuntu0.7+esm5", "binary_name": "libxml2-utils" }, { "binary_version": "2.9.3+dfsg1-1ubuntu0.7+esm5", "binary_name": "libxml2-utils-dbg" }, { "binary_version": "2.9.3+dfsg1-1ubuntu0.7+esm5", "binary_name": "libxml2-utils-dbgsym" }, { "binary_version": "2.9.3+dfsg1-1ubuntu0.7+esm5", "binary_name": "python-libxml2" }, { "binary_version": "2.9.3+dfsg1-1ubuntu0.7+esm5", "binary_name": "python-libxml2-dbg" } ] }
{ "availability": "No subscription required", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "2.9.4+dfsg1-6.1ubuntu1.9", "binary_name": "libxml2" }, { "binary_version": "2.9.4+dfsg1-6.1ubuntu1.9", "binary_name": "libxml2-dbg" }, { "binary_version": "2.9.4+dfsg1-6.1ubuntu1.9", "binary_name": "libxml2-dev" }, { "binary_version": "2.9.4+dfsg1-6.1ubuntu1.9", "binary_name": "libxml2-doc" }, { "binary_version": "2.9.4+dfsg1-6.1ubuntu1.9", "binary_name": "libxml2-udeb" }, { "binary_version": "2.9.4+dfsg1-6.1ubuntu1.9", "binary_name": "libxml2-utils" }, { "binary_version": "2.9.4+dfsg1-6.1ubuntu1.9", "binary_name": "libxml2-utils-dbgsym" }, { "binary_version": "2.9.4+dfsg1-6.1ubuntu1.9", "binary_name": "python-libxml2" }, { "binary_version": "2.9.4+dfsg1-6.1ubuntu1.9", "binary_name": "python-libxml2-dbg" }, { "binary_version": "2.9.4+dfsg1-6.1ubuntu1.9", "binary_name": "python3-libxml2" }, { "binary_version": "2.9.4+dfsg1-6.1ubuntu1.9", "binary_name": "python3-libxml2-dbg" } ] }
{ "availability": "No subscription required", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "2.9.10+dfsg-5ubuntu0.20.04.6", "binary_name": "libxml2" }, { "binary_version": "2.9.10+dfsg-5ubuntu0.20.04.6", "binary_name": "libxml2-dbgsym" }, { "binary_version": "2.9.10+dfsg-5ubuntu0.20.04.6", "binary_name": "libxml2-dev" }, { "binary_version": "2.9.10+dfsg-5ubuntu0.20.04.6", "binary_name": "libxml2-doc" }, { "binary_version": "2.9.10+dfsg-5ubuntu0.20.04.6", "binary_name": "libxml2-utils" }, { "binary_version": "2.9.10+dfsg-5ubuntu0.20.04.6", "binary_name": "libxml2-utils-dbgsym" }, { "binary_version": "2.9.10+dfsg-5ubuntu0.20.04.6", "binary_name": "python-libxml2" }, { "binary_version": "2.9.10+dfsg-5ubuntu0.20.04.6", "binary_name": "python-libxml2-dbg" }, { "binary_version": "2.9.10+dfsg-5ubuntu0.20.04.6", "binary_name": "python3-libxml2" }, { "binary_version": "2.9.10+dfsg-5ubuntu0.20.04.6", "binary_name": "python3-libxml2-dbg" } ] }
{ "availability": "No subscription required", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "2.9.13+dfsg-1ubuntu0.3", "binary_name": "libxml2" }, { "binary_version": "2.9.13+dfsg-1ubuntu0.3", "binary_name": "libxml2-dbgsym" }, { "binary_version": "2.9.13+dfsg-1ubuntu0.3", "binary_name": "libxml2-dev" }, { "binary_version": "2.9.13+dfsg-1ubuntu0.3", "binary_name": "libxml2-doc" }, { "binary_version": "2.9.13+dfsg-1ubuntu0.3", "binary_name": "libxml2-utils" }, { "binary_version": "2.9.13+dfsg-1ubuntu0.3", "binary_name": "libxml2-utils-dbgsym" }, { "binary_version": "2.9.13+dfsg-1ubuntu0.3", "binary_name": "python3-libxml2" }, { "binary_version": "2.9.13+dfsg-1ubuntu0.3", "binary_name": "python3-libxml2-dbgsym" } ] }