Description
Element.findall() and fully-consumed Element.iterfind() exhibit O(n^2) time complexity when using XPath index predicates (e.g. [1], [last()], [last()-N]) on XML documents with many same-tag siblings. Element.find() is only affected when the first match is near the end of the sibling list, such as with [last()] or [last()-N]; .//item[1] short-circuits after the first match.
Mitigation
Minimal update. May introduce new vulnerabilities or breaking changes.
|
 debian 13 | | =7.3.19+dfsg-2 || =7.3.20+dfsg-1 || =7.3.20+dfsg-2 || =7.3.20+dfsg-3 || =7.3.20+dfsg-4 || =7.3.21+dfsg-1 || =7.3.21+dfsg-2 || =7.3.21+dfsg-3 || =7.3.21+dfsg-4 || =7.3.22+dfsg-1 || =7.3.23+dfsg-1 || =7.3.23+dfsg-2 | - |
 debian 14 | | =3.14.0-1 || =3.14.0-2 || =3.14.0-3 || =3.14.0-4 || =3.14.0-5 || =3.14.0~a7-1 || =3.14.0~b1-1 || =3.14.0~b2-1 || =3.14.0~b3-1 || =3.14.0~b4-1 || =3.14.0~rc1-1 || =3.14.0~rc2-1 || =3.14.0~rc3-1 || =3.14.2-1 || =3.14.3-1 || =3.14.3-2 || =3.14.3-3 || =3.14.3-4 || =3.14.3-5 || =3.14.4-1 || =3.14.4-2 || =3.14.5-1 || =3.14.5~rc1-1 || =3.14.6-1 || >=0 <3.14.7-1 | 3.14.7-1 |
 debian 12 | | =3.11.2-6 || =3.11.2-6+deb12u1 || =3.11.2-6+deb12u2 || =3.11.2-6+deb12u3 || =3.11.2-6+deb12u4 || =3.11.2-6+deb12u5 || =3.11.2-6+deb12u6 || =3.11.2-6+deb12u7 || =3.11.2-6+deb12u8 || =3.11.3-1 || =3.11.3-2 || =3.11.4-1 || =3.11.5-1 || =3.11.5-2 || =3.11.5-3 || =3.11.6-1 || =3.11.6-2 || =3.11.6-3 || =3.11.6-3~hurd.2 || =3.11.7-1 || =3.11.7-2 || =3.11.8-1 || =3.11.8-1.1~exp1 || =3.11.8-1.1~exp2 || =3.11.8-2 || =3.11.8-3 || =3.11.8-3+hurd.1 || =3.11.9-1 | - |
 debian 14 | | =3.13.11-1 || =3.13.12-1 || =3.13.14-1 || =3.13.5-2 || =3.13.6-1 || =3.13.7-1 || =3.13.8-1 || =3.13.9-1 || >=0 <3.13.15-1 | 3.13.15-1 |
 debian 13 | | =3.13.5-2 || =3.13.5-2+deb13u1 || =3.13.5-2+deb13u2 || =3.13.5-2+deb13u3 || =3.13.5-2+deb13u4 || >=0 <3.13.5-2+deb13u5 | 3.13.5-2+deb13u5 |
 debian 14 | | =7.3.19+dfsg-2 || =7.3.20+dfsg-1 || =7.3.20+dfsg-2 || =7.3.20+dfsg-3 || =7.3.20+dfsg-4 || =7.3.21+dfsg-1 || =7.3.21+dfsg-2 || =7.3.21+dfsg-3 || =7.3.21+dfsg-4 || =7.3.22+dfsg-1 || =7.3.23+dfsg-1 || =7.3.23+dfsg-2 | - |
 debian 12 | | =7.3.11+dfsg-2 || =7.3.11+dfsg-2+deb12u1 || =7.3.11+dfsg-2+deb12u2 || =7.3.11+dfsg-2+deb12u3 || =7.3.12+dfsg-1 || =7.3.12~rc1+dfsg-1 || =7.3.12~rc2+dfsg-1 || =7.3.13+dfsg-1 || =7.3.14+dfsg-1 || =7.3.15+dfsg-1 || =7.3.16+dfsg-1 || =7.3.16+dfsg-2 || =7.3.17+dfsg-1 || =7.3.17+dfsg-2 || =7.3.17+dfsg-3 || =7.3.18+dfsg-1 || =7.3.18+dfsg-2 || =7.3.19+dfsg-1 || =7.3.19+dfsg-2 || =7.3.20+dfsg-1 || =7.3.20+dfsg-2 || =7.3.20+dfsg-3 || =7.3.20+dfsg-4 || =7.3.21+dfsg-1 || =7.3.21+dfsg-2 || =7.3.21+dfsg-3 || =7.3.21+dfsg-4 || =7.3.22+dfsg-1 || =7.3.23+dfsg-1 || =7.3.23+dfsg-2 | - |
 pypi | | >=0 <3.10.21 || >=3.11.0 <3.11.16 || >=3.12.0 <3.12.14 || >=3.13.0 <3.13.15 || >=3.14.0 <3.14.7 || >=3.15.0a1 <3.15.0rc1 | 3.10.21, 3.11.16, 3.12.14, 3.13.15, 3.14.7, 3.15.0rc1 |
 alpine v3.24 | | | 3.14.7-r0 |