Description
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') vulnerability in erlang rebar3 allows a malicious package publisher to delete a directory outside the project's _build directory and extract package files into it when a developer fetches dependencies.

A package release's dependencies in a Hex registry carry an app field that names the dependency's OTP application. rebar3 uses this field as the dependency's name without validating it (rebar_packages:parse_deps/1) and builds the dependency's directory from that name (rebar_app_utils:dep_to_app/7). rebar_fetch:download_source_online/2 deletes that directory with rm -rf and moves the fetched package into it. hex.pm didn't restrict the field to a directory name before 2026-10-12, so a publisher could set it to a value such as ../../../../target. When a project depends on such a release directly or transitively, rebar3 get-deps deletes the directory the name resolves to and writes the dependency's files there. This happens before the dependency's own rebar.config.script is evaluated, and get-deps compiles nothing.

This issue affects rebar3: from 3.7.0-rc1 before 3.27.2.
Published: 2026-10-12
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: File System Modification
Action: Apply Patch
AI Analysis

Impact

Rebar3 constructs a dependency directory name directly from the app field supplied in a package release’s dependency list without validation. The description indicates that a malicious publisher could provide a value such as './../../../../target', which resolves to a location outside the project’s _build directory. When rebar3 fetches dependencies, it deletes that resolved directory with rm -rf and copies the fetched package files into it. The flaw allows unchecked deletion and placement of files, resulting in file system modification, potential data loss, and the injection of malicious artifacts. Based on the description, it is inferred that the attack vector exploits a classic path traversal weakness (CWE-22).

Affected Systems

Erlang rebar3 versions from 3.7.0-rc1 up to but not including 3.27.2 are affected. Any user who invokes rebar3 to fetch dependencies from the Hex registry and uses an earlier version is at risk, regardless of the operating system. The vulnerability applies to all projects that rely on rebar3 for dependency resolution, including both direct and transitive dependencies.

Risk and Exploitability

The CVSS score of 7.5 indicates High severity. EPSS is not available and the flaw is not listed in CISA’s KEV catalog. Exploitation requires a malicious dependency that contains an unvalidated app field; this can arise from a compromised trusted publisher or via a newly published package by an attacker. Based on the description, it is inferred that once the malicious dependency is fetched, the attacker’s payload is executed automatically during get-deps, with no user interaction needed. This leads to unauthorized file deletion or placement, posing a significant confidentiality and integrity risk to the build environment.

Generated by OpenCVE AI on October 12, 2026 at 18:22 UTC.

Remediation

Vendor Solution

Upgrade rebar3 to 3.27.2 or later, for example with rebar3 local upgrade. rebar3 then fails with an error when a dependency's name, including the app name a package release gives a dependency, isn't a letter followed by letters, digits, _ and -.


OpenCVE Recommended Actions

  • Upgrade rebar3 to 3.27.2 or later, for example by running "rebar3 local upgrade"
  • Ensure that any package you create or publish uses an app field that only contains letters, digits, underscores, and hyphens
  • After upgrading, audit existing dependencies to verify that none contain suspicious app names

Generated by OpenCVE AI on October 12, 2026 at 18:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 16 Oct 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Mon, 12 Oct 2026 16:00:00 +0000

Type Values Removed Values Added
Description Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') vulnerability in erlang rebar3 allows a malicious package publisher to delete a directory outside the project's _build directory and extract package files into it when a developer fetches dependencies. A package release's dependencies in a Hex registry carry an app field that names the dependency's OTP application. rebar3 uses this field as the dependency's name without validating it (rebar_packages:parse_deps/1) and builds the dependency's directory from that name (rebar_app_utils:dep_to_app/7). rebar_fetch:download_source_online/2 deletes that directory with rm -rf and moves the fetched package into it. hex.pm didn't restrict the field to a directory name before 2026-10-12, so a publisher could set it to a value such as ../../../../target. When a project depends on such a release directly or transitively, rebar3 get-deps deletes the directory the name resolves to and writes the dependency's files there. This happens before the dependency's own rebar.config.script is evaluated, and get-deps compiles nothing. This issue affects rebar3: from 3.7.0-rc1 before 3.27.2.
Title Path traversal in rebar3 via unvalidated dependency app names
First Time appeared Erlang
Erlang rebar3
Weaknesses CWE-22
CPEs cpe:2.3:a:erlang:rebar3:*:*:*:*:*:*:*:*
Vendors & Products Erlang
Erlang rebar3
References
Metrics cvssV4_0

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


cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-10-16T17:44:16.145Z

Reserved: 2026-10-06T08:45:01.521Z

Link: CVE-2026-103060

cve-icon Vulnrichment

Updated: 2026-10-16T17:43:21.763Z

cve-icon NVD

Status : Deferred

Published: 2026-10-12T16:17:00.873

Modified: 2026-10-16T18:17:16.940

Link: CVE-2026-103060

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-13T06:45:15Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')