p PatchFirst

PatchFirst · Latest vulnerabilities

Python stack vulnerabilities · Page 39

Vulnerabilities published for Python in the last 30 days: 358. Listed in the KEV catalogue: 1.

Filter vulnerabilities
Python

Vulnerabilities: 7116

  1. CVE-2026-68508

    High · CVSS 7.8EPSS 0.46%Fix available

    Hydra: hydra.utils.instantiate with untrusted config can lead to code execution

    Hydra is a framework for elegantly configuring complex applications. Prior to 1.3.4, hydra.utils.instantiate() resolves and calls Python objects selected by configuration through _resolve_target() in hydra/_internal/instantiate/_instantiate2.py, allowing attacker-controlled target values and arguments to choose dangerous callables. A consuming application, library, CLI workflow, or model loader that passes untrusted configuration, CLI overrides, or model metadata into hydra.utils.instantiate() can therefore execute arbitrary code in its own process, including reading or modifying files and credentials or terminating the process. Version 1.3.4

    • Update to 1.3.4
    Published Updated
  2. CVE-2026-54071

    High · CVSS 7.8EPSS 0.38%Fix available

    BabelDOC: Arbitrary Code Execution via CMap Pickle Deserialization in babeldoc/pdfminer/cmapdb.py

    BabelDOC is a document translation tool. Prior to 0.6.3, BabelDOC's vendored PDF parser in babeldoc/pdfminer/cmapdb.py deserializes untrusted pickle data when CMapDB._load_data() loads CMap files. PDF-controlled Encoding or CMapName values and embedded PostScript usecmap operators can reach this sink after path separators are decoded, while _normalize_cmap_name() removes only a leading slash. Absolute paths or traversal sequences can escape the trusted CMap directories through os.path.join(), select an attacker-writable .pickle.gz file, and cause pickle.loads() to execute arbitrary Python code with the privileges of the BabelDOC process. This

    • Update to 0.6.3
    Published Updated
  3. CVE-2026-54134

    High · CVSS 7EPSS 0.32%Fix available

    OctoPrint: File exfiltration possible via query parameters on upload endpoints

    OctoPrint provides a web interface for controlling consumer 3D printers. Prior to 1.11.8 and 2.0.0rc3, OctoPrint's custom Tornado upload handler and Flask with Werkzeug parse request parameters differently, allowing an attacker with FILE_UPLOAD permission to inject reserved internal upload fields through query parameters or parser differentials despite the earlier GHSA-m9jh-jf9h-x3h2 fix. The affected endpoints are /api/files/{local|sdcard}, /api/languages, /plugin/backup/restore, and /plugin/pluginmanager/upload_file. An attacker can make OctoPrint treat an arbitrary host file as a temporary upload, move it into a downloadable upload directo

    • Update to 1.11.8
    • Update to 2.0.0rc3
    Published Updated
  4. CVE-2026-35163

    Medium · CVSS 4.6EPSS 0.2%Fix available

    OctoPrint: XSS in Suppressed Command Notifications

    OctoPrint provides a web interface for controlling consumer 3D printers. Prior to 1.11.8 and 2.0.0rc3, Suppressed Command notification popups use PNotify rendering for printer-controlled payload.command and payload.message values in src/octoprint/static/js/app/viewmodels/terminal.js without HTML escaping. An attacker who convinces a victim to print a crafted file can inject HTML and JavaScript into the notification, disrupt prints, read information available to the victim including sensitive settings when permitted, or perform actions in the victim's OctoPrint session. This issue is fixed in versions 1.11.8 and 2.0.0rc3.

    • Update to 1.11.8
    • Update to 2.0.0rc3
    Published Updated
  5. CVE-2026-62675

    High · CVSS 8.8EPSS 0.65%Fix available

    Omnigent: Uploaded Agent Bundle Allows Authenticated Runner RCE via Python Callable Tools

    Omnigent is an open-source AI agent framework and meta-harness for orchestrating coding agents. Prior to 0.3.0, multipart POST /v1/sessions accepts an authenticated user's agent bundle and omnigent/server/bundles.py validate_agent_bundle does not reject a tools..callable dotted Python path. omnigent/runner/tool_dispatch.py _resolve_spec_callable imports the specified module and _execute_spec_callable_tool invokes the resolved function, allowing a bundle to select subprocess.check_output and execute a local command with the runner process permissions. This can expose runner files, environment variables, credentials, workspace data, internal se

    • Update to 0.3.0
    Published Updated
  6. CVE-2026-62674

    Critical · CVSS 9EPSS 0.51%Fix available

    Omnigent: Shared Agent Bundle Overwrite Leads to Authenticated Runner RCE

    Omnigent is an open-source AI agent framework and meta-harness for orchestrating coding agents. Prior to 0.3.0, PUT /sessions/{session_id}/agent checks LEVEL_EDIT permission for a session but does not reject a bound shared or template agent whose agent.session_id is None. An authenticated user with edit access to a session can replace that shared agent bundle through omnigent/server/routes/sessions.py, add a stdio MCP server, and cause later sessions that use the shared agent to launch an attacker-controlled command through omnigent/tools/mcp.py. The command executes with the Omnigent runner process permissions and can expose files, credentia

    • Update to 0.3.0
    Published Updated
  7. CVE-2026-62677

    High · CVSS 8.8EPSS 0.61%Fix available

    Omnigent: Unvalidated os_env.cwd in agent bundle yields arbitrary host filesystem access on runners without OMNIGENT_RUNNER_WORKSPACE

    Omnigent is an open-source AI agent framework and meta-harness for orchestrating coding agents. Prior to 0.3.0, an authenticated user can upload a session-scoped agent bundle with an absolute or traversal-containing os_env.cwd value because omnigent/spec/parser.py stores the value verbatim and omnigent/spec/validator.py does not constrain it. On a runner where OMNIGENT_RUNNER_WORKSPACE is unset, omnigent/runner/resource_registry.py preserves the attacker-controlled path and omnigent/inner/os_env.py uses the resolved path as the environment root and copytree source. The _assert_within_cwd check then treats that attacker-selected root as truste

    • Update to 0.3.0
    Published Updated
  8. CVE-2026-62676

    High · CVSS 7.1EPSS 0.4%Fix available

    Omnigent Guardrail policy bypass: shell-command parser fails open in policies/builtins/_shell.py

    Omnigent is an open-source AI agent framework and meta-harness for orchestrating coding agents. Prior to 0.3.0, the shared shell-command parser in omnigent/policies/builtins/_shell.py fails to recognize combined interpreter flags, the timeout, nice, setsid, and stdbuf wrappers, command substitutions, and a single background control operator. A gated git push or gh write hidden with these forms produces no parsed operation, causing the github.py write_repos and write_branches allowlist and the working_dir.py workspace confinement policies to abstain and allow the command. An authenticated or prompt-injected agent can therefore push to an unaut

    • Update to 0.3.0
    Published Updated
  9. CVE-2026-49114

    Medium · CVSS 6.8EPSS 0.16%Fix available

    ONNX symlink-following and path-traversal arbitrary file write

    In ONNX before 1.21.0, the 'save_external_data' function builds the external-data file path from the model's external_data location field and opens it for writing without 'O_NOFOLLOW/O_EXCL', after a non-atomic 'os.path.isfile()' check. A local attacker with write access to the directory where a victim serializes external data can deterministically pre-plant a symlink that is being followed, causing the victim's write to append to any file the victim can write, e.g. ~/.ssh/authorized_keys, cron files, or application configs. Fixed in 1.21.0.

    • Update to 1.21.0
    Published Updated
  10. CVE-2026-72818

    High · CVSS 8.7EPSS 0.74%Fix available

    NLTK TweetTokenizer URL Pattern Backtracks Catastrophically on Naked-Domain-Like Input

    The URLS regular expression in nltk/tokenize/casual.py, compiled into TweetTokenizer.WORD_RE and applied by TweetTokenizer.tokenize, contains a naked-domain branch whose domain-label prefix [a-z0-9]+(?:[.\-][a-z0-9]+)* is unbounded. Input consisting of many alternating label separators can be partitioned in exponentially many ways, and because the branch also requires a trailing top-level domain that such input never supplies, the engine explores those partitions before failing at each offset. A few kilobytes of input therefore consumes seconds to minutes of single-threaded CPU, and the HANG_RE substitution performed before matching does not

    • Update to 3.10.1
    • Update to 3.10.3-1
    Published Updated
  11. GHSA-jm5p-837g-rv8g

    Medium · CVSS 6.5Fix available

    Wagtail: Improper restriction handling on Page translation API endpoint

    ### Impact A CMS user with the "submit translations" permission, could use the Admin API's "copy for translation" endpoint to copy an existing page that they do not have edit access to, allowing them to view its contents. ### Patches Patched versions have been released as Wagtail 7.0.9, 7.3.4, 7.4.3 and 8.0rc2. ### Workarounds N/A ### Acknowledgements Many thanks to tinyb0y for reporting this issue. ### For more information If you have any questions or comments about this advisory: * Visit Wagtail's [support channels](https://docs.wagtail.org/en/stable/support.html) * Email us at [[email protected]](mailto:[email protected]) (view

    • Update to 7.0.9
    • Update to 7.3.4
    • Update to 7.4.3
    • Update to 8.0rc2
    Published Updated
  12. GHSA-x5cx-w6p2-mxf2

    Medium · CVSS 6.5Fix available

    Wagtail: Improper permission handling when copying snippets

    ### Impact A CMS user with "add" permission over a snippet model, but not "change" or "view" permission, could copy an existing snippet that they do not have access to, allowing them to view its contents. ### Patches Patched versions have been released as Wagtail 7.0.9, 7.3.4, 7.4.3 and 8.0rc2. ### Workarounds N/A ### Acknowledgements Many thanks to tinyb0y for reporting this issue. ### For more information If you have any questions or comments about this advisory: * Visit Wagtail's [support channels](https://docs.wagtail.org/en/stable/support.html) * Email us at [[email protected]](mailto:[email protected]) (view our [security pol

    • Update to 7.0.9
    • Update to 7.3.4
    • Update to 7.4.3
    • Update to 8.0rc2
    Published Updated
  13. GHSA-c2xx-cjmh-9q8f

    Medium · CVSS 5.3Fix available

    Wagtail: Improper restriction handling on descendant collections in Documents and Images API

    ### Impact The Documents and Images [API V2](https://docs.wagtail.org/en/stable/advanced_topics/api/index.html) incorrectly listed items in descendants of private collections, which should inherit the view restrictions defined on their ancestors. A user with access to the API could see the filename and name of documents and images in these descendant collections. ### Patches Patched versions have been released as Wagtail 7.0.9, 7.3.4, 7.4.3 and 8.0rc2. ### Workarounds Site owners using Wagtail's API can avoid the vulnerability by adding [authentication](https://docs.wagtail.org/en/stable/advanced_topics/api/v2/configuration.html#authenti

    • Update to 7.0.9
    • Update to 7.3.4
    • Update to 7.4.3
    • Update to 8.0rc2
    Published Updated
  14. GHSA-92hv-j533-69wc

    Low · CVSS 3.7Fix available

    Wagtail: Identification of documents by SHA1 hash

    ### Impact By passing specific HTTP headers to the document serve URL endpoint, an attacker was able to determine whether a document with a given ID matched a specified SHA1 hash, regardless of any permission restrictions on the document or knowing its filename. This could allow an attacker to determine whether a document with a specific known hash is present in the Wagtail document library. This vulnerability does not expose the document's contents or any metadata beyond the already known SHA1 hash, and does not expose information about any documents for which the attacker does not know the SHA1 hash. ### Patches Patched versions have been

    • Update to 7.0.9
    • Update to 7.3.4
    • Update to 7.4.3
    • Update to 8.0rc2
    Published Updated
  15. GHSA-mc9m-6fm9-pghc

    Medium · CVSS 6.9Fix available

    Zoo Design Studio: Memory-corruption in memory handling of lib-kcl

    A race condition in kcl-lib can result in a use-after-free when accessing environments concurrently. During Vec reallocation, the previous buffer containing Box pointers is freed and replaced. A concurrent get_env operation that has already loaded a pointer to the old buffer may subsequently index into freed memory and retrieve a stale or corrupted Pin<Box<Environment>>.

    • Update to 0.2.153
    • Update to 0.3.153
    Published Updated
  16. GHSA-jgvr-6x5w-hx5w

    Medium · CVSS 6.9Fix available

    Zoo Design Studio: Recursive KCL parsing is vulnerable to denial-of-service

    ### Impact Feeding a KCL program that wraps an expression in deep, unnecessary parentheses triggers the parser’s recursive `expression` -> `unnecessarily_bracketed` -> `expression` path. With enough nesting, the call stack grows until it exceeds the process stack limit, causing a stack overflow.

    • Update to 0.3.129
    Published Updated
  17. CVE-2026-75526

    Medium · CVSS 4.4EPSS 0.26%Fix available

    django CMS: Stored XSS in edit-mode plugin exception rendering

    django CMS is an easy-to-use and developer-friendly enterprise content management system powered by Django. From 5.0.8 until 5.0.9, ContentRenderer.render_placeholder in cms/plugin_rendering.py can pass stored, attacker-controlled values to ContentRenderer.render_exception when plugin rendering fails in edit mode. Values from get_short_description(), the exception message, the placeholder, or placeholder.source are interpolated into a cms-rendering-exception heading and later returned through mark_safe. Because the heading is not escaped, stored HTML executes in an editor’s browser, and settings.DEBUG does not prevent the custom heading from

    • Update to 5.0.9
    Published Updated
  18. CVE-2026-63003

    Medium · CVSS 6.5EPSS 0.41%Fix available

    django CMS: Broken access control in page *Duplicate* allows reading the content of any page (cross-site / restriction bypass)

    django CMS is an easy-to-use and developer-friendly enterprise content management system powered by Django. Prior to 5.0.9, page duplication lacks an object-level authorization check on the source page. In cms/admin/forms.py, DuplicatePageForm.source accepts any Page, the AddPageForm constructor does not narrow a hidden source field, AddPageForm.clean does not validate the source against the user, and AddPageForm.save calls from_source. In cms/admin/pageadmin.py, duplicate and PageAdmin.has_add_permission check only whether a staff user may add a page. A crafted source value can therefore copy every placeholder and plugin from an unauthorized

    • Update to 5.0.9
    Published Updated
  19. CVE-2026-61663

    Medium · CVSS 4.3EPSS 0.34%Fix available

    django CMS: Missing authorization in `render_object_structure` discloses non-PageContent placeholder structure to low-privileged staff

    django CMS is an easy-to-use and developer-friendly enterprise content management system powered by Django. Prior to 5.0.9, render_object_structure fails to authorize non-PageContent objects that use PlaceholderRelationField. An active staff user without cms.use_structure or model-level view or change permission can request the //admin/cms/placeholder/object/<content_type_id>/structure/<object_id>/ endpoint with guessed content_type_id and object_id values. The response discloses placeholder slot names, plugin trees, plugin identifiers, labels, and object existence for frontend-editable objects. The fix applies user_can_view_placeholder_sourc

    • Update to 5.0.9
    Published Updated
  20. CVE-2026-54622

    Medium · CVSS 6.5EPSS 0.41%Fix available

    django CMS: Clipboard copy IDOR discloses unauthorized plugin content

    django CMS is an easy-to-use and developer-friendly enterprise content management system powered by Django. Prior to 5.0.8, the copy_plugins endpoint in cms/admin/placeholderadmin.py authorizes only the destination clipboard. The _copy_plugin_to_clipboard and _copy_placeholder_to_clipboard paths accept source_placeholder_id and source_plugin_id values but use has_copy_plugins_permission and check_source only for the requesting user’s clipboard, without validating the source placeholder. Under CMS_PERMISSION, a staff user with the global add permission for a plugin type can copy plugins from an unauthorized page or placeholder into the user’s

    • Update to 5.0.8
    Published Updated

Check your server

Check your installed stack and versions against the current vulnerability feeds.

Check your server →