Am I affected?

type your phoenix_storybook version to check

Description

Allocation of Resources Without Limits or Throttling vulnerability in phenixdigital phoenix_storybook allows unauthenticated denial-of-service via BEAM atom table exhaustion.

Multiple LiveView event handlers convert user-supplied event parameter strings to atoms using String.to_atom/1 without validation: 'Elixir.PhoenixStorybook.ExtraAssignsHelpers':handle_set_variation_assign/3 interns every key of the psb-assign params map; 'Elixir.PhoenixStorybook.ExtraAssignsHelpers':handle_toggle_variation_assign/3 interns the "attr" value from psb-toggle events; 'Elixir.PhoenixStorybook.ExtraAssignsHelpers':to_variation_id/2 interns elements of "variation_id"; and 'Elixir.PhoenixStorybook.ExtraAssignsHelpers':to_value/4 interns raw string values for attributes declared as :atom or :boolean. BEAM atoms are never garbage-collected, so each unique attacker-controlled string is a permanent allocation. Once the atom table ceiling (~1,048,576 atoms) is reached, the entire BEAM node aborts, taking down all applications running on it.

This issue affects phoenix_storybook from 0.2.0 before 1.1.0.

Weaknesses & attack patterns

Weakness

CWE-770 · Allocation of Resources Without Limits or Throttling in catalog → MITRE ↗

Attack patterns

CAPEC-130 · Excessive Allocation MITRE ↗

Affected — Hex / phoenix_storybook Hex.pm ↗ Repository ↗

0.2.0 < 1.1.0 affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:phenixdigital:phoenix_storybook:*:*:*:*:*:*:*:*
modules · source files · routines
modules Elixir.PhoenixStorybook.ExtraAssignsHelpers · Elixir.PhoenixStorybook.Story.Playground
source files lib/phoenix_storybook/helpers/extra_assigns_helpers.ex · lib/phx_live_storybook/live/entry_live.ex
routines 'Elixir.PhoenixStorybook.ExtraAssignsHelpers':handle_set_variation_assign/3 · 'Elixir.PhoenixStorybook.ExtraAssignsHelpers':handle_toggle_variation_assign/3 · 'Elixir.PhoenixStorybook.ExtraAssignsHelpers':to_variation_id/2 · 'Elixir.PhoenixStorybook.ExtraAssignsHelpers':to_value/4

Affected — GitHub / phenixdigital/phoenix_storybook Repository ↗

0228669 < 96d5246 affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:phenixdigital:phoenix_storybook:*:*:*:*:*:*:*:*
modules · source files · routines
modules Elixir.PhoenixStorybook.ExtraAssignsHelpers · Elixir.PhoenixStorybook.Story.Playground
source files lib/phoenix_storybook/helpers/extra_assigns_helpers.ex · lib/phx_live_storybook/live/entry_live.ex
routines 'Elixir.PhoenixStorybook.ExtraAssignsHelpers':handle_set_variation_assign/3 · 'Elixir.PhoenixStorybook.ExtraAssignsHelpers':handle_toggle_variation_assign/3 · 'Elixir.PhoenixStorybook.ExtraAssignsHelpers':to_variation_id/2 · 'Elixir.PhoenixStorybook.ExtraAssignsHelpers':to_value/4

Configurations

Phoenix Storybook must be mounted on a network-reachable route.

References

Credits

Peter Ullrich Finder
Christian Blavier Remediation developer
Jonatan Männchen / EEF Analyst

CVSS breakdown

CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
« All CVEs