CVE-2026-75758Patch

LOWCVSS 5.9 · MEDIUM

Signal is active with 1 mentions in latest observed window

Immediate actions

  • Patch affected systems immediately

Recommended action window: Monitor and triage in normal cycle

NVD description

Uncontrolled Recursion vulnerability in the Elixir standard library allows an attacker who controls a list passed to inspect/1, List.to_string/1, or List.to_charlist/1 to exhaust a BEAM node's memory. Inspect.List's charlist branch in lib/elixir/lib/inspect.ex classifies a list as a charlist using List.ascii_printable?/2, which examines only the first :printable_limit (4096 by default) elements, and then calls IO.chardata_to_string/1 on the whole term. A list whose printable prefix exceeds that limit but which contains a later element that is not a code point (an atom, an out-of-range integer, or an improper tail) is therefore mis-classified, and the conversion raises ArgumentError. That conversion runs inside List.to_string/1, whose rescue clause builds its message by interpolating inspect(list), which re-enters the same branch and raises again. The nested inspection is an argument to raise, so the recursion is not in tail position and every level is retained: the process stack grows monotonically while each cycle re-walks the list, until the process is killed by max_heap_size or, by default, the node runs out of memory. List.to_charlist/1 has the same rescue shape. Below the printable limit the inner inspect/1 sees the invalid element within its counter and renders the list in ordinary bracket form, so a single ArgumentError is raised and no recursion occurs. This issue affects elixir: from 1.15.0-rc.0 before 1.18.5, from 1.19.0-rc.0 before 1.19.6, and from 1.20.0-rc.0 before 1.20.4.

0.5/ 10 priority

Sources & remediation

Weakness type (CWE)
CWE-674

Priority

LOW

Exploitation

NONE

PoC

NONE

Patch

AVAILABLE

Momentum

NONE

Threat summary

  • Patch or workaround signal is available
  • 1 mentions across 1 observed day

What's happening

  • Patch or workaround mentioned in 1 signal
  • Technical details provided in 1 signal
  • 1 total mentions across 1 day

Deep dive

Activity timeline1 mentions / 1d
00111Mentions · 2026-08-29: 1Patch / Workaround · 2026-08-29: 1Technical Details · 2026-08-29: 108-29
Signal classification1 categories
Patch
1100.0%
Referenced assets3 URLs
Full discourse1 post
  • Repojournal@repojournal
    Patch

    Elixir's http://List.to_string/1 and http://List.to_charlist/1 get a recursion fix for invalid charlists, patched in both v1.18.5 and v1.19.6 for CVE-2026-75758. Phoenix moves to Elixir's built-in JSON library as the default, with a follow-up that configures Swoosh to use JSON too. phx.gen.release simplifies Debian version parsing: the Debian tag now becomes a single debian_vsn binding, with inline regex parsing in docker_tag_candidate/1. Elixir makes singleton-typed pin patterns precise, enabling clause subtraction. Also removes an unused task pid from async stream internal state. 19 commits, 14 PRs, and 3 releases this period. #elixir https://repojournal.com/showcase/elixir/2026-08-29/phoenix-defaults-to-elixir-s-built-in-json-elixir-patches-charlist-recursion

    Post summary

    Elixir has addressed CVE-2026-75758 by applying a recursion fix for invalid charlists in its recent releases.

    03050259
    421 followersView on X

Explore more