- -------------------------------------------------------------------------
Debian LTS Advisory DLA-2619-1                debian-lts@lists.debian.org
https://www.debian.org/lts/security/                         Anton Gladky
April 05, 2021                                https://wiki.debian.org/LTS
- -------------------------------------------------------------------------

Package        : python3.5
Version        : 3.5.3-1+deb9u4
CVE ID         : CVE-2021-3177 CVE-2021-3426 CVE-2021-23336

Three security issues have been discovered in python3.5:

CVE-2021-3177

    Python 3.x  has a buffer overflow in PyCArg_repr in _ctypes/callproc.c,
    which may lead to remote code execution in certain Python applications that accept
    floating-point numbers as untrusted input.
    This occurs because sprintf is used unsafely.

CVE-2021-3426

    Running `pydoc -p` allows other local users to extract arbitrary files.
    The `/getfile?key=path` URL allows to read arbitrary file on the filesystem.

    The fix removes the "getfile" feature of the pydoc module which
    could be abused to read arbitrary files on the disk (directory
    traversal vulnerability).

CVE-2021-23336

    The Python3.5 vulnerable to Web Cache Poisoning via urllib.parse.parse_qsl
    and urllib.parse.parse_qs by using a vector called parameter cloaking. When
    the attacker can separate query parameters using a semicolon (;), they can
    cause a difference in the interpretation of the request between the proxy
    (running with default configuration) and the server. This can result in malicious
    requests being cached as completely safe ones, as the proxy would usually not
    see the semicolon as a separator, and therefore would not include it in a cache
    key of an unkeyed parameter.

    **Attention, API-change!**
    Please be sure your software is working properly if it uses `urllib.parse.parse_qs`
    or `urllib.parse.parse_qsl`, `cgi.parse` or `cgi.parse_multipart`.

    Earlier Python versions allowed using both  ``;`` and ``&`` as query parameter
    separators in `urllib.parse.parse_qs` and `urllib.parse.parse_qsl`.
    Due to security concerns, and to conform with
    newer W3C recommendations, this has been changed to allow only a single
    separator key, with ``&`` as the default.  This change also affects
    `cgi.parse` and `cgi.parse_multipart` as they use the affected
    functions internally. For more details, please see their respective
    documentation.


For Debian 9 stretch, these problems have been fixed in version
3.5.3-1+deb9u4.

We recommend that you upgrade your python3.5 packages.

For the detailed security status of python3.5 please refer to
its security tracker page at:

Further information about Debian LTS security advisories, how to apply
these updates to your system and frequently asked questions can be
found at: https://wiki.debian.org/LTS

Debian LTS: DLA-2619-1: python3.5 security update

April 5, 2021
Three security issues have been discovered in python3.5: CVE-2021-3177

Summary

CVE-2021-3177

Python 3.x has a buffer overflow in PyCArg_repr in _ctypes/callproc.c,
which may lead to remote code execution in certain Python applications that accept
floating-point numbers as untrusted input.
This occurs because sprintf is used unsafely.

CVE-2021-3426

Running `pydoc -p` allows other local users to extract arbitrary files.
The `/getfile?key=path` URL allows to read arbitrary file on the filesystem.

The fix removes the "getfile" feature of the pydoc module which
could be abused to read arbitrary files on the disk (directory
traversal vulnerability).

CVE-2021-23336

The Python3.5 vulnerable to Web Cache Poisoning via urllib.parse.parse_qsl
and urllib.parse.parse_qs by using a vector called parameter cloaking. When
the attacker can separate query parameters using a semicolon (;), they can
cause a difference in the interpretation of the request between the proxy
(running with default configuration) and the server. This can result in malicious
requests being cached as completely safe ones, as the proxy would usually not
see the semicolon as a separator, and therefore would not include it in a cache
key of an unkeyed parameter.

**Attention, API-change!**
Please be sure your software is working properly if it uses `urllib.parse.parse_qs`
or `urllib.parse.parse_qsl`, `cgi.parse` or `cgi.parse_multipart`.

Earlier Python versions allowed using both ``;`` and ``&`` as query parameter
separators in `urllib.parse.parse_qs` and `urllib.parse.parse_qsl`.
Due to security concerns, and to conform with
newer W3C recommendations, this has been changed to allow only a single
separator key, with ``&`` as the default. This change also affects
`cgi.parse` and `cgi.parse_multipart` as they use the affected
functions internally. For more details, please see their respective
documentation.


For Debian 9 stretch, these problems have been fixed in version
3.5.3-1+deb9u4.

We recommend that you upgrade your python3.5 packages.

For the detailed security status of python3.5 please refer to
its security tracker page at:

Further information about Debian LTS security advisories, how to apply
these updates to your system and frequently asked questions can be
found at: https://wiki.debian.org/LTS


Severity
Package : python3.5
Version : 3.5.3-1+deb9u4
CVE ID : CVE-2021-3177 CVE-2021-3426 CVE-2021-23336

Related News