Advisories
Security vulnerabilities, privacy incidents, safety concerns, and policy updates affecting LLMs and AI agents.
Security vulnerabilities, privacy incidents, safety concerns, and policy updates affecting LLMs and AI agents.
3,134 items
Incorrect authorization in Azure Machine Learning allows an unauthorized attacker to disclose information over a network. The source gives no affected versions, attack preconditions or further technical detail.
CVE-2026-55946 is an improper neutralization of special elements used in a command ('command injection') flaw in Microsoft Copilot. An unauthorized attacker can exploit it over a network to disclose information.
AI Agent Automation, a modular AI agent workflow platform, is affected by CVE-2026-54520 in versions prior to 0.9.1. The executeStep file-step implementation in backend/src/agents/executor.js passes the user-controlled step.path value through path.resolve with process.cwd() and uses the result for reads or writes without confirming it stays inside an approved workflow directory. An authenticated user who can create or modify workflow file steps can use traversal segments to read sensitive files or write and overwrite files the backend process can access, including application-adjacent files when process permissions allow.
AI Agent Automation versions prior to 0.9.1 contain an authorization flaw in backend/src/controllers/memory.controller.js. The listMemories, deleteMemory, and clearAgentMemory functions accept a caller-supplied agentId or memory _id without checking that the related Agent belongs to req.user. An authenticated attacker who knows or obtains another user's identifiers can read that user's AgentMemory content, delete an individual memory, or clear all memory for a victim agent.
SQLBot, a Text-to-SQL system built on large language models and RAG, is affected prior to version 1.9.0. An authenticated user can submit a crafted sheet["tableName"] value through POST /api/v1/datasource/, which is stored without safe identifier handling. When the datasource is later removed via DELETE /api/v1/datasource/{id}, PostgreSQL executes the stored value in cleanup SQL, allowing COPY TO PROGRAM and arbitrary operating-system commands under the postgres process privileges inside the SQLBot container.
Fixed in version 1.9.0.
SQLBot, a Text-to-SQL system built on large language models and RAG, is affected by CVE-2026-53556 before version 1.9.0. The POST /api/v1/datasource/previewData endpoint places the client-controlled table_name value into generated SQL without safe identifier handling. An authenticated user can use a crafted table_name to call pg_read_file(), pg_read_binary_file() or pg_ls_dir() through a datasource pointed at the internal PostgreSQL service, reading filesystem content such as /etc/hosts and /etc/passwd, and potentially configuration, credentials and source code. In the default tested trusted loopback authentication configuration, the connection runs with PostgreSQL superuser privileges.
SQLBot, a Text-to-SQL system built on large language models and RAG, stores uploaded image/svg+xml assistant UI logos without sanitizing embedded active content before version 1.9.0. An authenticated uploader can submit such a file through PATCH /api/v1/system/assistant/ui, and SQLBot serves it inline from the same origin via GET /api/v1/system/assistant/picture/{filename}. When another user loads the file, embedded JavaScript runs in the SQLBot web application context with access to the victim's session data and actions.
Fixed in 1.9.0.
CVE-2026-53554 affects SQLBot, a Text-to-SQL system built on large language models and RAG, prior to 1.9.0. The POST /api/v1/datasource/parseExcel endpoint trusts attacker-controlled multipart filenames when choosing storage, and it writes uploaded content before spreadsheet parsing and validation finish. A crafted upload can plant a Python file in /opt/sqlbot/app/alembic/versions/ even when parsing fails and the endpoint returns an error. On the next startup or migration, Alembic imports that file and runs its module-level statements inside the SQLBot runtime.
MCP Documentation Server versions 1.13.0 through 1.13.1 start a Web UI by default on port 3080, and startWebServer in src/web-server.ts calls app.listen(PORT) without a host, binding the unauthenticated document-management API to all interfaces instead of localhost. A network-reachable client can call endpoints such as GET /api/documents, POST /api/documents, DELETE /api/documents/:id and POST /api/search-all without credentials to read, search, insert or delete documents and alter the assistant's knowledge base. The attacker must be able to reach the service over a LAN, VM network, container bridge, VPN or other routed network, and the issue does not grant remote code execution.
The rmcp crate's StreamableHttpClientTransport forwards caller-supplied custom HTTP headers, such as X-API-Key, X-Auth-Token and Api-Key, to cross-origin redirect targets. The default_http_client() function sets no redirect policy override, so reqwest's default limited(10) policy follows 307/308 redirects and strips only Authorization, Cookie and Proxy-Authorization, leaving headers set through StreamableHttpClientTransportConfig.custom_headers intact. An attacker who controls a redirect target can capture those secrets, as tested at commit c330fede90e4729c234f8e87fdbc5ea27a1dd10c.
Unauthenticated remote attackers can leak one entry from the in-memory session table of `LocalSessionManager` per HTTP request by sending a well-formed JSON-RPC `POST` that is not an `InitializeRequest` to the rmcp Streamable HTTP server. `handle_post` in `crates/rmcp/src/transport/streamable_http_server/tower.rs` allocates the session before validating the body and early-returns on failure without calling `close_session`, so the leak is permanent for the process lifetime. The source reports over 2,000 leaking requests per second from a single Python client, equivalent to roughly 75 GB of resident memory per day.
The rmcp library does not validate the resource field in OAuth Protected Resource metadata (RFC 9728), so a malicious MCP server can point an OAuth flow at a legitimate authorization server. The victim completes the authorization prompt, and the resulting access token, valid for the legitimate server, is sent to the attacker's server, which can then impersonate the victim. All MCP clients built on rmcp that use OAuth-protected MCP servers are affected.
Recommended fix: (1) Add a `resource: Option<String>` field to the `ResourceServerMetadata` struct in `crates/rmcp/src/transport/auth.rs`. (2) After fetching the metadata, compare the `resource` value with the configured base URL (ignoring trailing slashes) and return a `MetadataError` on mismatch.
Kedro-Datasets versions 5.0.0 through 9.5.0 have a flaw in kedro_datasets_experimental.pytorch.PyTorchDataset, which loads .pt model files with torch.load without enforcing weights_only=True and silently drops user-supplied load_args. On PyTorch versions earlier than 2.6, a malicious pickle-backed model from an attacker-influenced source can execute arbitrary code when a Kedro pipeline loads it. The issue affects only the opt-in experimental component.
Fix: Fixed in version 9.5.0.
LiteLLM, an AI Gateway proxy for calling LLM APIs, is affected before version 1.83.9. An authenticated caller holding a valid virtual key can nest api_base inside the user_config request body, which bypasses is_request_body_safe because that check blocks only top-level api_base and base_url. Since user_config builds the outbound router, the caller can redirect server-side requests to an internal or external host of their choosing and reach endpoints they could not otherwise access.
Fixed in 1.83.9.
vLLM versions prior to 0.28.0 let Chat Completions and Responses request bodies select the pynvvideocodec video backend through media_io_kwargs.video.video_backend, even when startup configuration chose a software decoder. The engine budgets decoder GPU memory only from static configuration, so the request-selected backend's CUDA context, decoder surfaces and decoded-frame allocations escape the KV-cache budget. An attacker who can submit video requests to a video-capable GPU deployment with PyNvVideoCodec installed can exhaust shared GPU memory, causing request failures, worker crashes or denial of service.
Stanza, a Stanford NLP Python library, prior to 1.14.0 extracts downloaded model and resource archives in stanza/resources/common.py via zipfile.ZipFile.extractall without validating member paths. Archives reached through stanza.download and stanza.install_corenlp containing parent-directory traversal entries can write outside the model directory, overwriting files writable by the Stanza process and potentially enabling code execution through shell configuration, SSH authorization data, Python packages, or executable scripts.
vLLM versions prior to 0.24.0 have an input_audio handling flaw on the /v1/chat/completions endpoint. The path calls AudioMediaIO.load_bytes or AudioMediaIO.load_file without passing VLLM_MAX_AUDIO_DECODE_DURATION_S to the shared audio decoder, so the duration guard used by /v1/audio/transcriptions is bypassed. An unauthenticated client can submit a small compressed audio input that expands into a very large float32 PCM allocation, causing an out-of-memory worker crash. Inline data URLs are also not bounded by VLLM_AUDIO_FETCH_TIMEOUT. The issue affects deployments serving an audio-capable model, and authentication changes only deployment-specific reachability.
LMDeploy versions from 0.9.1 up to but not including 0.10.2 run an RPC server (AsyncRPCServer in zmq_rpc.py) that deserializes incoming messages with pickle.loads() in call_and_response() without any sanitization. This allows remote code execution through the RPC server.
Fix: Version 0.10.2 contains a patch.
NVD/CVE DatabaseA vulnerability was found in vllm-project vllm up to 0.29.0. The flaw sits in unspecified functionality of vllm/v1/sample/thinking_budget_state.py and is triggered by manipulation that results in inefficient algorithmic complexity. It can be exploited remotely.
Fix: The pull request to fix this issue awaits acceptance.
NVD/CVE DatabaseThe WPBot WordPress plugin before 8.7.6 lacks a capability check on the AJAX action that saves its Claude AI provider settings. Users with subscriber-level access can therefore overwrite those settings, including the API key used for the plugin's outgoing AI requests.
Fix: Fixed in 0.9.1.
Fix: Fixed in 0.9.1.
NVD/CVE DatabaseFix: This issue is fixed in version 1.9.0.
NVD/CVE DatabaseFix: Fixed in 1.9.0.
Fix: Fixed in 1.13.1.
NVD/CVE DatabaseFix: In default_http_client(), add .redirect(reqwest::redirect::Policy::none()) to the reqwest::Client builder so the transport can inspect 3xx responses and strip sensitive headers before following them. Alternatively, use reqwest::ClientBuilder::connection_verbose or per-request Request::headers_mut() to remove auth headers before the redirect is followed.
Fix: Fixed in 0.28.0.
Fix: Fixed in version 1.14.0.
NVD/CVE DatabaseFix: Fixed in version 0.24.0.