$ the-wire · showcase
Phoenix defaults to Elixir's built-in JSON, Elixir patches charlist recursion
By RepoJournal · Filed · About Elixir & Phoenix
Elixir 1.18.5 and 1.19.6 patch a charlist recursion vulnerability, and Phoenix moves closer to dropping Jason entirely.
Both Elixir 1.18.5 and 1.19.6 ship a security fix for CVE-2026-75758, avoiding unbounded recursion when invalid charlists reach `List.to_string/1` or `List.to_charlist/1`; upgrade before your next deploy [1] [2]. Phoenix now defaults to the built-in JSON library when available, falling back to Jason otherwise, and a follow-up configures Swoosh to use JSON and standardizes `:swoosh` config with `config/3` [3] [4]. The generated-app `mix.lock` still includes `:jason`, flagged for future work. Elsewhere, `phx.gen.release` simplifies Debian version parsing by consolidating the tag into a single `debian_vsn` binding and using an inline regex in `docker_tag_candidate/1` to enforce the `-slim` suffix [5] . Elixir's compiler now makes singleton-typed pin patterns precise, enabling clause subtraction that was previously impossible; all pins were unconditionally imprecise before [6]. Also under the hood, the async stream internal state no longer carries an unused task pid [7], and a fix removes infinite recursion on the charlist error path [8].
Action items
- → Upgrade Elixir to 1.18.5 or 1.19.6 before next deploy elixir-lang/elixir [immediate]
- → Review Phoenix JSON library default and Swoosh config after upgrading phoenixframework/phoenix [plan]
References
- [1] v1.18.5 ↗ elixir-lang/elixir
- [2] v1.19.6 ↗ elixir-lang/elixir
- [3] Use the built-in JSON library ↗ phoenixframework/phoenix
- [4] Follow-up to moving from Jason to JSON ↗ phoenixframework/phoenix
- [5] phx.gen.release: simplify Debian version parsing and usage ↗ phoenixframework/phoenix
- [6] Make singleton-typed pin patterns precise ↗ elixir-lang/elixir
- [7] Remove unused task pid from from async stream internal state (#15806) ↗ elixir-lang/elixir
- [8] Fix recursion on charlist error path ↗ elixir-lang/elixir