Python vulnerabilities
We track 25 vulnerabilities in Python products across 6 products. 25 are rated high or critical, and none are known to be exploited. The most recent was published on July 9, 2026.
Latest Python vulnerabilities
- 7.5 High severity
CPython: Uncontrolled Resource Consumption
The incremental HTML parser (html.parser.HTMLParser) allows for CPU denial-of-service through repeated unterminated markup declarations when processing uncontrolled data.
- 7.5 High severity
CPython: Insufficient Entropy
`xml.parsers.expat` and `xml.etree.ElementTree` use insufficient entropy for Expat hash-flooding protection, which allows a crafted XML document to trigger hash flooding.\r\n\r\nFully mitigating this vulnerability requires both updating libexpat to 2.8.0 or la
- 7.5 High severity
CPython: Improper Limitation of a Pathname to a Restricted Directory
If `shutil.unpack_archive()` is given a ZIP archive with an absolute Windows path containing a drive (`C:\\...`) then the archive will be extracted outside the target directory which is different than other operating systems. Only Windows is affected by this v
- 7.5 High severity
CPython: Uncontrolled Recursion
When an Expat parser with a registered ElementDeclHandler parses an inline document type definition containing a deeply nested content model a C stack overflow occurs.
- 7.5 High severity
The fix for CVE-2026-0672, which rejected control characters in http.cookies.Morsel, was…
The fix for CVE-2026-0672, which rejected control characters in http.cookies.Morsel, was incomplete. The Morsel.update(), |= operator, and unpickling paths were not patched, allowing control characters to bypass input validation. Additionally, BaseCookie.js_ou
- 7.5 High severity
Protobuf: Uncontrolled Recursion
A denial-of-service (DoS) vulnerability exists in google.protobuf.json_format.ParseDict() in Python, where the max_recursion_depth limit can be bypassed when parsing nested google.protobuf.Any messages. Due to missing recursion depth accounting inside the inte
- 7.5 High severity
CPython: Uncontrolled Resource Consumption
When reading an HTTP response from a server, if no read amount is specified, the default behavior will be to use Content-Length. This allows a malicious server to cause the client to read large amounts of data into memory, potentially causing OOM or other DoS.
- 7.5 High severity
aiohttp: Inconsistent Interpretation of HTTP Requests
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Prior to version 3.10.11, the Python parser parses newlines in chunk extensions incorrectly which can lead to request smuggling vulnerabilities under certain conditions. If a pure
- 7.8 High severity
CPython: Improper Neutralization of Special Elements used in a Command
A vulnerability has been found in the CPython `venv` module and CLI where path names provided when creating a virtual environment were not quoted properly, allowing the creator to inject commands into virtual environment "activation" scripts (ie "source venv/b
- 7.5 High severity
CPython: Inefficient Regular Expression Complexity
There is a MEDIUM severity vulnerability affecting CPython. Regular expressions that allowed excessive backtracking during tarfile.TarFile header parsing are vulnerable to ReDoS via specifically-crafted tar archives.
- 7.5 High severity
CPython: Inefficient Regular Expression Complexity
There is a LOW severity vulnerability affecting CPython, specifically the 'http.cookies' standard library module. When parsing cookies that contained backslashes for quoted characters in the cookie value, the parser would use an algorithm with quadratic comple
- 8.8 High severity
pypa/setuptools: Improper Control of Generation of Code
A vulnerability in the package_index module of pypa/setuptools versions up to 69.1.1 allows for remote code execution via its download functions. These functions, which are used to download packages from URLs provided by users or retrieved from package index s
- 7.5 High severity
CPython: Incorrect Comparison
The “ipaddress” module contained incorrect information about whether certain IPv4 and IPv6 addresses were designated as “globally reachable” or “private”. This affected the is_private and is_global properties of the ipaddress.IPv4Address, ipaddress.IPv4Network
- 7.1 High severity
CPython: Incorrect Default Permissions
On Windows a directory returned by tempfile.mkdtemp() would not always have permissions set to restrict reading and writing to the temporary directory by other users, instead usually inheriting the correct permissions from the default location. Alternate confi
- 8.1 High severity
pillow: Improper Control of Generation of Code
Pillow through 10.1.0 allows PIL.ImageMath.eval Arbitrary Code Execution via the environment parameter, a different vulnerability than CVE-2022-22817 (which was about the expression parameter).
- 7.5 High severity
Pillow: Allocation of Resources Without Limits or Throttling
An issue was discovered in Pillow before 10.0.0. It is a Denial of Service that uncontrollably allocates memory to process a given task, potentially causing a service to crash by having it run out of memory. This occurs for truetype in ImageFont when textlengt
- 7.5 High severity
python: Untrusted Search Path
An issue was discovered in Python 3.11 through 3.11.4. If a path containing '\0' bytes is passed to os.path.normpath(), the path will be truncated unexpectedly at the first '\0' byte. There are plausible cases in which an application would have rejected a file
- 9.8 Critical severity
Python: Improper Restriction of XML External Entity Reference
An XML External Entity (XXE) issue was discovered in Python through 3.9.1. The plistlib module no longer accepts entity declarations in XML plist files to avoid XML vulnerabilities.
- 7.5 High severity
Python: Uncontrolled Recursion
The legacy email.utils.parseaddr function in Python through 3.11.4 allows attackers to trigger "RecursionError: maximum recursion depth exceeded while calling a Python object" via a crafted argument. This argument is plausibly an untrusted value from an applic
- 7.5 High severity
An issue in the urllib.parse component of Python before 3.11.4 allows attackers to bypass…
An issue in the urllib.parse component of Python before 3.11.4 allows attackers to bypass blocklisting methods by supplying a URL that starts with blank characters.
- 7.5 High severity
SIMATIC S7-1500 CPU 1518-4 PN/DP MFP: Inefficient Algorithmic Complexity
An issue was discovered in Python before 3.11.1. An unnecessary quadratic algorithm exists in one path when processing some inputs to the IDNA (RFC 3490) decoder, such that a crafted, unreasonably long name being presented to the decoder could lead to a CPU de
- 7.8 High severity
Python: Deserialization of Untrusted Data
Python 3.9.x before 3.9.16 and 3.10.x before 3.10.9 on Linux allows local privilege escalation in a non-default configuration. The Python multiprocessing library, when used with the forkserver start method on Linux, allows pickles to be deserialized from any u
- 9.8 Critical severity
RUGGEDCOM APE1808: Integer Overflow or Wraparound
The Keccak XKCP SHA-3 reference implementation before fdc6fef has an integer overflow and resultant buffer overflow that allows attackers to execute arbitrary code or eliminate expected cryptographic properties. This occurs in the sponge function interface.
- 7.0 High severity
SIMATIC S7-1500 CPU 1518-4 PN/DP MFP: Untrusted Search Path
In Python before 3.10.3 on Windows, local users can gain privileges because the search path is inadequately secured. The installer may allow a local attacker to add user-writable directories to the system search path. To exploit, an administrator must have ins
- 7.5 High severity
python: Improper Neutralization of Special Elements in Output Used by a Downstream Component
A flaw was found in Python, specifically within the urllib.parse module. This module helps break Uniform Resource Locator (URL) strings into components. The issue involves how the urlparse method does not sanitize input and allows characters like '\r' and '\n'