Skip to content
OpenAdvisories

Ecosystem

PyPI

7,110 known vulnerabilities.

7,091 results · Feed

  • High 7.5

    yt-dlp: Downstream command injection via improper sanitization of yt-dlp --write-link output

    yt-dlp and youtube-dl are command-line audio/video downloaders. Prior to 2026.7.4, the --write-link, --write-url-link, and --write-desktop-link options can write .url or .desktop shortcut files using attacker-controlled webpage_url or filename metadata withou…

  • High 8.7

    pypdf: Possible infinite loop for not terminated inline images

    pypdf is a free and open-source pure-python PDF library. Prior to 6.14.1, an attacker can craft a PDF with a page content stream containing a not terminated inline image, causing an infinite loop during inline image end marker detection such as when extractin…

  • High 8.7

    pypdf: Possible infinite loop for not terminated inline images (ASCII85 and ASCIIHex filter)

    pypdf is a free and open-source pure-python PDF library. Prior to 6.14.2, an attacker can craft a PDF with a page content stream containing a not terminated inline image that uses the ASCII85 or ASCIIHex filters, causing an infinite loop during parsing such a…

  • High 7.5

    httplib2: Decompression Bomb Denial of Service via Unbounded gzip/deflate Response Handling

    httplib2 is a comprehensive HTTP client library for Python. Prior to 0.32.0, httplib2 performs unbounded decompression of HTTP response bodies encoded with Content-Encoding: gzip or deflate in _decompressContent in httplib2/init.py, allowing a malicious or co…

  • Low 2.1

    LiteLLM: Local file read via request-supplied OIDC file references

    LiteLLM is a proxy server (AI Gateway) to call LLM APIs in OpenAI (or native) format. Prior to 1.83.10-stable, LiteLLM's /health/test_connection endpoint resolved request-supplied environment and OIDC file references in litellm_params, allowing a proxy admini…

  • High 8.8
    CVE-2026-59822 Exploited Public exploit

    LiteLLM: MCP Authentication Bypass via OAuth2 Passthrough Fallback

    LiteLLM is a proxy server (AI Gateway) to call LLM APIs in OpenAI (or native) format. Prior to 1.84.0, LiteLLM's MCP Streamable HTTP endpoint allowed an unauthenticated attacker to use a fabricated Authorization header to trigger an OAuth2 passthrough fallbac…

    KEV Sep 2, 2026
  • Medium 6.1

    LiteLLM: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

    LiteLLM is a proxy server (AI Gateway) to call LLM APIs in OpenAI (or native) format. Prior to 1.83.7-stable, LiteLLM Skills archive extraction did not sufficiently validate file paths from uploaded skill ZIP archives, allowing an authenticated user with acce…

  • Medium 5.5

    ONNX: Null Pointer Dereference in Upsample Version Converter Adapter (Zero Inputs)

    Open Neural Network Exchange (ONNX) is an open standard for machine learning interoperability. From 1.9.0 before 1.22.0, onnx.version_converter.convert_version() can dereference a null pointer in Upsample_6_7::adapt_upsample_6_7() in onnx/version_converter/ad…

  • Medium 5.9

    Zeep SSRF because Settings.forbid_external is not enforced

    Zeep is a Python SOAP client. From 4.0.0 before 4.3.3, Settings.forbid_external is defined but not enforced when parsing WSDL or XSD documents, allowing transitive xsd:import, xsd:include, wsdl:import, and lxml entity or DTD references to fetch attacker-chose…

  • Low 2.1

    LiteLLM: Custom Code Guardrails production endpoints bypass code safety checks

    LiteLLM is a proxy server (AI Gateway) to call LLM APIs in OpenAI (or native) format. Prior to 1.82.0-stable, LiteLLM's Custom Code Guardrails production create and update paths did not apply the same sandboxing and validation used by the test endpoint, allow…

  • Medium 6.9

    pypdf: Possible long runtimes for repeated malformed cross-reference entries

    pypdf is a free and open-source pure-python PDF library. Prior to 6.14.0, an attacker can craft a PDF with repeated malformed cross-reference streams that cause pypdf to spend long runtimes recovering broken cross-reference table entries. This issue is fixed …

  • Medium 6.9

    pypdf: Possible large memory usage for wrong image dimensions

    pypdf is a free and open-source pure-python PDF library. Prior to 6.14.0, an attacker can craft a PDF with declared image size values that are much too large compared to the actual data, causing large memory usage in pypdf image parsing. This issue is fixed i…

  • Medium 5.3

    Mistune directives/include: mutual `.. include::` recursion crashes the renderer with `RecursionError`, denial of service via two attacker-controlled markdown files

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, the Include directive in src/mistune/directives/include.py detects only direct self-includes and not indirect cycles, allowing two markdown files that include each other to trigge…

  • High 7.5

    Mistune block_parser: quadratic-time parsing on long lists of repeated reference-link definitions

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, a Markdown document containing many repeated or distinct reference-link definitions causes quadratic work in src/mistune/block_parser.py and the ref_links environment dictionary h…

  • Medium 5.9

    Mistune: Arbitrary File Read via Include directive path traversal

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, Include.parse() joins and normalizes user-supplied include paths without verifying that the result remains within the intended markdown directory, allowing crafted include paths t…

  • Medium 6.1

    Mistune renderers/html.safe_url: HARMFUL_PROTOCOLS list misses legacy and chained schemes that historically chain to `javascript:` execution

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, the safe_url filter in src/mistune/renderers/html.py blocks only javascript:, vbscript:, file:, and data: schemes, allowing legacy or chained schemes such as feed:, view-source:, …

  • High 7.5

    inline_parser: quadratic-time parsing on long runs of `**x**` and `***x***` emphasis pairs

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, long sequences of well-formed double-asterisk or triple-asterisk emphasis pairs around a character cause quadratic work in src/mistune/inline_parser.py because the parser scans fo…

  • Medium 5.3

    Mistune: XSS via unescaped class option in Admonition directive

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.2.1, render_admonition() in src/mistune/directives/admonition.py concatenates the Admonition directive :class: option into the HTML class attribute without escaping, allowing attribute…

  • Medium 6.1

    Mistune: XSS via percent-encoded javascript URI bypass in safe_url()

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, HTMLRenderer.safe_url() does not block percent-encoded javascript URIs, allowing attacker-supplied Markdown links or images to bypass URL protections and execute script in rendere…

  • Medium 4.3

    Mistune toc / TableOfContents directive: heading IDs use predictable `toc_N` numbering with no slugification, allowing collision with attacker-controlled `id="toc_N"` content

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, the toc plugin and TableOfContents directive generate heading IDs as predictable toc_N values without slugifying the heading text, allowing attacker-controlled id="toc_N" content …

  • High 7.5

    Mistune plugins/formatting: quadratic-time parsing on long runs of `~~x~~`, `==x==`, and `^^x^^` markers (strikethrough / mark / insert)

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, a run of closed tilde, equals-sign, or caret marker pairs around a character causes quadratic work in src/mistune/plugins/formatting.py when the strikethrough, mark, or insert plu…

  • Medium 6.1

    setuptools: MANIFEST.in exclusion bypass in sdist via Unicode normalization collision (NFC/NFD) on macOS APFS/HFS+

    setuptools is a package that allows users to download, build, install, upgrade, and uninstall Python packages. Prior to 83.0.0, FileList applied MANIFEST.in exclude, global-exclude, recursive-exclude, and prune directives by matching compiled glob patterns ag…

  • High 8.8

    Copier: trust-prefix bypass via path traversal runs tasks unprompted

    Copier is a library and CLI app for rendering project templates. In versions 9.5.0 through 9.15.1, the `trust` setting's prefix match (`copier/_settings.py`) compares the template URL against a trusted prefix with a raw `str.startswith` and no path normalizat…

  • Low 3.1

    Path traversal in github_workflows allows writing artifacts outside output directory

    BBOT's `github_workflows` module could be induced to write a downloaded artifact outside its configured output directory: its path-containment check did not resolve `..`, so a crafted `CODE_REPOSITORY` URL could traverse out of the intended folder. The write …

  • Low 3.1

    Symlink guard bypass in unarchive module allows planting symlinks during extraction

    BBOT's unarchive module rejects archives containing symlink entries before extraction, but for zip and 7z archives it failed to detect symlinks whose listing carries a DOS-attribute prefix before the unix mode, as produced by legacy versions of p7zip. Such an…

  • Medium 5.3

    bentoml OpenLLM Model Repository Directory Name common.py async_run_command command injection

    A vulnerability was found in bentoml OpenLLM 0.6.30. This affects the function async_run_command of the file src/openllm/common.py of the component Model Repository Directory Name Handler. Performing a manipulation of the argument cmd results in command injec…

  • Medium —

    Flask-Security-Too: WebAuthn reauthentication freshness bypass via cross-user assertion

    ### Summary Flask-Security-Too 5.8.0 and 5.8.1 mark a session as reauthentication-fresh after processing a WebAuthn assertion whose proven credential belongs to a different user than the currently authenticated session user. The check that `GHSA-97r5-pg8x-p63…

  • Medium 6.5

    ha-mcp: Add-on settings and policy routes are reachable without authentication at the bare root path

    ### Summary In add-on mode, the ha-mcp settings UI routes are mounted both under the MCP secret path **and** at the bare root of the published port (`:9583`), so Home Assistant ingress can serve the "Open Web UI" button. The root-mounted routes perform no aut…

  • Medium 6.5

    Anki: User scripts in iframes have access to the internal Anki API

    Anki is a program for creating and reviewing flashcards. Prior to 25.09.4, Anki's webview-based pages communicate with the Rust backend using an internal localhost API, and user scripts included via iframes in the editor can access this API despite protection…

  • Low 2.1

    Anki's local HTTP server does not sufficiently validate requests

    Anki is a program for creating and reviewing flashcards. Prior to 25.09.3, Anki launches a local HTTP server to serve media files and web pages for parts of its interface, but requests from other origins were not sufficiently blocked. A malicious website coul…

  • High 8.3

    Serena: Unauthenticated Flask dashboard on fixed port enables DNS rebinding → memory poisoning → RCE

    Serena is a powerful MCP toolkit for coding that provides semantic retrieval and editing capabilities. Prior to v1.5.2, Serena's built-in web dashboard exposes an unauthenticated Flask API on a fixed, predictable port, with no authentication, no CSRF protecti…

  • Critical 9.1

    Cognee < 1.2.0 Unauthorized LLM Configuration Overwrite via /api/v1/settings

    Cognee before 1.2.0 contains an improper access control vulnerability that allows unauthenticated attackers to overwrite the global LLM provider configuration by self-registering an account and calling the settings endpoint, which performs no admin or superus…

  • Unscored —

    Malicious code in tiktoken-mcp (PyPI)

    Part of the "Hades" wave of the Shai-Hulud supply-chain campaign. On 2026-06-08, malicious phantom releases of tiktoken-mcp were published to PyPI using stolen credentials. The package executes a bundled JavaScript payload (via the Bun runtime) on import that…

  • Unscored —

    Malicious code in ray-mcp-server (PyPI)

    Part of the "Hades" wave of the Shai-Hulud supply-chain campaign. On 2026-06-08, malicious phantom releases of ray-mcp-server were published to PyPI using stolen credentials. The package executes a bundled JavaScript payload (via the Bun runtime) on import th…

  • Unscored —

    Malicious code in orchestr8-platform (PyPI)

    Part of the "Hades" wave of the Shai-Hulud supply-chain campaign. On 2026-06-08, malicious phantom releases of orchestr8-platform were published to PyPI using stolen credentials. The package executes a bundled JavaScript payload (via the Bun runtime) on impor…

  • Unscored —

    Malicious code in openai-mcp (PyPI)

    Part of the "Hades" wave of the Shai-Hulud supply-chain campaign. On 2026-06-08, malicious phantom releases of openai-mcp were published to PyPI using stolen credentials. The package executes a bundled JavaScript payload (via the Bun runtime) on import that h…

  • Unscored —

    Malicious code in mem8 (PyPI)

    Part of the "Hades" wave of the Shai-Hulud supply-chain campaign. On 2026-06-08, malicious phantom releases of mem8 were published to PyPI using stolen credentials. The package executes a bundled JavaScript payload (via the Bun runtime) on import that harvest…

  • Unscored —

    Malicious code in langchain-core-mcp (PyPI)

    Part of the "Hades" wave of the Shai-Hulud supply-chain campaign. On 2026-06-08, malicious phantom releases of langchain-core-mcp were published to PyPI using stolen credentials. The package executes a bundled JavaScript payload (via the Bun runtime) on impor…

  • Unscored —

    Malicious code in instructor-mcp (PyPI)

    Part of the "Hades" wave of the Shai-Hulud supply-chain campaign. On 2026-06-08, malicious phantom releases of instructor-mcp were published to PyPI using stolen credentials. The package executes a bundled JavaScript payload (via the Bun runtime) on import th…

  • Unscored —

    Malicious code in dreamgen (PyPI)

    Part of the "Hades" wave of the Shai-Hulud supply-chain campaign. On 2026-06-08, malicious phantom releases of dreamgen were published to PyPI using stolen credentials. The package executes a bundled JavaScript payload (via the Bun runtime) on import that har…