github.com/TheAlgorithms/Python
@ 754dac42d992 · 754dac42d9927fd5a727a181fec6c4007c9ebaf5
Submitted 6/17/2026, 12:12:14 AM · Status: ok
Risk grade
F
100 / 100
Findings
75
0 critical17 high55 medium2 low1 info0 on CISA KEV0ATT&CK
Showing 75 of 75 findings
Findings
- Decompression-bomb safeguards bypassed when following HTTP redirects (streaming API)grypeCVE-2026-21441EPSS 0.0%
- FITS GZIP decompression bomb in PillowgrypeCVE-2026-40192EPSS 0.0%
- Keras Directory Traversal VulnerabilitygrypeCVE-2025-12060EPSS 0.1%
- Keras has a Local File Disclosure via HDF5 External Storage During Keras Weight LoadinggrypeCVE-2026-1669EPSS 0.0%
- Keras has an untrusted deserialization vulnerabilitygrypeCVE-2026-1462EPSS 0.1%
- Keras is vulnerable to Deserialization of Untrusted DatagrypeCVE-2025-9906EPSS 0.1%
- Keras vulnerable to CVE-2025-1550 bypass via reuse of internal functionalitygrypeCVE-2025-8747EPSS 0.0%
- Keras vulnerable to DoS via Malicious .keras Model (HDF5 Shape Bomb Causes Petabyte Allocation in KerasFileEditor)grypeCVE-2026-0897EPSS 0.0%
- lxml: Default configuration of iterparse() and ETCompatXMLParser() allows XXE to local filesgrypeCVE-2026-41066EPSS 0.1%
- Pillow affected by out-of-bounds write when loading PSD imagesgrypeCVE-2026-25990EPSS 0.0%
- Pillow has an OOB Write with Invalid PSD Tile Extents (Integer Overflow)grypeCVE-2026-42311EPSS 0.0%
- Pillow vulnerability can cause write buffer overflow on BCn encodinggrypeCVE-2025-48379EPSS 0.1%
- The Keras `Model.load_model` method **silently** ignores `safe_mode=True` and allows arbitrary code execution when a `.h5`/`.hdf5` file is loaded.grypeCVE-2025-9905EPSS 0.0%
- urllib3 allows an unbounded number of links in the decompression chaingrypeCVE-2025-66418EPSS 0.0%
- urllib3 streaming API improperly handles highly compressed datagrypeCVE-2025-66471EPSS 0.0%
- urllib3: Sensitive headers forwarded across origins in proxied low-level redirectsgrypeCVE-2026-44431EPSS 0.0%
- Image user should not be 'root'Running containers with 'root' user can lead to a container escape situation. It is a best practice to run containers as non-root users, which can be done by adding a 'USER' statement to the Dockerfile.trivy.devcontainer/Dockerfile:0
- Ensure top-level permissions are not set to write-allEnsure top-level permissions are not set to write-all on on(Test DevContainer Build)checkov.github/workflows/devcontainer_ci.yml:0
- Ensure top-level permissions are not set to write-allEnsure top-level permissions are not set to write-all on on(build)checkov.github/workflows/build.yml:0
- Ensure top-level permissions are not set to write-allEnsure top-level permissions are not set to write-all on on(directory_writer)checkov.github/workflows/directory_writer.yml:0
- Ensure top-level permissions are not set to write-allEnsure top-level permissions are not set to write-all on on(Project Euler)checkov.github/workflows/project_euler.yml:0
- Ensure top-level permissions are not set to write-allEnsure top-level permissions are not set to write-all on on(ruff)checkov.github/workflows/ruff.yml:0
- fontTools is Vulnerable to Arbitrary File Write and XML injection in fontTools.varLibgrypeCVE-2025-66034EPSS 0.1%
- Internationalized Domain Names in Applications (IDNA): Specially crafted inputs to idna.encode() can bypass CVE-2024-3651 fixgrypeCVE-2026-45409EPSS 0.0%
- Keras is vulnerable to arbitrary local file loading and Server-Side Request ForgerygrypeCVE-2025-12058EPSS 0.1%
- Pillow has a heap buffer overflow with nested list coordinatesgrypeCVE-2026-42309EPSS 0.0%
- Pillow has a PDF Parsing Trailer Infinite Loop (DoS)grypeCVE-2026-42310EPSS 0.0%
- Pillow has an integer overflow when processing fontsgrypeCVE-2026-42308EPSS 0.0%
- pytest has vulnerable tmpdir handlinggrypeCVE-2025-71176EPSS 0.0%
- Requests has Insecure Temp File Reuse in its extract_zipped_paths() utility functiongrypeCVE-2026-25645EPSS 0.0%
- Requests vulnerable to .netrc credentials leak via malicious URLsgrypeCVE-2024-47081EPSS 0.2%
- urllib3 does not control redirects in browsers and Node.jsgrypeCVE-2025-50182EPSS 0.1%
- urllib3 redirects are not disabled when retries are disabled on PoolManager instantiationgrypeCVE-2025-50181EPSS 0.1%
- Decompression-bomb safeguards bypassed when following HTTP redirects (streaming API)### Impact urllib3's [streaming API](https://urllib3.readthedocs.io/en/2.6.2/advanced-usage.html#streaming-and-i-o) is designed for the efficient handling of large HTTP responses by reading the content in chunks, rather than loading the entire response body into memory at once. …osv-scannerCVE-2026-21441
- FITS GZIP decompression bomb in Pillow### Impact Pillow did not limit the amount of GZIP-compressed data read when decoding a FITS image, making it vulnerable to decompression bomb attacks. A specially crafted FITS file could cause unbounded memory consumption, leading to denial of service (OOM crash or severe perfor…osv-scannerCVE-2026-40192
- fontTools is Vulnerable to Arbitrary File Write and XML injection in fontTools.varLib## Summary The `fonttools varLib` (or `python3 -m fontTools.varLib`) script has an arbitrary file write vulnerability that leads to remote code execution when a malicious .designspace file is processed. The vulnerability affects the `main()` code path of `fontTools.varLib`, used…osv-scannerCVE-2025-66034
- Internationalized Domain Names in Applications (IDNA): Specially crafted inputs to idna.encode() can bypass CVE-2024-3651 fixThis is the same issue as CVE-2024-3651, however the original remediation in 2024 was not a complete fix. Payloads such as `"\u0660" * N` or `"\u30fb" * N + "\u6f22"` utilize the `valid_contexto` function prior to length rejection, and for high values of `N` will take a long time…osv-scannerCVE-2026-45409
- Keras Directory Traversal Vulnerability## Summary Keras's `keras.utils.get_file()` function is vulnerable to directory traversal attacks despite implementing `filter_safe_paths()`. The vulnerability exists because `extract_archive()` uses Python's `tarfile.extractall()` method without the security-critical `filter="d…osv-scannerCVE-2025-12060
- Keras has a Local File Disclosure via HDF5 External Storage During Keras Weight Loading## Summary TensorFlow / Keras continues to honor HDF5 “external storage” and `ExternalLink` features when loading weights. A malicious `.weights.h5` (or a `.keras` archive embedding such weights) can direct `load_weights()` to read from an arbitrary readable filesystem path. The…osv-scannerCVE-2026-1669
- Keras has an untrusted deserialization vulnerabilityA vulnerability in the `TFSMLayer` class of the `keras` package, version 3.13.0, allows attacker-controlled TensorFlow SavedModels to be loaded during deserialization of `.keras` models, even when `safe_mode=True`. This bypasses the security guarantees of `safe_mode` and enables …osv-scannerCVE-2026-1462
- Keras is vulnerable to arbitrary local file loading and Server-Side Request ForgeryThe Keras.Model.load_model method, including when executed with the intended security mitigation safe_mode=True, is vulnerable to arbitrary local file loading and Server-Side Request Forgery (SSRF). This vulnerability stems from the way the StringLookup layer is handled during …osv-scannerCVE-2025-12058
- Keras is vulnerable to Deserialization of Untrusted Data### Arbitrary Code Execution in Keras Keras versions prior to 3.11.0 allow for arbitrary code execution when loading a crafted `.keras` model archive, even when `safe_mode=True`. The issue arises because the archive’s `config.json` is parsed before layer deserialization. This c…osv-scannerCVE-2025-9906
- Keras vulnerable to CVE-2025-1550 bypass via reuse of internal functionality### Summary It is possible to bypass the mitigation introduced in response to [CVE-2025-1550](https://github.com/keras-team/keras/security/advisories/GHSA-48g7-3x6r-xfhp), when an untrusted Keras v3 model is loaded, even when “safe_mode” is enabled, by crafting malicious argument…osv-scannerCVE-2025-8747
- Keras vulnerable to DoS via Malicious .keras Model (HDF5 Shape Bomb Causes Petabyte Allocation in KerasFileEditor)### Summary Keras’s model loader (KerasFileEditor) unsafely loads user-supplied .keras model files containing HDF5-based weight files without performing any validation on HDF5 dataset metadata. An attacker can craft a .keras archive containing a valid model.weights.h5 file whose …osv-scannerCVE-2026-0897
- lxml: Default configuration of iterparse() and ETCompatXMLParser() allows XXE to local files### Impact Using either of the two parsers in the default configuration (with `resolve_entities=True`) allows untrusted XML input to read local files. ### Patches lxml 6.1.0 changes the default to `resolve_entities='internal'`, thus disallowing local file access by default. ###…osv-scannerCVE-2026-41066
- Pillow affected by out-of-bounds write when loading PSD images### Impact An out-of-bounds write may be triggered when loading a specially crafted PSD image. Pillow >= 10.3.0 users are affected. ### Patches Pillow 12.1.1 will be released shortly with a fix for this. ### Workarounds `Image.open()` has a `formats` parameter that can be used …osv-scannerCVE-2026-25990
- Pillow has a heap buffer overflow with nested list coordinatesPassing nested lists as coordinates to APIs that accept coordinates such as `ImagePath.Path`, `ImageDraw.ImageDraw.polygon` and `ImageDraw.ImageDraw.line` could cause a heap buffer overflow, as nested lists were recursively unpacked beyond the allocated buffer. Coordinate lists a…osv-scannerCVE-2026-42309
- Pillow has a PDF Parsing Trailer Infinite Loop (DoS)### Impact An attacker can supply a malicious PDF that causes the process to hang indefinitely, consuming 100% CPU and making the application unresponsive. ### Patches Patched version: 12.2.0. PdfParser (introduced in Pillow 4.2.0) follows Prev pointers in PDF trailers to read …osv-scannerCVE-2026-42310
- Pillow has an integer overflow when processing fontsIf a font advances for each glyph by an exceeding large amount, when Pillow keeps track of the current position, it may lead to an integer overflow. This has been fixed.osv-scannerCVE-2026-42308
- Pillow has an OOB Write with Invalid PSD Tile Extents (Integer Overflow)### Impact Processing a malicious PSD file could lead to memory corruption, potentially resulting in a crash or arbitrary code execution. ### Patches Patched version: 12.2.0 Pillow 12.1.1 addressed CVE-2026-25990 by adding checks for tile extents in PSD image decoding/encoding …osv-scannerCVE-2026-42311
- Pillow vulnerability can cause write buffer overflow on BCn encodingThere is a heap buffer overflow when writing a sufficiently large (>64k encoded with default settings) image in the DDS format due to writing into a buffer without checking for available space. This only affects users who save untrusted data as a compressed DDS image. * Uncle…osv-scannerCVE-2025-48379
- Pygments has Regular Expression Denial of Service (ReDoS) due to Inefficient Regex for GUID MatchingA security flaw has been discovered in pygments before 2.20.0. The impacted element is the function AdlLexer of the file pygments/lexers/archetype.py. The manipulation results in inefficient regular expression complexity. The attack is only possible with local access. The exploit…osv-scannerCVE-2026-4539
- PYSEC-2025-123The Keras Model.load_model method can be exploited to achieve arbitrary code execution, even with safe_mode=True. One can create a specially crafted .h5/.hdf5 model archive that, when loaded via Model.load_model, will trigger arbitrary code to be executed. This is achieved by c…osv-scannerCVE-2025-9905
- PYSEC-2026-141urllib3 is an HTTP client library for Python. From 1.23 to before 2.7.0, cross-origin redirects followed from the low-level API via ProxyManager.connection_from_url().urlopen(..., assert_same_host=False) still forward these sensitive headers. This vulnerability is fixed in 2.7.0.osv-scannerCVE-2026-44431
- PYSEC-2026-165Pillow is a Python imaging library. Prior to version 12.2.0, if a font advances for each glyph by an exceeding large amount, when Pillow keeps track of the current position, it may lead to an integer overflow. This issue has been patched in version 12.2.0.osv-scannerCVE-2026-42308
- PYSEC-2026-73Allocation of Resources Without Limits or Throttling in the HDF5 weight loading component in Google Keras 3.0.0 through 3.13.0 on all platforms allows a remote attacker to cause a Denial of Service (DoS) through memory exhaustion and a crash of the Python interpreter via a crafte…osv-scannerCVE-2026-0897
- PYSEC-2026-87lxml is a library for processing XML and HTML in the Python language. Prior to 6.1.0, using either of the two parsers in the default configuration (with resolve_entities=True) allows untrusted XML input to read local files. Setting the resolve_entities option explicitly to resolv…osv-scannerCVE-2026-41066
- pytest has vulnerable tmpdir handlingpytest through 9.0.2 on UNIX relies on directories with the `/tmp/pytest-of-{user}` name pattern, which allows local users to cause a denial of service or possibly gain privileges.osv-scannerCVE-2025-71176
- Requests has Insecure Temp File Reuse in its extract_zipped_paths() utility function### Impact The `requests.utils.extract_zipped_paths()` utility function uses a predictable filename when extracting files from zip archives into the system temporary directory. If the target file already exists, it is reused without validation. A local attacker with write access …osv-scannerCVE-2026-25645
- Requests vulnerable to .netrc credentials leak via malicious URLs### Impact Due to a URL parsing issue, Requests releases prior to 2.32.4 may leak .netrc credentials to third parties for specific maliciously-crafted URLs. ### Workarounds For older versions of Requests, use of the .netrc file can be disabled with `trust_env=False` on your Req…osv-scannerCVE-2024-47081
- The Keras `Model.load_model` method **silently** ignores `safe_mode=True` and allows arbitrary code execution when a `.h5`/`.hdf5` file is loaded.**Note:** This report has already been discussed with the Google OSS VRP team, who recommended that I reach out directly to the Keras team. I’ve chosen to do so privately rather than opening a public issue, due to the potential security implications. I also attempted to use the e…osv-scannerCVE-2025-9905
- urllib3 allows an unbounded number of links in the decompression chain## Impact urllib3 supports chained HTTP encoding algorithms for response content according to RFC 9110 (e.g., `Content-Encoding: gzip, zstd`). However, the number of links in the decompression chain was unbounded allowing a malicious server to insert a virtually unlimited numbe…osv-scannerCVE-2025-66418
- urllib3 does not control redirects in browsers and Node.jsurllib3 [supports](https://urllib3.readthedocs.io/en/2.4.0/reference/contrib/emscripten.html) being used in a Pyodide runtime utilizing the [JavaScript Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) or falling back on [XMLHttpRequest](https://developer.moz…osv-scannerCVE-2025-50182
- urllib3 redirects are not disabled when retries are disabled on PoolManager instantiationurllib3 handles redirects and retries using the same mechanism, which is controlled by the `Retry` object. The most common way to disable redirects is at the request level, as follows: ```python resp = urllib3.request("GET", "https://httpbin.org/redirect/1", redirect=False) prin…osv-scannerCVE-2025-50181
- urllib3 streaming API improperly handles highly compressed data### Impact urllib3's [streaming API](https://urllib3.readthedocs.io/en/2.5.0/advanced-usage.html#streaming-and-i-o) is designed for the efficient handling of large HTTP responses by reading the content in chunks, rather than loading the entire response body into memory at once. …osv-scannerCVE-2025-66471
- urllib3: Sensitive headers forwarded across origins in proxied low-level redirects### Impact When following cross-origin redirects for requests made using urllib3’s high-level APIs, such as `urllib3.request()`, `PoolManager.request()`, and `ProxyManager.request()`, sensitive headers — `Authorization`, `Cookie`, and `Proxy-Authorization` (defined in `Retry.DEF…osv-scannerCVE-2026-44431
- Avoid using `pickle`, which is known to lead to code execution vulnerabilities. When unpickling, the serialized data could be manipulated to run arbitrary code. Instead, consider serializing the relevAvoid using `pickle`, which is known to lead to code execution vulnerabilities. When unpickling, the serialized data could be manipulated to run arbitrary code. Instead, consider serializing the relevant data as JSON or a similar text-based serialization format.semgrepneural_network/convolution_neural_network.py:74
- Avoid using `pickle`, which is known to lead to code execution vulnerabilities. When unpickling, the serialized data could be manipulated to run arbitrary code. Instead, consider serializing the relevAvoid using `pickle`, which is known to lead to code execution vulnerabilities. When unpickling, the serialized data could be manipulated to run arbitrary code. Instead, consider serializing the relevant data as JSON or a similar text-based serialization format.semgrepneural_network/convolution_neural_network.py:82
- Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib callDetected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' …semgrepmachine_learning/sequential_minimum_optimization.py:458
- Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib callDetected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' …semgrepweb_programming/download_images_from_google_query.py:99
- Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib callDetected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' …semgrepneural_network/input_data.py:262
- Detected SHA1 hash algorithm which is considered insecure. SHA1 is not collision resistant and is therefore not suitable as a cryptographic signature. Use SHA256 or SHA3 instead.semgrephashes/sha1.py:135
This report is public.