Skip to main content

Storybook EUVDEUVD-2026-107393

| CVE-2026-114125 HIGH
Code Injection (CWE-94)
2026-10-21 GitHub_M GHSA-f2ph-cmg5-wxc8
8.6
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Lure developer to malicious site
  2. Delivery
    Embed/message running Storybook preview
  3. Exploit
    Developer interacts with injected UI
  4. Execution
    Inject code into story file
  5. Persist
    Local runtime executes modified file
  6. Impact
    Arbitrary code execution as developer

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an affected Storybook development server (8.0.0-8.6.18, 9.0.0-9.1.20, 10.0.0-10.6.1, or 11.0.0-alpha.0-alpha.5) started via storybook dev AND opened in a web browser. Exploitation is LIMITED by several factors: the developer must actively visit the attacker's website in the same browser and interact with the injected interface (UI:A); not exploitable against headless/automation/MCP-only dev servers that are never opened in a browser, nor against built/published Storybook output. Full arbitrary code execution additionally requires that a maliciously modified story file is subsequently executed by a local runtime. Recent Chrome/Firefox versions may prompt before a website connects to a localhost service, which reduces exploitability if the developer declines.

Impact

This is a genuine but conditional risk rather than a drop-everything emergency. The CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/VC:H/VI:H/VA:H, base 8.6) rates it High, and CWE-94 (code injection) with full confidentiality/integrity/availability impact reflects the worst-case arbitrary code execution outcome. However, UI:A is decisive: the advisory and description both state a developer must actively visit an attacker-controlled site AND interact with an injected interface while an affected storybook dev server is running - this is not hands-off network exploitation. No KEV listing, no public exploit, and no EPSS score are provided, and the vendor explicitly states 'We are not aware of exploitation in the wild,' so there is no public exploit identified at time of analysis. The CVSS PR:N is technically correct (Storybook's dev server has no authentication), but it should not be read as 'trivially remotely exploitable' because the attack depends on a running local dev server plus developer interaction, and modern Chrome/Firefox localhost-access permission prompts further reduce (but do not eliminate) feasibility. Net: a high-impact, moderate-likelihood developer-workstation vulnerability - prioritize patching in developer environments, but it is not a mass-exploitable server-side RCE.

Exploit ScenarioDerived

A developer running an affected Storybook dev server (e.g. on localhost:6006) visits a malicious website in the same browser. The site embeds or messages the Storybook preview and, because iframe embedding and postMessage origins are insufficiently restricted, delivers attacker-controlled events that the developer triggers by interacting with the injected UI, causing unauthorized edits to story files; if that modified file is subsequently executed by a local runtime, the attacker gains arbitrary code execution with the developer's privileges. No public exploit code is identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 21, 2026

Cross-origin message injection in the Storybook preview iframe lets a malicious website drive a developer's locally running storybook dev server, sending attacker-controlled events into the preview that can rewrite story files in the project and, if a modified file is later executed by a local runtime, achieve arbitrary code execution with the developer's privileges. The flaw affects Storybook 8.0.0 through 8.6.18, 9.0.0 through 9.1.20, 10.0.0 through 10.6.1, and 11.0.0-alpha.0 through alpha.5; per the CVSS vector it is unauthenticated (PR:N) but requires user interaction (UI:A), since the developer must visit the attacker's site and engage with the injected interface in the same browser. Storybook states it is not aware of exploitation in the wild, and no public exploit code has been identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade to 8.6.19, 9.1.21, 10.6.2, or 11.0.0-alpha.6 - Storybook shipped fixes across all affected major lines, and patched releases are available at the tagged GitHub releases (v8.6.19, v9.1.21, v10.6.2, v11.0.0-alpha.6) referenced from advisory GHSA-f2ph-cmg5-wxc8; the fix is also visible in PR https://github.com/storybookjs/storybook/pull/36726. If an immediate upgrade is impossible, the vendor's guidance is to stop running an affected storybook dev server until the fix is applied, since there is no configuration-only workaround in unpatched code; do not open untrusted websites in the same browser session as a live dev server, and decline any browser prompt asking a website to connect to a localhost service (a partial but non-complete mitigation in recent Chrome and Firefox). After upgrading, note the intentional behavioral change: storybook dev now sends Content-Security-Policy: frame-ancestors restricting embedding to Storybook itself and localhost/127.0.0.1, which breaks embedding over a LAN address, tunnel, or custom hostname - generate static output with storybook build instead, or set security.insecureRemoteIframeEmbed: true in .storybook/main to restore the old embedding (trade-off: any website the developer visits can then frame the local server). Similarly, cross-origin composition of live dev content now fails because preview messaging only trusts its own origin and a localhost manager; either compose a built Storybook or set security.insecureIframeMessaging: true in .storybook/main (trade-off: any embedding site can exchange messages with the Storybook). Enable these flags only as long as strictly necessary and revert them afterward, and use the final refs URL (not an http to https redirect target) when composing.

Affected VersionsENISA

storybook 8.0.0, < 8.6.19
storybook 11.0.0-alpha.0, < 11.0.0-alpha.6
storybook 10.0.0, < 10.6.2
storybook 9.0.0, < 9.1.21

Affected Packages

npm @storybook/addon-mcp fix: 10.6.2, 11.0.0-alpha.6
npm @storybook/addon-vitest fix: 9.1.21, 10.6.2, 11.0.0-alpha.6
npm @storybook/core fix: 8.6.19
npm @storybook/core-server fix: 8.6.19
npm @storybook/experimental-addon-test fix: 8.6.19
npm storybook fix: 8.6.19, 9.1.21, 10.6.2, 11.0.0-alpha.6

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 6 packages in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Storybook's manager UI communicates with its preview via HTML5 postMessage inside an <iframe>, and neither side previously validated the origin of the sender or restricted who could embed the dev server. Because storybook dev serves the manager and preview on localhost without a Content-Security-Policy: frame-ancestors header on manager/preview responses, an arbitrary website could frame the developer's local Storybook and exchange messages with it, a classic missing-origin-validation pattern that maps to CWE-94 because the injected events ultimately give an attacker influence over generated or edited story source files. The attack chain is two-stage: first cross-origin control of the preview, then code execution only if a tampered story file is subsequently run by a local build/dev runtime. The fix adds frame-ancestors enforcement so only Storybook itself and pages on localhost/127.0.0.1 may embed a dev server, and makes both manager and preview accept messages only from their own preview iframes / own origin (and from a localhost manager), addressing replies to the expected origin instead of *. Built and published Storybook output is explicitly out of scope because the header and messaging restrictions apply only to storybook dev. Recent Chrome and Firefox localhost-access permission prompts partially mitigate the issue but do not eliminate it.

Know when Storybook gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.6 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.8 HIGH

Network-reachable via browser with no Storybook auth (PR:N), but a developer must visit a malicious site and interact (UI:R); impact is full code execution on the developer host (C/I/A:H).

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Red Hat 8.8 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Active
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 21, 2026 - 19:18 EUVD
CVE Published
Oct 21, 2026 - 17:08 cve.org
HIGH 8.6

DescriptionCVE.org

Storybook is a frontend workshop for building user interface components and pages in isolation. From 8.0.0 until 8.6.19, 9.1.21, 10.6.2, and 11.0.0-alpha.6, a malicious website can interact with the preview of a running Storybook development server. Insufficient iframe embedding and message-origin restrictions can allow attacker-controlled events to reach the running preview. A developer must visit the malicious website and interact with the injected interface. The attack can cause unauthorized changes to story files and, if a changed file is later executed by a local runtime, arbitrary code execution with the developer's privileges. This issue is fixed in 8.6.19, 9.1.21, 10.6.2, and 11.0.0-alpha.6.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 9 npm packages depend on @storybook/core-server (6 direct, 3 indirect)

Ecosystem-wide dependent count for version 8.0.0.

Technical POC Analysis

Bug class is a chain, and the evidence is split on labeling.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Storybook's locally running development preview server (versions 8.x, 9.x, 10.x, and 11.0.0-alpha) can be manipulated by a malicious website a developer visits in the same browser, allowing attacker-controlled content to rewrite story files in the project and potentially execute code with the developer's own account privileges. Engineering workstations are the exposure point, and those machines typically hold repository credentials, cloud tokens, and access to internal source code, so a single successful interaction could escalate into broader codebase or supply-chain risk. Exploitation requires the developer to visit an attacker-controlled site and engage with the injected interface, and no public exploit or active exploitation has been identified, but no vendor patch is currently available.

Threat Intelligence Overview

EPSS Score
0.4%
Top 70% exploitable
Prevalence
High
extremely popular frontend component-development tool, broad developer adoption
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
High

Priority Score

43
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy