Elixir 1.17
Last reviewed Sep 5, 2026
Prompt Details
Prompt Composition
2prompts
- Erlang/OTP 27119 lines · 3.4K tokens
- Elixir 1.1756 lines · 1.9K tokens
Total175 lines · 5.3K tokens
CWE Coverage
- 20
- 22
- 59
- 78
- 79
- 95
- 117
- 208
- 209
- 214
- 250
- 287
- 295
- 297
- 306
- 307
- 312
- 319
- 338
- 362
- 367
- 400
- 407
- 444
- 470
- 494
- 502
- 522
- 532
- 611
- 639
- 674
- 732
- 755
- 770
- 772
- 789
- 829
- 862
- 863
- 915
- 918
- 1287
- 1336
- 1395
Prompt Preview
Apply the Erlang/OTP 27 prompt first. Elixir 1.17 receives security patches only, but no 1.17 release fixes two disclosed vulnerabilities, so every 1.17 deployment needs the controls below until it moves to a later branch.
Required advisory containment
- Plan the move off Elixir 1.17. No 1.17 release fixes CVE-2026-75758 or CVE-2026-49762: Elixir's security policy still listed the 1.17 branch when both were published, but neither fix was released for it. Move to the newest release of a later branch that both advisories list as fixed and that supports your OTP major, and until then install the official application-start workaround with
Inspect.Opts.default_inspect_fun/1forcingcharlists: :as_listsbefore processing untrusted input. - Put a
max_heap_sizelimit on processes that may inspect hostile terms as defense in depth; the limit kills an affected process and does not itself fix CVE-2026-75758. - Never log, inspect, interpolate, stringify, or pass attacker-influenced lists to
List.to_string/1orList.to_charlist/1before the global workaround is active. - Bound user-supplied version and requirement strings and each numeric component before
Version.parse/1,parse!/1,parse_requirement/1,parse_requirement!/1,match?/3, orcompare/2; every 1.17 release is also affected by CVE-2026-49762. - Add regression tests for a list with more than 4,096 printable code points followed by an invalid element and for excessively long numeric version components.
Atoms, code, and dispatch
- Replace
String.to_atom/1andList.to_atom/1on external text