Description
Symlink following vulnerability in Gleam's Hex package export allows files outside the project root to be embedded in the generated package tarball.

The file collection helpers (gleam_files, native_files, private_files) in compiler-cli/src/fs.rs use follow_links(true) when walking publishable directories such as src/ and priv/. The collected paths are added to the package archive via add_path_to_tar in compiler-cli/src/publish.rs without verifying that the resolved target remains within the project root. A symlink placed under a publishable directory will cause gleam export hex-tarball or gleam publish to embed the contents of the symlink target into the generated Hex package.

An attacker with write access to the project repository can place a symlink in src/ or priv/ pointing to an arbitrary file. When a maintainer or CI pipeline runs gleam publish or gleam export hex-tarball, local files readable by the publisher (such as secrets, tokens, or SSH keys) are silently embedded into the published package artifact.

This issue affects Gleam from 0.10.0-rc1 until 1.17.0.
Published: 2026-06-02
Score: 5.1 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Gleam’s hex package export process follows symbolic links when collecting files from publishable directories such as src/ and priv/. The file paths are included in the archive without verifying that resolved targets remain inside the project root. This behavior is a path‑traversal flaw (CWE‑59) that allows an attacker who can write to the repository to embed arbitrary local files—such as secrets, tokens, or SSH keys—into the generated package tarball. The vulnerability does not provide remote code execution or denial of service but can leak confidential information to anyone who installs or inspects the published package.

Affected Systems

Constrained Erlang/OTP application Gleam, versions 0.10.0‑rc1 through 1.17.0, is affected. Users of earlier releases are unaffected, while those on 1.17.0 and later are presumed fixed.

Risk and Exploitability

The CVSS score of 5.1 reflects a moderate risk. EPSS information is not available, and the issue is not listed in the CISA KEV catalog. The attack requires write access to the repository to place a malicious symlink, after which a maintainer or CI pipeline must run the publish or export command. Because the exploit is local and requires the publishing process to run, the likelihood of wide‑scale exploitation is lower, but the consequence—unauthorized disclosure of sensitive files—can be significant for projects with secrets stored in src/ or priv/.

Generated by OpenCVE AI on June 2, 2026 at 15:36 UTC.

Remediation

Vendor Workaround

* Avoid running gleam publish or gleam export hex-tarball on untrusted projects * Review the contents of src/ and priv/ for unexpected symlinks before publishing * Run publishing commands in a restricted or isolated environment (e.g. containers)


OpenCVE Recommended Actions

  • Update to the latest version of Gleam that removes the symlink following bug
  • Avoid running gleam publish or gleam export hex-tarball on untrusted projects
  • Inspect the src/ and priv/ directories for unexpected symlinks and remove any that point outside the project root
  • Run publishing commands in a restricted or isolated environment such as a container with limited filesystem access

Generated by OpenCVE AI on June 2, 2026 at 15:36 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 02 Jun 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 02 Jun 2026 14:15:00 +0000

Type Values Removed Values Added
Description Symlink following vulnerability in Gleam's Hex package export allows files outside the project root to be embedded in the generated package tarball. The file collection helpers (gleam_files, native_files, private_files) in compiler-cli/src/fs.rs use follow_links(true) when walking publishable directories such as src/ and priv/. The collected paths are added to the package archive via add_path_to_tar in compiler-cli/src/publish.rs without verifying that the resolved target remains within the project root. A symlink placed under a publishable directory will cause gleam export hex-tarball or gleam publish to embed the contents of the symlink target into the generated Hex package. An attacker with write access to the project repository can place a symlink in src/ or priv/ pointing to an arbitrary file. When a maintainer or CI pipeline runs gleam publish or gleam export hex-tarball, local files readable by the publisher (such as secrets, tokens, or SSH keys) are silently embedded into the published package artifact. This issue affects Gleam from 0.10.0-rc1 until 1.17.0.
Title Symlink Following in Hex Package Export Allows Embedding Files Outside Project Root
First Time appeared Gleam-lang
Gleam-lang gleam
Weaknesses CWE-59
CPEs cpe:2.3:a:gleam-lang:gleam:*:*:*:*:*:*:*:*
Vendors & Products Gleam-lang
Gleam-lang gleam
References
Metrics cvssV4_0

{'score': 5.1, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:A/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Gleam-lang Gleam
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-06-02T19:14:25.176Z

Reserved: 2026-04-29T18:06:33.251Z

Link: CVE-2026-42795

cve-icon Vulnrichment

Updated: 2026-06-02T15:03:56.544Z

cve-icon NVD

Status : Deferred

Published: 2026-06-02T14:16:53.883

Modified: 2026-06-02T16:16:40.670

Link: CVE-2026-42795

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-06-02T16:45:12Z

Weaknesses
  • CWE-59

    Improper Link Resolution Before File Access ('Link Following')