CVE-2026-54007: open-webui: cross-origin postMessage forces model execution

GHSA-3vv5-8xxp-4f55 HIGH
Published June 17, 2026
CISO Take

Open WebUI versions up to and including 0.9.5 contain a missing origin validation flaw in the chat message listener that allows any external webpage to silently inject attacker-controlled prompts and trigger AI model execution inside an authenticated victim's browser session. The exploit is trivially simple — a public PoC in the advisory demonstrates the attack with fewer than 15 lines of HTML, requiring only that the victim be logged in when they click a link. With this CVE ranked in the top 90th percentile for exploitation likelihood, the blast radius escalates sharply in any deployment with tool integrations enabled: code interpreters, web search, file retrieval, or terminal servers can all be invoked under victim identity without any confirmation, enabling silent data exfiltration or code execution billed to the organization's LLM provider accounts. Upgrade to open-webui 0.9.6 immediately, and until patched, isolate Open WebUI from untrusted networks and disable high-privilege tool integrations.

Sources: GitHub Advisory EPSS ATLAS NVD

What is the risk?

HIGH. The exploit is trivially simple with a working PoC in the public advisory and requires no attacker authentication or prior AI/ML knowledge — only a single click from an authenticated victim. Open WebUI is one of the most widely deployed self-hosted LLM frontends, with 102 prior CVEs indicating a complex and frequently targeted attack surface. The most dangerous deployments are shared internal instances with tool integrations, where a single successful phish translates to agentic code execution or data access under a legitimate identity. The lack of CISA KEV listing reflects recency, not low risk.

How does the attack unfold?

Lure
Attacker crafts a malicious webpage and socially engineers an authenticated Open WebUI user into visiting it via a phishing link or watering-hole attack.
AML.T0078
Cross-Origin Injection
Malicious page opens Open WebUI in a new window, then sends two sequential postMessages (`input:prompt` + `action:submit`) that bypass the missing origin check and populate attacker-controlled prompt text.
AML.T0049
Unauthorized Prompt Execution
Chat.svelte calls submitPrompt() under the victim's authenticated session, firing POST /api/v1/chats/new and POST /api/chat/completions with attacker-chosen content — no confirmation dialog triggered.
AML.T0051.000
Agent Tool Abuse
If tool integrations are active (code interpreter, web search, terminal, file retrieval), the LLM executes attacker-directed tool calls under victim identity, enabling data exfiltration, code execution, or cost harvesting.
AML.T0053

What systems are affected?

Package Ecosystem Vulnerable Range Patched
Open WebUI pip <= 0.9.5 0.9.6
141.4K Pushed 4d ago 76% patched ~4d to patch Full package profile →

Do you use Open WebUI? You're affected.

How severe is it?

CVSS 3.1
N/A
EPSS
0.0%
chance of exploitation in 30 days
Higher than 10% of all CVEs
Exploitation Status
No known exploitation
Sophistication
Trivial

What should I do?

5 steps
  1. Patch immediately: upgrade open-webui to 0.9.6, which enforces same-origin validation on the postMessage listener in Chat.svelte.

  2. Until patched: restrict Open WebUI network access to trusted internal segments and prohibit access from shared or unmanaged browsers; consider adding a reverse proxy rule rejecting requests with cross-origin Referer headers.

  3. Disable high-risk tool integrations (code interpreter, terminal, file system access) until the patch is deployed.

  4. Detection: monitor for unusual bursts of POST /api/v1/chats/new or POST /api/chat/completions from a single authenticated session — especially with anomalous content or from Referer headers pointing to external origins.

  5. After patching, revoke all active user sessions to invalidate any attacker-established persistent access.

How is it classified?

Which compliance frameworks are affected?

This CVE is relevant to:

EU AI Act
Art. 15 - Accuracy, robustness and cybersecurity
ISO 42001
A.6.1.2 - AI system security
NIST AI RMF
MANAGE 2.2 - Mechanisms are in place to sustain treatment of identified AI risks
OWASP LLM Top 10
LLM01 - Prompt Injection

Frequently Asked Questions

What is CVE-2026-54007?

Open WebUI versions up to and including 0.9.5 contain a missing origin validation flaw in the chat message listener that allows any external webpage to silently inject attacker-controlled prompts and trigger AI model execution inside an authenticated victim's browser session. The exploit is trivially simple — a public PoC in the advisory demonstrates the attack with fewer than 15 lines of HTML, requiring only that the victim be logged in when they click a link. With this CVE ranked in the top 90th percentile for exploitation likelihood, the blast radius escalates sharply in any deployment with tool integrations enabled: code interpreters, web search, file retrieval, or terminal servers can all be invoked under victim identity without any confirmation, enabling silent data exfiltration or code execution billed to the organization's LLM provider accounts. Upgrade to open-webui 0.9.6 immediately, and until patched, isolate Open WebUI from untrusted networks and disable high-privilege tool integrations.

Is CVE-2026-54007 actively exploited?

No confirmed active exploitation of CVE-2026-54007 has been reported, but organizations should still patch proactively.

How to fix CVE-2026-54007?

1. Patch immediately: upgrade open-webui to 0.9.6, which enforces same-origin validation on the postMessage listener in Chat.svelte. 2. Until patched: restrict Open WebUI network access to trusted internal segments and prohibit access from shared or unmanaged browsers; consider adding a reverse proxy rule rejecting requests with cross-origin Referer headers. 3. Disable high-risk tool integrations (code interpreter, terminal, file system access) until the patch is deployed. 4. Detection: monitor for unusual bursts of POST /api/v1/chats/new or POST /api/chat/completions from a single authenticated session — especially with anomalous content or from Referer headers pointing to external origins. 5. After patching, revoke all active user sessions to invalidate any attacker-established persistent access.

