First published: Tue Nov 01 2011(Updated: )
Julian Wälde and Alexander Klink reported a flaw in the hash function used in the implementation of the Python dictionaries (associative arrays). A specially-crafted set of keys could trigger hash function collisions, which degrade dictionary performance by changing hash table operations complexity from an expected/average O(1) to the worst case O(n). Reporters were able to find colliding strings efficiently using meet in the middle attack. As various web application frameworks for Python automatically pre-fill certain dictionaries with data from the HTTP request (such as GET or POST parameters) for Python web application, a remote attacker could use this flaw to make Python interpreter use excessive amount of CPU time by sending a POST request with large amount of parameters which hash to the same value. This problem is similar to the issue that was previously reported for and fixed in e.g. perl: <a href="http://www.cs.rice.edu/~scrosby/hash/CrosbyWallach_UsenixSec2003.pdf">http://www.cs.rice.edu/~scrosby/hash/CrosbyWallach_UsenixSec2003.pdf</a>
Credit: secalert@redhat.com secalert@redhat.com
Affected Software | Affected Version | How to fix |
---|---|---|
Python Python | <=2.6.7 | |
Python Python | =0.9.0 | |
Python Python | =0.9.1 | |
Python Python | =1.2 | |
Python Python | =1.3 | |
Python Python | =1.5.2 | |
Python Python | =1.6 | |
Python Python | =1.6.1 | |
Python Python | =2.0 | |
Python Python | =2.0.1 | |
Python Python | =2.1 | |
Python Python | =2.1.1 | |
Python Python | =2.1.2 | |
Python Python | =2.1.3 | |
Python Python | =2.2 | |
Python Python | =2.2.1 | |
Python Python | =2.2.2 | |
Python Python | =2.2.3 | |
Python Python | =2.3.1 | |
Python Python | =2.3.2 | |
Python Python | =2.3.3 | |
Python Python | =2.3.4 | |
Python Python | =2.3.5 | |
Python Python | =2.3.7 | |
Python Python | =2.4.1 | |
Python Python | =2.4.2 | |
Python Python | =2.4.3 | |
Python Python | =2.4.4 | |
Python Python | =2.4.6 | |
Python Python | =2.5.1 | |
Python Python | =2.5.2 | |
Python Python | =2.5.3 | |
Python Python | =2.5.4 | |
Python Python | =2.5.6 | |
Python Python | =2.5.150 | |
Python Python | =2.6.1 | |
Python Python | =2.6.2 | |
Python Python | =2.6.3 | |
Python Python | =2.6.4 | |
Python Python | =2.6.5 | |
Python Python | =2.6.6 | |
Python Python | =2.6.2150 | |
Python Python | =2.6.6150 | |
Python Python | =2.7.1 | |
Python Python | =2.7.1-rc1 | |
Python Python | =2.7.2-rc1 | |
Python Python | =2.7.1150 | |
Python Python | =2.7.2150 | |
Python Python | =3.0 | |
Python Python | =3.0.1 | |
Python Python | =3.1 | |
Python Python | =3.1.1 | |
Python Python | =3.1.2 | |
Python Python | =3.1.3 | |
Python Python | =3.1.4 | |
Python Python | =3.2 | |
Python Python | =3.2-alpha | |
Python Python | =3.2.2150 | |
debian/python2.7 | 2.7.18-8+deb11u1 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.