CVE-2026-32685

Medium

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.

SeverityMedium
CVSS4.6
Exploit probability—
ProductGleam
PublishedJun 2, 2026
First seenJun 2, 2026

How to fix

Update
  • gleam-lang gleam1.17.0, 81570611906b6b0039c948037094d09a68700f3a, v1.17.0-elixir, v1.17.0-erlang, v1.17.0-node, v1.17.0-node-slim, v1.17.0-elixir-slim, v1.17.0-erlang-slim, v1.17.0-erlang-alpine, v1.17.0-elixir-alpine, v1.17.0-node-alpine, v1.17.0-scratch or later

Affected products

ProductAffected versionsFixed in
gleam-lang gleam1.16.0 ≤ v < 1.17.0, 61ed8deb6572b5591ad17d6302c1a38607522f16 ≤ v < 81570611906b6b0039c948037094d09a68700f3a, v1.16.0-elixir ≤ v < v1.17.0-elixir, v1.16.0-erlang ≤ v < v1.17.0-erlang, v1.16.0-node ≤ v < v1.17.0-node, v1.16.0-node-slim ≤ v < v1.17.0-node-slim, v1.16.0-elixir-slim ≤ v < v1.17.0-elixir-slim, v1.16.0-erlang-slim ≤ v < v1.17.0-erlang-slim, v1.16.0-erlang-alpine ≤ v < v1.17.0-erlang-alpine, v1.16.0-elixir-alpine ≤ v < v1.17.0-elixir-alpine, v1.16.0-node-alpine ≤ v < v1.17.0-node-alpine, v1.16.0-scratch ≤ v < v1.17.0-scratch1.17.0, 81570611906b6b0039c948037094d09a68700f3a, v1.17.0-elixir, v1.17.0-erlang, v1.17.0-node, v1.17.0-node-slim, v1.17.0-elixir-slim, v1.17.0-erlang-slim, v1.17.0-erlang-alpine, v1.17.0-elixir-alpine, v1.17.0-node-alpine, v1.17.0-scratch

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.