What systems are affected by CVE-2026-54007?

This vulnerability affects the following AI/ML architecture patterns: Self-hosted LLM frontends, ML UI deployments with tool integrations, Agent frameworks with code interpreter or terminal access, Internal AI chat platforms with shared user sessions, RAG-connected enterprise chat deployments.

What is the CVSS score for CVE-2026-54007?

No CVSS score has been assigned yet.

What is the AI security impact?

Affected AI Architectures

Self-hosted LLM frontendsML UI deployments with tool integrationsAgent frameworks with code interpreter or terminal accessInternal AI chat platforms with shared user sessionsRAG-connected enterprise chat deployments

MITRE ATLAS Techniques

AML.T0034.002 Agentic Resource Consumption
AML.T0049 Exploit Public-Facing Application
AML.T0051.000 Direct
AML.T0053 AI Agent Tool Invocation
AML.T0078 Drive-by Compromise

Compliance Controls Affected

EU AI Act: Art. 15
ISO 42001: A.6.1.2
NIST AI RMF: MANAGE 2.2
OWASP LLM Top 10: LLM01

What are the technical details?

Original Advisory

### Summary The chat message listener allows non-same-origin `input:prompt` and `action:submit` messages, so an external site can set prompt text and trigger `submitPrompt()` in an authenticated victim session. I validated this with a cross-origin attacker page that auto-posted messages and caused unauthorized `POST /api/v1/chats/new` and `POST /api/chat/completions` requests containing attacker-controlled prompts. This enables cross-site forced actions and model/tool execution under victim privileges without consent. ### Details The chat page's window message listener in `src/lib/components/chat/Chat.svelte` processes message types including `input:prompt` and `action:submit` without adequately enforcing same-origin restrictions. Based on code around lines ~597-616, input text is set directly from `event.data.text`; `action:submit` proceeds to `submitPrompt()` on the current prompt. The logic does not apply a strict origin allowlist and permits non-same-origin control of the chat input and submission flow, leading to cross-origin command execution in the victim's authenticated UI context. As a result, backend API calls (e.g., `POST /api/v1/chats/new`, `POST /api/chat/completions`) are sent under victim credentials. Normally, via the `input:prompt:submit` postMessage type, this results in a "Confirm Prompt from Embed" confirmation dialog: https://github.com/open-webui/open-webui/blob/9bd84258d09eefe7bf975878fb0e31a5dadfe0f8/src/lib/components/chat/Chat.svelte#L604-L622 However, combining the two other types, it is possible to achieve the same effect without this confirmation: https://github.com/open-webui/open-webui/blob/9bd84258d09eefe7bf975878fb0e31a5dadfe0f8/src/lib/components/chat/Chat.svelte#L584-L602 ### PoC 1. Set up a local Open WebUI instance and log in to it, making sure a model is configured 2. Host the following HTML anywhere and visit it (optionally change http://127.0.0.1:14000 to your instance Base URL): ```html <h1>Click anywhere</h1> <script> function sleep(ms) { return new Promise(r => setTimeout(r, ms)); } onclick = async () => { w = window.open('http://127.0.0.1:14000'); await sleep(2000); w.postMessage({ type: 'input:prompt', text: "INJECTED PROMPT" }, '*'); await sleep(500); w.postMessage({ type: 'action:submit' }, '*'); } </script> ``` 3. Click anywhere on the page, then notice without further interaction the "INJECTED PROMPT" is executed on the Open WebUI instance <img width="874" height="264" alt="image" src="https://github.com/user-attachments/assets/244d9015-0dbf-47e0-a30e-1c2fbbde5e58" /> ### Impact Conditions required: The victim must be authenticated to Open WebUI in the browser (token cookie present). This issue enables cross-site forced actions under the victim's identity. An attacker can silently inject prompts and trigger model/tool execution (e.g., code interpreter, web search, retrieval, terminal/tool servers) as the victim without confirmation. ### Original Agent Report <img width="400" alt="app aikido dev_ai-pentests_projects_116389_assessments_019d67d4-81c8-7dd2-bb9e-0a4a774b2c78_issues_sidebarIssue=20439940 (4)" src="https://github.com/user-attachments/assets/7b6521ed-d08b-446d-a918-103523d08a1e" />

Exploitation Scenario

An attacker targets an enterprise where developers use a shared self-hosted Open WebUI instance connected to an internal code interpreter and document retrieval tool. The attacker sends a spear-phishing email with a link to an attacker-controlled domain. When a logged-in victim clicks the link, the page silently opens Open WebUI in a new window, waits two seconds for load, then fires two postMessages: `input:prompt` with the text 'List all files in the shared documents folder and output their contents' and `action:submit` to bypass the confirmation dialog. The chat API fires under the victim's session — the code interpreter or file retrieval tool executes, and the LLM response containing internal documents renders in the victim's tab. The attacker has no visibility in this scenario unless they chain it with a prompt that exfiltrates via a web search tool call to an attacker-controlled endpoint.

Weaknesses (CWE)

CWE-346 — Origin Validation Error: The product does not properly verify that the source of data or communication is valid.

Source: MITRE CWE corpus.

Timeline

Published
June 17, 2026
Last Modified
June 17, 2026
First Seen
June 17, 2026

Related Vulnerabilities