CVE-2026-43965
CVE.org · Published
- Record status
- Published
- Identifier year (not publication year)
- 2026
- Source publication
- Source updated
- Imported by cveboard
- Source snapshot
- cve_2026-10-24_midnight_baseline ·
CNA source text (English)
Path Traversal in build/packages/packages.toml Allows Arbitrary Directory Deletion
Path traversal vulnerability in Gleam's dependency management allows arbitrary directory deletion via malicious build/packages/packages.toml content. Package keys read from build/packages/packages.toml by LocalPackages::read_from_disc are passed without validation to paths.build_packages_package(), which constructs a filesystem path by joining the project build directory with the attacker-controlled key. The resulting path is then passed to fs::delete_directory (which calls remove_dir_all). No check is performed to ensure the path remains within the intended build/packages/ directory. Both absolute paths and relative traversal sequences (e.g. ../) are accepted as package keys, allowing deletion of arbitrary directories. An attacker who can cause a victim to run gleam deps download on a project containing a malicious build/packages/packages.toml (e.g. by committing the normally-gitignored file to a repository) can cause arbitrary directories on the victim's system to be recursively deleted. This issue affects Gleam from 0.18.0-rc1 until 1.17.0.
Scoped product and version facts
Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.
Exploitation unknown; this catalogue does not assess exploitation.
Gleam
- Vendor
- Gleam
- Product
- Gleam
- Platforms
- Unknown
- Default status
unaffected- Package
- gleam
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 0.18.0-rc1 | affected | semver | 1.17.0 | Unavailable | None listed |
Gleam
- Vendor
- Gleam
- Product
- Gleam
- Platforms
- Unknown
- Default status
unaffected- Package
- gleam-lang/gleam
- Package collection
- https://github.com
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 0.18.0-rc1 | affected | semver | 1.17.0 | Unavailable | None listed |
| ed7aec0484f10d60978b63788c8a6497590855ab | affected | git | 690ca069817bee5f77a28fc3e360627c1da19291 | Unavailable | None listed |
Gleam
- Vendor
- Gleam
- Product
- Gleam
- Platforms
- Unknown
- Default status
unaffected- Package
- gleam-lang/gleam
- Package collection
- https://ghcr.io
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| v0.18.0-rc1-elixir | affected | other | v1.17.0-elixir | Unavailable | None listed |
| v0.18.0-rc1-erlang | affected | other | v1.17.0-erlang | Unavailable | None listed |
| v0.18.0-rc1-node | affected | other | v1.17.0-node | Unavailable | None listed |
| v0.18.0-rc1-node-slim | affected | other | v1.17.0-node-slim | Unavailable | None listed |
| v0.18.0-rc1-elixir-slim | affected | other | v1.17.0-elixir-slim | Unavailable | None listed |
| v0.18.0-rc1-erlang-slim | affected | other | v1.17.0-erlang-slim | Unavailable | None listed |
| v0.18.0-rc1-erlang-alpine | affected | other | v1.17.0-erlang-alpine | Unavailable | None listed |
| v0.18.0-rc1-elixir-alpine | affected | other | v1.17.0-elixir-alpine | Unavailable | None listed |
| v0.18.0-rc1-node-alpine | affected | other | v1.17.0-node-alpine | Unavailable | None listed |
| v0.18.0-rc1-scratch | affected | other | v1.17.0-scratch | Unavailable | None listed |