Description
Insecure Temporary File vulnerability in Mix deps.partition in Elixir allows a local user to execute code as another user via a swapped partition config file. Partitioned dependency compilation passes the project configuration to each partition VM through a file in a fixed-name directory under the shared system temporary directory, and the partition trusts what it reads back. Another local user on the same host can exploit this during a mix deps.compile run that uses partitioned compilation.
Mix.Tasks.Deps.Partition.server/4 in lib/mix/lib/mix/tasks/deps.partition.ex creates the directory with File.mkdir_p/1, which accepts an existing directory without checking its owner, so a user who created it first can replace the file before client/0 reads it.
This issue affects mix: from 1.20.0-rc.4 before 1.20.5.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| elixir-lang | elixir | 1.20.0-rc.4 – < 1.20.5 | 1.20.5 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | elixir-lang | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 18.04 LTS | elixir | No fix yet | — |
| Ubuntu 16.04 LTS | elixir | No fix yet | — |
| Ubuntu 14.04 LTS | elixir | No fix yet | — |
References
- Insecure temporary file in mix deps.partition lets a local user execute code in another user's dependency build vendor-advisory related
- EEF CNA record for CVE-2026-97209 related
- OSV record EEF-CVE-2026-97209 related
- Introducing commit 7f3d95b in elixir-lang/elixir related
- Fix commit 55eb912 in elixir-lang/elixir patch
- Fix commit 9adbe95 in elixir-lang/elixir patch