#VU49973 Buffer overflow in Python


Published: 2021-01-19 | Updated: 2022-07-20

Vulnerability identifier: #VU49973

Vulnerability risk: High

CVSSv3.1: 8.5 [CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C]

CVE-ID: CVE-2021-3177

CWE-ID: CWE-119

Exploitation vector: Network

Exploit availability: No

Vulnerable software:
Python
Universal components / Libraries / Scripting languages

Vendor: Python.org

Description

The vulnerability allows a remote attacker to execute arbitrary code on the target system.

The vulnerability exists due to a boundary within the PyCArg_repr in _ctypes/callproc.c. A remote attacker can pass specially crafted input to the Python applications that accept floating-point numbers as untrusted input, trigger memory corruption and execute arbitrary code on the target system.

Successful exploitation of this vulnerability may result in complete compromise of vulnerable system.

Mitigation
Install update from vendor's website.

Vulnerable software versions

Python: 3.8 - 3.8.7, 3.9.0 - 3.9.1, 3.5 - 3.5.10, 3.7 - 3.7.9, 3.6 - 3.6.12, 3.4 - 3.4.10, 3.3 - 3.3.7, 3.1 - 3.1.2150, 3.0 - 3.0.1, 3.2 - 3.2.2150


External links
http://bugs.python.org/issue42938
http://github.com/python/cpython/pull/24239
http://python-security.readthedocs.io/vuln/ctypes-buffer-overflow-pycarg_repr.html


Q & A

Can this vulnerability be exploited remotely?

Yes. This vulnerability can be exploited by a remote non-authenticated attacker via the Internet.

Is there known malware, which exploits this vulnerability?

No. We are not aware of malware exploiting this vulnerability.


Latest bulletins with this vulnerability