CVE-2026-8467: CWE-94 Improper Control of Generation of Code ('Code Injection') in phenixdigital phoenix_storybook
Code Injection vulnerability in phenixdigital phoenix_storybook allows unauthenticated remote code execution via unsanitized attribute value interpolation in HEEx template generation. The psb-assign WebSocket event handler in 'Elixir.PhoenixStorybook.Story.PlaygroundPreviewLive':handle_event/3 accepts arbitrary attribute names and values from unauthenticated clients. These values are passed to 'Elixir.PhoenixStorybook.Helpers.ExtraAssignsHelpers':handle_set_variation_assign/3, which stores them verbatim. When rendering, 'Elixir.PhoenixStorybook.Rendering.ComponentRenderer':attributes_markup/1 interpolates binary attribute values directly into a HEEx template string as name="<val>" without escaping double quotes or HEEx expression delimiters. An attacker can supply a value containing a closing quote followed by a HEEx expression block (e.g. foo" injected={EXPR} bar="), which causes EXPR to be treated as an inline Elixir expression. The resulting template is compiled via EEx.compile_string/2 and executed via Code.eval_quoted_with_env/3 with full Kernel imports and no sandbox, giving the attacker arbitrary code execution on the server. This issue affects phoenix_storybook from 0.5.0 before 1.1.0.
AI Analysis
Technical Summary
The vulnerability in phoenix_storybook occurs in the psb-assign WebSocket event handler within 'Elixir.PhoenixStorybook.Story.PlaygroundPreviewLive':handle_event/3, which accepts arbitrary attribute names and values from unauthenticated clients. These values are passed without sanitization to 'Elixir.PhoenixStorybook.Helpers.ExtraAssignsHelpers':handle_set_variation_assign/3 and stored verbatim. When rendering, 'Elixir.PhoenixStorybook.Rendering.ComponentRenderer':attributes_markup/1 interpolates these attribute values directly into HEEx template strings without escaping double quotes or HEEx expression delimiters. An attacker can craft an attribute value containing a closing quote followed by a HEEx expression block, causing the expression to be compiled and executed with full Kernel imports and no sandbox restrictions. This results in unauthenticated remote code execution on the server. The issue affects phoenix_storybook versions from 0.5.0 up to but not including 1.1.0. No vendor advisory or patch links are currently available.
Potential Impact
Successful exploitation allows unauthenticated remote attackers to execute arbitrary code on the server hosting phoenix_storybook, potentially leading to full system compromise. The vulnerability has a CVSS 4.0 score of 9.5, reflecting critical impact with network attack vector, low attack complexity, no privileges or user interaction required, and high impacts on confidentiality, integrity, availability, and security requirements. There are no known exploits in the wild at this time.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is released, avoid exposing the vulnerable phoenix_storybook versions to untrusted networks or unauthenticated users. Consider implementing network-level access controls or disabling the vulnerable WebSocket event handler if possible. Monitor vendor channels for updates and apply patches promptly once available.
CVE-2026-8467: CWE-94 Improper Control of Generation of Code ('Code Injection') in phenixdigital phoenix_storybook
Description
Code Injection vulnerability in phenixdigital phoenix_storybook allows unauthenticated remote code execution via unsanitized attribute value interpolation in HEEx template generation. The psb-assign WebSocket event handler in 'Elixir.PhoenixStorybook.Story.PlaygroundPreviewLive':handle_event/3 accepts arbitrary attribute names and values from unauthenticated clients. These values are passed to 'Elixir.PhoenixStorybook.Helpers.ExtraAssignsHelpers':handle_set_variation_assign/3, which stores them verbatim. When rendering, 'Elixir.PhoenixStorybook.Rendering.ComponentRenderer':attributes_markup/1 interpolates binary attribute values directly into a HEEx template string as name="<val>" without escaping double quotes or HEEx expression delimiters. An attacker can supply a value containing a closing quote followed by a HEEx expression block (e.g. foo" injected={EXPR} bar="), which causes EXPR to be treated as an inline Elixir expression. The resulting template is compiled via EEx.compile_string/2 and executed via Code.eval_quoted_with_env/3 with full Kernel imports and no sandbox, giving the attacker arbitrary code execution on the server. This issue affects phoenix_storybook from 0.5.0 before 1.1.0.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in phoenix_storybook occurs in the psb-assign WebSocket event handler within 'Elixir.PhoenixStorybook.Story.PlaygroundPreviewLive':handle_event/3, which accepts arbitrary attribute names and values from unauthenticated clients. These values are passed without sanitization to 'Elixir.PhoenixStorybook.Helpers.ExtraAssignsHelpers':handle_set_variation_assign/3 and stored verbatim. When rendering, 'Elixir.PhoenixStorybook.Rendering.ComponentRenderer':attributes_markup/1 interpolates these attribute values directly into HEEx template strings without escaping double quotes or HEEx expression delimiters. An attacker can craft an attribute value containing a closing quote followed by a HEEx expression block, causing the expression to be compiled and executed with full Kernel imports and no sandbox restrictions. This results in unauthenticated remote code execution on the server. The issue affects phoenix_storybook versions from 0.5.0 up to but not including 1.1.0. No vendor advisory or patch links are currently available.
Potential Impact
Successful exploitation allows unauthenticated remote attackers to execute arbitrary code on the server hosting phoenix_storybook, potentially leading to full system compromise. The vulnerability has a CVSS 4.0 score of 9.5, reflecting critical impact with network attack vector, low attack complexity, no privileges or user interaction required, and high impacts on confidentiality, integrity, availability, and security requirements. There are no known exploits in the wild at this time.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is released, avoid exposing the vulnerable phoenix_storybook versions to untrusted networks or unauthenticated users. Consider implementing network-level access controls or disabling the vulnerable WebSocket event handler if possible. Monitor vendor channels for updates and apply patches promptly once available.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- EEF
- Date Reserved
- 2026-05-13T11:44:40.790Z
- Cvss Version
- 4.0
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a0dc2e7ba1db4736284c258
Added to database: 5/20/2026, 2:19:19 PM
Last enriched: 5/20/2026, 2:33:58 PM
Last updated: 5/21/2026, 2:11:39 AM
Views: 5
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.