CVE-2026-8467

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.
CVSS

No CVSS.

Configurations

No configuration.

History

23 Jul 2026, 12:10

Type Values Removed Values Added
Summary
  • (es) Vulnerabilidad de inyección de código en phenixdigital phoenix_storybook permite la ejecución remota de código no autenticada a través de la interpolación de valores de atributos no saneados en la generación de plantillas HEEx. El gestor de eventos WebSocket psb-assign en 'Elixir.PhoenixStorybook.Story.PlaygroundPreviewLive':handle_event/3 acepta nombres y valores de atributos arbitrarios de clientes no autenticados. Estos valores se pasan a 'Elixir.PhoenixStorybook.Helpers.ExtraAssignsHelpers':handle_set_variation_assign/3, que los almacena textualmente. Al renderizar, 'Elixir.PhoenixStorybook.Rendering.ComponentRenderer':attributes_markup/1 interpola valores de atributos binarios directamente en una cadena de plantilla HEEx como name="<val>" sin escapar las comillas dobles o los delimitadores de expresión HEEx. Un atacante puede proporcionar un valor que contenga una comilla de cierre seguida de un bloque de expresión HEEx (p. ej., foo" injected={EXPR} bar="), lo que hace que EXPR sea tratado como una expresión Elixir en línea. La plantilla resultante se compila a través de EEx.compile_string/2 y se ejecuta a través de Code.eval_quoted_with_env/3 con importaciones completas del Kernel y sin sandbox, lo que le da al atacante ejecución de código arbitrario en el servidor. Este problema afecta a phoenix_storybook desde 0.5.0 antes de 1.1.0.

21 May 2026, 15:16

Type Values Removed Values Added
References () https://github.com/phenixdigital/phoenix_storybook/security/advisories/GHSA-55hg-8qxv-qj4p - () https://github.com/phenixdigital/phoenix_storybook/security/advisories/GHSA-55hg-8qxv-qj4p -

20 May 2026, 14:17

Type Values Removed Values Added
New CVE

Information

Published : 2026-05-20 14:17

Updated : 2026-07-23 12:10


NVD link : CVE-2026-8467

Mitre link : CVE-2026-8467

CVE.ORG link : CVE-2026-8467


JSON object : View

Products Affected

No product.

CWE
CWE-94

Improper Control of Generation of Code ('Code Injection')