Vulnerability · Published Jun 2, 2026 · Assigned by EEF

CVE-2026-32685Path Traversal in gleam docs build via documentation.pages Allows Arbitrary File Read and Write

Medium 4.6

In plain English

A medium-severity path traversal in Gleam from Gleam. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 14% of all known vulnerabilities).

Severity (CVSS 4.0)4.6Medium
Exploit odds (30 days)0.2%top 86.3% of all CVEs
Exploited in the wildNo reportsCISA SSVC: poc
Attack toolingNoneno public tooling known

Official description

Path traversal vulnerability in Gleam's handling of custom documentation pages allows arbitrary file read and file write outside the intended documentation output directory. The documentation.pages entries from gleam.toml are incorporated into filesystem paths without sufficient validation or confinement to the intended project and documentation output directories. The documentation.pages[].path field can be used to write generated documentation files outside the intended build/dev/docs/<package>/ output directory. The documentation.pages[].source field can be used to read files outside the project directory and embed their contents into generated documentation output. An attacker who can convince a victim to run gleam docs build on an untrusted project, or with untrusted gleam.toml content, can cause local files readable by the victim to be included in generated documentation artifacts, and can cause generated documentation files to be written outside the intended docs output directory. This issue affects Gleam from 1.16.0 until 1.17.0.

Affected products (as reported)

VendorProductVersions
Gleam Gleam 1.16.0 – before 1.17.0
Gleam Gleam 1.16.0 – before 1.17.061ed8deb6572b5591ad17d6302c1a38607522f16 – before 81570611906b6b0039c948037094d09a68700f3a
Gleam Gleam v1.16.0-elixir – before v1.17.0-elixirv1.16.0-erlang – before v1.17.0-erlangv1.16.0-node – before v1.17.0-nodev1.16.0-node-slim – before v1.17.0-node-slimv1.16.0-elixir-slim – before v1.17.0-elixir-slimv1.16.0-erlang-slim – before v1.17.0-erlang-slimv1.16.0-erlang-alpine – before v1.17.0-erlang-alpinev1.16.0-elixir-alpine – before v1.17.0-elixir-alpine

Weakness: CWE-22 · Vector: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

References