Uncontrolled recursion in XPath evaluation in libxml2 up to and including version 2.9.14 allows a local attacker to cause a stack overflow via crafted expressions. XPath processing functions xmlXPathRunEval
, xmlXPathCtxtCompile
, and xmlXPathEvalExpr
were resetting recursion depth to zero before making potentially recursive calls. When such functions were called recursively this could allow for uncontrolled recursion and lead to a stack overflow. These functions now preserve recursion depth across recursive calls, allowing recursion depth to be controlled.
The product does not properly control the amount of recursion that takes place, consuming excessive resources, such as allocated memory or the program stack.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Libxml2 | Xmlsoft | * | 2.10.0 (excluding) |
Libxml2 | Ubuntu | esm-infra-legacy/trusty | * |
Libxml2 | Ubuntu | esm-infra/bionic | * |
Libxml2 | Ubuntu | esm-infra/focal | * |
Libxml2 | Ubuntu | esm-infra/xenial | * |
Libxml2 | Ubuntu | jammy | * |
Libxml2 | Ubuntu | noble | * |
Libxml2 | Ubuntu | plucky | * |
Libxml2 | Ubuntu | upstream | * |