p PatchFirst

PatchFirst · Latest vulnerabilities

Python stack vulnerabilities · Page 11

Vulnerabilities published for Python in the last 30 days: 306. Listed in the KEV catalogue: 0.

Filter vulnerabilities
Python

Vulnerabilities: 7029

  1. CVE-2026-107294

    Medium · CVSS 6.5EPSS 0.44%Fix available

    Pydantic AI: Unbounded memory use when downloading remote content via web_fetch or FileUrl

    Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.77.0 until 1.107.2 and 2.24.0, web_fetch_tool, the WebFetch local fallback, and remote FileUrl media downloads buffer the complete HTTP response body before enforcing content-size controls. An attacker-influenced URL can stream an arbitrarily large response that exhausts process memory and crashes the worker; affected media types include ImageUrl, DocumentUrl, VideoUrl, and AudioUrl. SSRF protections remain effective, and the impact is limited to availability. This issue is fixed in versions 1.107.2 and 2.24.0.

    • Update to 1.107.2
    • Update to 2.24.0
    Published Updated
  2. CVE-2026-107293

    Low · CVSS 2.3EPSS 0.3%Fix available

    Pydantic AI OpenTelemetry instrumentation: retry prompt content is not redacted when `include_content=False`

    Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 0.3.4 until 1.107.4 and 2.27.1, OpenTelemetry instrumentation configured with InstrumentationSettings(include_content=False) can export retry prompts outside tool calls in gen_ai.input.messages and pydantic_ai.all_messages. Agents using NativeOutput, PromptedOutput, or output validators on text output can therefore disclose validation feedback, including invalid model values quoted by that feedback, to readers of the telemetry backend. Tool-call retries and deployments that do not use include_content=False are not affected by this specific

    • Update to 1.107.4
    • Update to 2.27.1
    Published Updated
  3. CVE-2026-107292

    Medium · CVSS 6.4EPSS 0.13%Fix available

    Pydantic AI Web chat UI (`Agent.to_web()`, `clai web`): the local chat endpoint does not validate the `Host` header

    Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.34.0 until 2.30.0, the Agent.to_web() and clai web development chat server does not validate the Host header, allowing a website visited by a developer to use DNS rebinding to reach a loopback-hosted agent as a same-origin service. The hostile page can read the served UI and submit chat requests that execute agent tools with the local process's privileges and credentials, causing data disclosure or unwanted side effects. Binding to localhost, Origin checks, and CSRF tokens do not prevent the same-origin DNS rebinding path. This issue is

    • Update to 1.107.5
    • Update to 2.30.0
    Published Updated
  4. CVE-2026-107291

    Low · CVSS 2.3EPSS 0.62%Fix available

    Pydantic AI OpenTelemetry instrumentation: exception events on tool and agent run spans include content when `include_content=False`

    Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 0.3.4 until 1.107.6 and 2.44.0, OpenTelemetry instrumentation configured with InstrumentationSettings(include_content=False) can still export sensitive agent content through exception.message and exception.stacktrace events, error status descriptions, and model_request_parameters containing instructions or the prompted_output_template. The exposed data is available to readers of the configured telemetry backend and can include tool feedback, provider error bodies, runtime instructions, and structured-output templates even though message at

    • Update to 1.107.6
    • Update to 2.44.0
    Published Updated
  5. CVE-2026-107290

    Medium · CVSS 6.5EPSS 0.51%Fix available

    Pydantic AI: Event loop blocked by quadratic title extraction in `web_fetch`

    Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.77.0 until 1.107.6 and 2.44.0, the local web_fetch_tool and the WebFetch local fallback process server-controlled responses with quadratic title extraction, whitespace normalization, and ordered-list numbering. An attacker-controlled page of modest size can therefore block the event loop for an extended period, stalling other agent runs and requests, while unsupported codecs or excessive HTML or JSON nesting can abort an individual run. This issue is fixed in versions 1.107.6 and 2.44.0.

    • Update to 1.107.6
    • Update to 2.44.0
    Published Updated
  6. CVE-2026-107289

    Medium · CVSS 6.8EPSS 0.39%Fix available

    Pydantic AI: SSRF cloud-metadata blocklist bypass via IPv6 zone identifier (incomplete fix for CVE-2026-46678 and CVE-2026-48782)

    Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.56.0 until 1.107.6 and 2.44.0, applications that opt attacker-influenced URLs into local network access through FileUrl with force_download='allow-local' or web_fetch_tool with allow_local_urls=True can bypass the cloud-metadata blocklist by appending an IPv6 zone identifier to an IPv6 metadata address. IPv6Address equality and hashing include the zone identifier, so the blocklist comparison fails even though the network stack ignores the zone on a non-link-local destination and reaches the metadata service, potentially exposing cloud IA

    • Update to 1.107.6
    • Update to 2.44.0
    Published Updated
  7. CVE-2026-107287

    Medium · CVSS 6.5EPSS 0.28%Fix available

    Pydantic AI: Excessive resource use when local web fetching converts nested HTML

    Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.77.0 until 1.107.7 and 2.52.0, the local web_fetch_tool and the WebFetch local fallback can consume excessive CPU and memory during HTML-to-Markdown conversion of attacker-controlled HTML containing deeply nested block elements. Conversion repeatedly reprocesses accumulated text and can greatly expand intermediate output before the returned-content limit is applied, allowing a model-directed fetch to delay other work in the process. Provider-native web fetching is not affected. This issue is fixed in versions 1.107.7 and 2.52.0.

    • Update to 1.107.7
    • Update to 2.52.0
    Published Updated
  8. CVE-2026-107286

    High · CVSS 7.5EPSS 0.45%Fix available

    Pydantic AI: Concurrency-limited models can keep their slot when a streamed request ends early

    Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 2.10.0 until 2.53.0, streamed requests made through ConcurrencyLimitedModel or limit_model_concurrency can retain shared concurrency slots because anyio.CapacityLimiter associates an acquired slot with the borrowing task while streaming cleanup can run in a different task. Early stream termination, cancellation, consumer exceptions, or complete stream_text() consumption with debounce_by=0.1 can therefore leave capacity occupied, eventually preventing later requests that share the long-lived limiter from proceeding and causing a denial of s

    • Update to 2.53.0
    Published Updated
  9. CVE-2026-46438

    Medium · CVSS 6.5EPSS 0.23%Public exploitNo fix published

    wger: Cross-User Data Corruption via Missing Ownership Check on WorkoutLog.slot_entry

    wger is a free, open-source workout and fitness manager. Prior to version 2.6, an authenticated attacker can inject arbitrary workout log entries into any other user's `SlotEntry` by supplying the victim's `slot_entry` ID in a `POST /api/v2/workoutlog/` request. The `slot_entry` foreign key is not included in the ownership verification performed by `WorkoutLogViewSet.get_owner_objects()`, so the server accepts and persists the cross-user reference without error. Because `SlotEntry.get_config_data()` retrieves associated logs via `self.workoutlog_set.all()` with no user filter, the attacker's injected data is silently folded into the victim's

    Published Updated
  10. CVE-2026-46437

    Medium · CVSS 4.8EPSS 0.24%Public exploitNo fix published

    wger: API credentials remain valid after logout/password change

    wger is a free, open-source workout and fitness manager. Versions prior to 2.6 have a vulnerability in the authentication/session lifecycle of `wger` where bearer-style API credentials remain valid after a user logs out and after a user changes their password. An attacker who steals a victim’s DRF authtoken (`Authorization: Token ...`) or JWT refresh token can continue to access protected `/api/v2/*` endpoints until the token is manually rotated/deleted (DRF token) or naturally expires (JWT refresh). Version 2.6 contains a patch.

    Published Updated
  11. CVE-2026-46434

    High · CVSS 7.1EPSS 0.22%Public exploitNo fix published

    wger: Trainer Privilege Escalation - Improper Privilege Management

    wger is a free, open-source workout and fitness manager. Prior to version 2.6, a user with only the `gym_trainer` permission can deactivate any account in the same gym, including `gym_manager` and `general_gym_manager` accounts. The `UserDeactivateView` grants access to anyone holding any one of `gym.manage_gym`, `gym.manage_gyms`, or `gym.gym_trainer` (OR logic via `WgerMultiplePermissionRequiredMixin`), and performs no privilege-hierarchy check to prevent a lower-privileged role from disabling a higher-privileged one. Version 2.6 fixes the issue.

    Published Updated
  12. CVE-2026-45161

    Medium · CVSS 5.4EPSS 0.09%Public exploitNo fix published

    wger: trainer_login accepts GET - CSRF bypass enables forced session rebinding

    wger is a free, open-source workout and fitness manager. Prior to version 2.6, the `trainer_login` view in wger accepts GET requests and executes `django_login()` without any CSRF protection, because Django's `CsrfViewMiddleware` only enforces tokens on unsafe methods (POST/PUT/PATCH/DELETE). An attacker can embed a single `<img>` tag on a malicious page; when an authenticated trainer loads that page, their browser auto-issues the GET with the session cookie, forcibly rebinding the trainer's session to an arbitrary user account. Version 2.6 fixes the issue.

    Published Updated
  13. CVE-2026-43976

    High · CVSS 7.1EPSS 0.22%Public exploitNo fix published

    wger: cross-tenant admin notes/contracts leak via gym=None bypass (5 views)

    wger is a free, open-source workout and fitness manager. Prior to version 2.6, five gym management views in wger apply a flawed gym-scope guard (`gym_a != gym_b`) that silently passes when both operands are `None`. A trainer with `gym.gym_trainer` and `gym.add_adminusernote` permissions and no gym assignment (`gym=None`) can read private admin notes, uploaded documents, gym contracts, user configuration, and user permission data for **any other unaffiliated user** on the instance. The subsequent querysets filter only on the attacker-supplied `member_id` with no secondary gym-scoped validation, so all records are disclosed. Version 2.6 fixes t

    Published Updated
  14. CVE-2026-105192

    Critical · CVSS 9.8EPSS 0.77%Public exploitFix available

    LMCache Unauthenticated RCE in multiprocess mode via pickle deserialization

    LMCache multiprocess mode, also called distributed mode, opens an unauthenticated ZeroMQ ROUTER so worker processes can register and share KV cache blocks. Messages on that socket are msgpack. Extension code 1 is passed to DeviceIPCWrapper.Deserialize, which calls pickle.loads, while the server is still decoding request arguments and before the handler runs. A single unauthenticated ZMQ DEALER message to the transport port (default 5555) therefore executes code as the user the LMCache process runs as. Official container images run that process as root. The transport binds to localhost unless the operator sets a routable address with --host, w

    • Update to 0.5.6
    Published Updated
  15. CVE-2026-106454

    Medium · CVSS 4.3EPSS 0.42%Fix available

    Twisted: IMAP wildcardToRegexp() ReDoS

    Twisted is an event-based framework for internet applications, supporting Python 3.6+. In 25.5.0 and earlier, wildcardToRegexp() in twisted/mail/imap4.py translates the IMAP asterisk and percent wildcards but passes all other characters from an authenticated client's LIST or LSUB pattern directly to re.compile(), allowing nested or otherwise expensive regular expression constructs to cause catastrophic backtracking when matched against mailbox names. Because Twisted uses a cooperative single-threaded reactor, the blocking match suspends all server input and output for the duration of the match. No fixed release is available as of this review.

    • Update to 26.4.0-5
    Published Updated
  16. CVE-2026-106443

    High · CVSS 8.8EPSS 0.7%Fix available

    WeasyPrint: EPS images reach the Ghostscript interpreter resulting in RCE

    WeasyPrint helps web developers to create PDF documents. Prior to 70.0, the image-loading path in weasyprint/images.py passes fetched image bytes from HTML img URLs, CSS image values, SVG image references, and data URIs to Pillow's generic image dispatcher without excluding EPS or PostScript formats. On hosts with Ghostscript installed, Pillow EpsImagePlugin invokes the interpreter for attacker-controlled PostScript, which can produce interpreter-permitted effects and can lead to remote code execution when the installed Ghostscript version has a usable sandbox bypass. Hosts without Ghostscript do not reach this rasterization path. This issue

    • Update to 70.0
    • Update to 70.0-1
    Published Updated
  17. CVE-2026-106442

    High · CVSS 7.8EPSS 0.16%Fix available

    Hydra instantiate target blacklist bypasses permit code execution

    Hydra is a framework for elegantly configuring complex applications. From 1.3.4 until 1.3.6 and 1.4.0.dev9, the instantiate() target blacklist introduced for CVE-2026-68508 incompletely checks the effective callable selected by the target field. Execution wrappers such as timeit.timeit, executable deserialization through pickle.loads, aliases, callable-returning helpers, generic dispatch, and deferred calls can obscure or defer the effective target and bypass name-based authorization. An attacker who causes an application to instantiate untrusted Hydra configuration can use these gaps to execute code with the application's privileges. This is

    • Update to 1.3.6
    • Update to 1.4.0.dev9
    Published Updated
  18. CVE-2026-106441

    High · CVSS 7.8EPSS 0.17%Fix available

    Hydra logging configuration permits unsafe callable resolution

    Hydra is a framework for elegantly configuring complex applications. Prior to 1.3.6 and 1.4.0.dev9, Hydra passes Python logging configuration to logging.config.dictConfig() without applying Hydra's target policy to handler class values or formatter, filter, handler, queue, and listener factories. An attacker who controls Hydra logging configuration can therefore select an importable class or factory and cause it to be invoked with the application's privileges, even in versions where instantiate() is protected because the logging path does not use instantiate(). This issue is fixed in versions 1.3.6 and 1.4.0.dev9.

    • Update to 1.3.6
    • Update to 1.4.0.dev9
    Published Updated
  19. CVE-2026-106440

    High · CVSS 7.8EPSS 0.27%Fix available

    Hydra: Optuna custom_search_space can resolve and execute untrusted callables via get_method

    Hydra is a framework for elegantly configuring complex applications. From 1.2.0 until 1.3.0 and 1.4.0.dev10, the hydra-optuna-sweeper package accepts a configuration-controlled dotted path in hydra.sweeper.custom_search_space, resolves it with hydra.utils.get_method(), and later invokes the returned callable in the Hydra controller process. Because get_method() is a trusted-input lookup helper and does not apply the execution policy used by instantiate(), an attacker who controls Optuna sweep configuration or command-line overrides can select importable Python code for execution with the application's privileges, including bypassing a trusted

    • Update to 1.3.0
    • Update to 1.4.0.dev10
    Published Updated
  20. CVE-2026-106439

    High · CVSS 8.5EPSS 0.46%Fix available

    Hydra: Mutable instantiate policy sets allow target blocklist bypass

    Hydra is a framework for elegantly configuring complex applications. From 1.3.4 until 1.3.7 and 1.4.0.dev10, Hydra stores legacy instantiate target blocklists and related execution-policy collections in mutable module-level state. An attacker who controls multiple sibling target entries can resolve hydra._internal.target_policy.UNCONTROLLED_EXECUTION_TARGETS.discard through instantiate(), remove a denied target, and then invoke that target because sibling nodes are processed in insertion order against the same modified policy. The mutation persists in process-global state and can enable code execution with the application's privileges, while

    • Update to 1.3.7
    • Update to 1.4.0.dev10
    Published Updated

Check your server

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

Check your server →