---
id: CVE-2026-32685
title: >-
  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 incorporat…
summary: >-
  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 incorporat…
severity: medium
cvss: 4.6
cvssVector: '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'
cwe:
  - CWE-22
vendor: Gleam
product: gleam
affected:
  - gleam >= 1.16.0 < 1.17.0
  - gleam-lang/gleam >= 1.16.0 < 1.17.0
  - >-
    gleam-lang/gleam >= 61ed8deb6572b5591ad17d6302c1a38607522f16 <
    81570611906b6b0039c948037094d09a68700f3a
  - gleam-lang/gleam >= v1.16.0-elixir < v1.17.0-elixir
  - gleam-lang/gleam >= v1.16.0-erlang < v1.17.0-erlang
  - gleam-lang/gleam >= v1.16.0-node < v1.17.0-node
  - gleam-lang/gleam >= v1.16.0-node-slim < v1.17.0-node-slim
  - gleam-lang/gleam >= v1.16.0-elixir-slim < v1.17.0-elixir-slim
  - gleam-lang/gleam >= v1.16.0-erlang-slim < v1.17.0-erlang-slim
  - gleam-lang/gleam >= v1.16.0-erlang-alpine < v1.17.0-erlang-alpine
  - gleam-lang/gleam >= v1.16.0-elixir-alpine < v1.17.0-elixir-alpine
  - gleam-lang/gleam >= v1.16.0-node-alpine < v1.17.0-node-alpine
  - gleam-lang/gleam >= v1.16.0-scratch < v1.17.0-scratch
published: '2026-06-02'
updated: '2026-09-08'
sourceUpdated: '2026-09-08T01:17:30.287'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-32685'
references:
  - url: 'https://cna.erlef.org/cves/CVE-2026-32685.html'
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: >-
      https://github.com/gleam-lang/gleam/commit/81570611906b6b0039c948037094d09a68700f3a
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: >-
      https://github.com/gleam-lang/gleam/commit/c9230cd3045de8fd8481dae3a4557c0146df1430
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: >-
      https://github.com/gleam-lang/gleam/security/advisories/GHSA-wjx8-7w8m-p4v7
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: 'https://osv.dev/vulnerability/EEF-CVE-2026-32685'
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: >-
      https://github.com/gleam-lang/gleam/security/advisories/GHSA-wjx8-7w8m-p4v7
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
tags:
  - nvd
  - cve.org
  - exploit-available
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-06-02T15:06:11.916565Z'
cvssSource: cna
epss: 0.00229
epssPercentile: 0.13955
ingestedAt: '2026-09-08T13:33:24.754Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
