Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.141. python

Updated python packages that fix several bugs and add one enhancement are now available for Red Hat Enterprise Linux 5.
Python is an interpreted, interactive, object-oriented programming language often compared to Tcl, Perl, Scheme or Java. Python includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems (X11, Motif, Tk, Mac and MFC).

Bug Fixes

BZ#573782
Prior to this update, calling the logging.config.fileConfig() function failed when the logging handlers already existed. Consequently, a KeyError occured in the atexit() call to the logging.shutdown() function. With this update, a fix has been added into logging.config.fileConfig() in order to lose previously existing handlers. As a result, the KeyError no longer occurs.
BZ#638514
IDLE is an integrated development environment for Python. With this update, support to run multiple instances of IDLE on a server has been added. As a result, multiple users can now use IDLE at the same time.
BZ#640523
Previously, the os.chown() function failed on 32-bit architectures when the UID and GID parameters contained numeric values greater than 2147483647 (0x7fffffff). Consequently, an error occurred with the following message:
OverflowError: signed integer is greater than maximum
This bug has been fixed and the os.chown function now handles larger identification numbers correctly.
BZ#822072
Previously, the fcntl.ioctl() function failed on 32-bit architectures when the op parameter contained a numeric value greater than 2147483647 (0x7fffffff). Consequently, an error occurred with the following message:
OverflowError: signed integer is greater than maximum
This bug has been fixed and the fcntl.ioctl function now handles larger request codes correctly.
BZ#701277
Due to a flaw in the Makefile.pre.in file, occasional compilation or link errors appeared when Python was rebuilt on systems with more than one CPU core. This bug has been fixed, and Python can now be rebuilt on multiple-core processing units without the aforementioned errors.
BZ#701569
Previously, a memory leak occurred when Python was used with the _japanese_codecs module. This bug has been fixed, and the memory leak no longer occurs in the described scenario.

Enhancement

BZ#644661
The gdb debugger has been enhanced to allow more effective debugging of Python code. The added hooks enable gdb to display human-readable representations of Python objects within the process being debugged. As a result, backtraces involving Python are now easier to read, and the new hooks enhance the effectiveness of the debugging process.
All users of Python are advised to upgrade to these updated packages, which fix these bugs and add this enhancement.
Updated python packages that fix multiple security issues are now available for Red Hat Enterprise Linux 5.
The Red Hat Security Response Team has rated this update as having moderate security impact. Common Vulnerability Scoring System (CVSS) base score, which gives a detailed severity rating, is available for each vulnerability from the CVE link(s) associated with each description below.
Python is an interpreted, interactive, object-oriented programming language.

Security Fixes

CVE-2012-1150
A denial of service flaw was found in the implementation of associative arrays (dictionaries) in Python. An attacker able to supply a large number of inputs to a Python application (such as HTTP POST request parameters sent to a web application) that are used as keys when inserting data into an array could trigger multiple hash function collisions, making array operations take an excessive amount of CPU time. To mitigate this issue, randomization has been added to the hash function to reduce the chance of an attacker successfully causing intentional collisions.
Note: The hash randomization is not enabled by default as it may break applications that incorrectly depend on dictionary ordering. To enable the protection, the new "PYTHONHASHSEED" environment variable or the Python interpreter's "-R" command line option can be used. Refer to the python(1) manual page for details.
The RHSA-2012:0731 expat erratum must be installed with this update, which adds hash randomization to the Expat library used by the Python pyexpat module.
CVE-2011-4940
A flaw was found in the way the Python SimpleHTTPServer module generated directory listings. An attacker able to upload a file with a specially-crafted name to a server could possibly perform a cross-site scripting (XSS) attack against victims visiting a listing page generated by SimpleHTTPServer, for a directory containing the crafted file (if the victims were using certain web browsers).
CVE-2011-4944
A race condition was found in the way the Python distutils module set file permissions during the creation of the .pypirc file. If a local user had access to the home directory of another user who is running distutils, they could use this flaw to gain access to that user's .pypirc file, which can contain usernames and passwords for code repositories. (CVE-2011-4944)
Red Hat would like to thank oCERT for reporting CVE-2012-1150. oCERT acknowledges Julian Wälde and Alexander Klink as the original reporters of CVE-2012-1150.
All Python users should upgrade to these updated packages, which contain backported patches to correct these issues.