Gleam vulnerability

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.

Published 2 Jun 2026Updated 7 Sep 20266 sources
CVSS 4.6

What happened

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 versions

Gleam: 1.16.0 through before 1.17.0 (semver); 61ed8deb6572b5591ad17d6302c1a38607522f16 through before 81570611906b6b0039c948037094d09a68700f3a (git); v1.16.0-elixir through before v1.17.0-elixir (other); v1.16.0-erlang through before v1.17.0-erlang (other); v1.16.0-node through before v1.17.0-node (other); v1.16.0-node-slim through before v1.17.0-node-slim (other); v1.16.0-elixir-slim through before v1.17.0-elixir-slim (other); v1.16.0-erlang-slim through before v1.17.0-erlang-slim (other); v1.16.0-erlang-alpine through before v1.17.0-erlang-alpine (other); v1.16.0-elixir-alpine through before v1.17.0-elixir-alpine (other); v1.16.0-node-alpine through before v1.17.0-node-alpine (other); v1.16.0-scratch through before v1.17.0-scratch (other) Fixed: See vendor advisory.

Why it matters

Review the vendor advisory and exposure of the affected product to determine operational impact.

Detection & mitigation

  • Apply vendor-provided updates or mitigations.
  • Review affected product exposure and access logs.

Public PoC references

No public PoC reference has passed the current publication threshold.