CVE-2026-43965
📛 CVE Title
Path Traversal in build/packages/packages.toml Allows Arbitrary Directory Deletion
Description
Path traversal vulnerability in Gleam's dependency management allows arbitrary directory deletion via malicious build/packages/packages.toml content. Package keys read from build/packages/packages.toml by LocalPackages::read_from_disc are passed without validation to paths.build_packages_package(), which constructs a filesystem path by joining the project build directory with the attacker-controlled key. The resulting path is then passed to fs::delete_directory (which calls remove_dir_all). No check is performed to ensure the path remains within the intended build/packages/ directory. Both absolute paths and relative traversal sequences (e.g. ../) are accepted as package keys, allowing deletion of arbitrary directories. An attacker who can cause a victim to run gleam deps download on a project containing a malicious build/packages/packages.toml (e.g. by committing the normally-gitignored file to a repository) can cause arbitrary directories on the victim's system to be recursively deleted. This issue affects Gleam from 0.18.0-rc1 until 1.17.0.
Overview
- State
- PUBLISHED
- Assigner (CNA)
- EEF
- CVSS severity
- MEDIUM
- CVSS score
- 5.6 / 10
- CVSS vector
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N- Effective score
- 5.6 / 10 MEDIUM source: CNA overview
- CWE(s)
-
CWE-22 - Reserved
- 2026-05-04
- Published
- 2026-06-02 13:41 UTC
- Last updated
- 2026-06-02 19:14 UTC
- Source
- https://raw.githubusercontent.com/CVEProject/cvelistV5/main/cves/2026/43xxx/CVE-2026-43965.json
- Linked Threat
- CVE-2026-43965 — CVE-2026-43965
NVD triage scoring NVD CVE 2.0
Layer NVD adds on top of the CNA's CVE record — published / last-modified timestamps, exploitability / impact subscores, and the FIRST.org EPSS probability that this CVE will be exploited in the wild in the next 30 days.
- NVD published
- 2026-06-02 14:16:54 UTC
- NVD last modified
- 2026-07-22 19:10:00 UTC
- EPSS score
- 0.0015 (probability of exploitation in next 30 days)
- EPSS percentile
- 4.80% vs all CVEs — higher = more likely to be exploited, as of 2026-07-27
NVD / KEV / EPSS data refreshed 2026-07-28 14:15 UTC. Re-run the 🛰 Backfill from NVD button above to refresh.
European Union Vulnerability Database ENISA EUVD
ENISA's official EU repository for curated vulnerability intelligence. Carries a separate identifier (EUVD-YYYY-NNNN) and frequently exposes an earlier-published description + CVSS than NVD does.
- EUVD ID
-
EUVD-2026-33926 - Assigner
- EEF
- Published
- Jun 2, 2026, 1:41:37 PM
- Updated
- Jun 2, 2026, 7:14:19 PM
- EUVD base score (CVSS 4.0)
-
5.6 / 10
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - EUVD-reported EPSS
- 0.1500
- Vendors
- Gleam
- Products
-
Gleam (v0.18.0-rc1-node <v1.17.0-node)Gleam (v0.18.0-rc1-erlang-slim <v1.17.0-erlang-slim)Gleam (v0.18.0-rc1-scratch <v1.17.0-scratch)Gleam (v0.18.0-rc1-elixir <v1.17.0-elixir)Gleam (v0.18.0-rc1-erlang <v1.17.0-erlang)Gleam (0.18.0-rc1 <1.17.0)Gleam (v0.18.0-rc1-elixir-alpine <v1.17.0-elixir-alpine)Gleam (v0.18.0-rc1-elixir-slim <v1.17.0-elixir-slim)Gleam (ed7aec0484f10d60978b63788c8a6497590855ab <690ca069817bee5f77a28fc3e360627c1da19291)Gleam (v0.18.0-rc1-erlang-alpine <v1.17.0-erlang-alpine)Gleam (v0.18.0-rc1-node-alpine <v1.17.0-node-alpine)Gleam (v0.18.0-rc1-node-slim <v1.17.0-node-slim)
ENISA description: Path traversal vulnerability in Gleam's dependency management allows arbitrary directory deletion via malicious build/packages/packages.toml content. Package keys read from build/packages/packages.toml by LocalPackages::read_from_disc are passed without validation to paths.build_packages_package(), which constructs a filesystem path by joining the project build directory with the attacker-controlled key. The resulting path is then passed to fs::delete_directory (which calls remove_dir_all). No check is performed to ensure the path remains within the intended build/packages/ directory. Both absolute paths and relative traversal sequences (e.g. ../) are accepted as package keys, allowing deletion of arbitrary directories. An attacker who can cause a victim to run gleam deps download on a project containing a malicious build/packages/packages.toml (e.g. by committing the normally-gitignored file to a repository) can cause arbitrary directories on the victim's system to be recursively deleted. This issue affects Gleam from 0.18.0-rc1 until 1.17.0.
Affected products (3)
| Vendor | Product | Versions | Platforms |
|---|---|---|---|
| Gleam | Gleam |
0.18.0-rc1 (affected)
|
— |
| Gleam | Gleam |
0.18.0-rc1 (affected),
ed7aec0484f10d60978b63788c8a6497590855ab (affected)
|
— |
| Gleam | Gleam |
v0.18.0-rc1-elixir (affected),
v0.18.0-rc1-erlang (affected),
v0.18.0-rc1-node (affected),
v0.18.0-rc1-node-slim (affected),
v0.18.0-rc1-elixir-slim (affected),
v0.18.0-rc1-erlang-slim (affected),
v0.18.0-rc1-erlang-alpine (affected),
v0.18.0-rc1-elixir-alpine (affected),
v0.18.0-rc1-node-alpine (affected),
v0.18.0-rc1-scratch (affected)
|
— |
Vendor references (4)
References embedded in the original CVE record by the assigning CNA.
- https://github.com/gleam-lang/gleam/security/advisories/GHSA-jqvf-f6p2-wrv3 vendor-advisoryrelated
- https://cna.erlef.org/cves/CVE-2026-43965.html related
- https://osv.dev/vulnerability/EEF-CVE-2026-43965 related
- https://github.com/gleam-lang/gleam/commit/690ca069817bee5f77a28fc3e360627c1da19291 patch
Web references (7)
DuckDuckGo results ranked by threat-intel / vendor advisory domains. Generated by the 🔎 Find references (web) button above — same flow as the Remediations search.
- https://cna.erlef.org/cves/CVE-2026-43965.html tenable:cna.erlef.org
- https://github.com/gleam-lang/gleam/commit/690ca069817bee5f77a28fc3e360627c1da19291 tenable:github.com
- https://github.com/gleam-lang/gleam/security/advisories/GHSA-jqvf-f6p2-wrv3 tenable:github.com
- https://nvd.nist.gov/vuln/detail/CVE-2026-43965 tenable:nvd.nist.gov
- https://osv.dev/vulnerability/EEF-CVE-2026-43965 tenable:osv.dev
- https://www.cve.org/CVERecord?id=CVE-2026-43965 tenable:www.cve.org
- https://www.first.org/epss/ tenable:www.first.org
NVD-tagged references (5)
Reference list NVD curates from the CNA record, vendor advisories, and third-party reports. The tag chips below are NVD's analyst-assigned categories.
- https://cna.erlef.org/cves/CVE-2026-43965.html 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
- https://github.com/gleam-lang/gleam/commit/690ca069817bee5f77a28fc3e360627c1da19291 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
- https://github.com/gleam-lang/gleam/security/advisories/GHSA-jqvf-f6p2-wrv3 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
- https://github.com/gleam-lang/gleam/security/advisories/GHSA-jqvf-f6p2-wrv3 134c704f-9b21-4f2e-91b3-4a467353bcc0
- https://osv.dev/vulnerability/EEF-CVE-2026-43965 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
Remediations (15)
Remediations are stored against the linked Threat row; the list below is deduplicated across both pages.
-
web:cybersecuritynews.com
Microsoft's May 2026 Patch Tuesday lands with a heavy enterprise focus, fixing 120 vulnerabilities across Windows, Office, Azure, developer tools, and Microsoft 365 apps, including 29 remote code execution (RCE) flaws rated Critical.
2026-06-08 15:51 UTC -
web:my.f5.com
If the Fixes introduced in column lists a version prior to the one you are running, in the same branch, then your version should have the fix . Mitigation To mitigate this vulnerability, use named captures instead of unnamed captures in rewrite definitions. For example, the rewrite directive in the Impact section could be rewritten as:
2026-06-08 15:51 UTC -
web:portal.msrc.microsoft.com
The Security Update Guide provides information on the latest Microsoft security updates, helping users understand and address potential vulnerabilities effectively.
2026-06-08 15:51 UTC -
web:support.microsoft.com
Improvements and fixes This security update contains improvements and fixes for the following nonsecurity issues in SharePoint Server Subscription Edition: This update improves accessibility by enabling keyboard navigation to column headers in the SPList Quick Edit view. This update resolves an issue in which pages don't load because certain user controls are flagged as unsafe for security ...
2026-06-08 15:51 UTC -
web:thehackernews.com
New ClickFix variant maps WebDAV drive to run trojanized WorkFlowy app, enabling stealth C2 beacon and payload delivery.
2026-06-08 15:51 UTC -
web:www.computerworld.com
Microsoft says it is considering a patch for a zero-day vulnerability, dubbed YellowKey, that allows attackers with access to a Windows device to bypass Bitlocker encryption protection and read ...
2026-06-08 15:51 UTC -
web:www.crowdstrike.com
Microsoft has released security updates for 130 vulnerabilities, including 30 critical, in its May 2026 Patch Tuesday rollout.
2026-06-08 15:51 UTC -
web:www.helpnetsecurity.com
The fix will be rolled into the June Patch Tuesday release. The June Patch Tuesday release will contain a fix for the failures and errors when installing KB5089549 for Windows 11.
2026-06-08 15:51 UTC -
web:www.oracle.com
This Critical Patch Update contains 481 new security patches across the product families listed below. Please note that an MOS note summarizing the content of this Critical Patch Update and other Oracle Software Security Assurance activities is located at April 2026 Critical Patch Update: Executive Summary and Analysis.
2026-06-08 15:51 UTC -
web:zecurit.com
Get the complete breakdown of Microsoft's June 2026 Patch Tuesday. We analyze the latest security updates and all critical CVEs .
2026-06-08 15:51 UTC -
web:blog.qualys.com
May 2026's Patch Tuesday arrives with Microsoft addressing a fresh set of vulnerabilities across its ecosystem, reinforcing the ongoing need for timely patching in an increasingly threat-heavy…
2026-06-19 02:33 UTC -
web:cybersecuritynews.com
Microsoft has officially acknowledged a critical zero-day vulnerability in Microsoft Defender, publicly dubbed "RoguePlanet," and confirmed it is actively developing a security patch to address the flaw.
2026-06-19 02:33 UTC -
web:www.csoonline.com
Microsoft highlighted six new and actively exploited vulnerabilities among the 60 fixes issued in today's February Patch Tuesday releases.
2026-06-19 02:33 UTC -
web:www.malwarebytes.com
Microsoft says it's working on a fix for an unpatched Defender vulnerability that can give attackers the highest level of access on Windows.
2026-06-19 02:33 UTC -
web:www.microsoft.com
Security Update Guide Notifications Microsoft's free Security Update Guide Notifications provide links to security-related software updates and notification of re-released security updates. These notifications are sent via email throughout the month as needed.
2026-06-19 02:33 UTC
AI Forensic Analysis
Only Available for Registered Users. Sign in to view.
Raw JSON
The full cvelistV5 record. Download as CVE-2026-43965.json.
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-43965",
"options": [
{
"Exploitation": "poc"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-06-02T15:07:44.667204Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-06-02T15:08:13.970Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"references": [
{
"tags": [
"exploit"
],
"url": "https://github.com/gleam-lang/gleam/security/advisories/GHSA-jqvf-f6p2-wrv3"
}
],
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"cpes": [
"cpe:2.3:a:gleam-lang:gleam:*:*:*:*:*:*:*:*"
],
"defaultStatus": "unaffected",
"modules": [
"compiler-cli"
],
"packageName": "gleam",
"packageURL": "pkg:sid/gleam.run/gleam",
"product": "Gleam",
"programFiles": [
"compiler-cli/src/dependencies.rs"
],
"programRoutines": [
{
"name": "compiler_cli::dependencies::remove_extra_packages"
},
{
"name": "compiler_cli::dependencies::LocalPackages::read_from_disc"
},
{
"name": "compiler_cli::dependencies::LocalPackages::extra_local_packages"
}
],
"vendor": "Gleam",
"versions": [
{
"lessThan": "1.17.0",
"status": "affected",
"version": "0.18.0-rc1",
"versionType": "semver"
}
]
},
{
"collectionURL": "https://github.com",
"cpes": [
"cpe:2.3:a:gleam-lang:gleam:*:*:*:*:*:*:*:*"
],
"defaultStatus": "unaffected",
"modules": [
"compiler-cli"
],
"packageName": "gleam-lang/gleam",
"packageURL": "pkg:github/gleam-lang/gleam",
"product": "Gleam",
"programFiles": [
"compiler-cli/src/dependencies.rs"
],
"programRoutines": [
{
"name": "compiler_cli::dependencies::remove_extra_packages"
},
{
"name": "compiler_cli::dependencies::LocalPackages::read_from_disc"
},
{
"name": "compiler_cli::dependencies::LocalPackages::extra_local_packages"
}
],
"repo": "https://github.com/gleam-lang/gleam",
"vendor": "Gleam",
"versions": [
{
"lessThan": "1.17.0",
"status": "affected",
"version": "0.18.0-rc1",
"versionType": "semver"
},
{
"lessThan": "690ca069817bee5f77a28fc3e360627c1da19291",
"status": "affected",
"version": "ed7aec0484f10d60978b63788c8a6497590855ab",
"versionType": "git"
}
]
},
{
"collectionURL": "https://ghcr.io",
"cpes": [
"cpe:2.3:a:gleam-lang:gleam:*:*:*:*:*:*:*:*"
],
"defaultStatus": "unaffected",
"modules": [
"compiler-cli"
],
"packageName": "gleam-lang/gleam",
"packageURL": "pkg:oci/gleam?repository_url=ghcr.io/gleam-lang",
"product": "Gleam",
"programFiles": [
"compiler-cli/src/dependencies.rs"
],
"programRoutines": [
{
"name": "compiler_cli::dependencies::remove_extra_packages"
},
{
"name": "compiler_cli::dependencies::LocalPackages::read_from_disc"
},
{
"name": "compiler_cli::dependencies::LocalPackages::extra_local_packages"
}
],
"vendor": "Gleam",
"versions": [
{
"lessThan": "v1.17.0-elixir",
"status": "affected",
"version": "v0.18.0-rc1-elixir",
"versionType": "other"
},
{
"lessThan": "v1.17.0-erlang",
"status": "affected",
"version": "v0.18.0-rc1-erlang",
"versionType": "other"
},
{
"lessThan": "v1.17.0-node",
"status": "affected",
"version": "v0.18.0-rc1-node",
"versionType": "other"
},
{
"lessThan": "v1.17.0-node-slim",
"status": "affected",
"version": "v0.18.0-rc1-node-slim",
"versionType": "other"
},
{
"lessThan": "v1.17.0-elixir-slim",
"status": "affected",
"version": "v0.18.0-rc1-elixir-slim",
"versionType": "other"
},
{
"lessThan": "v1.17.0-erlang-slim",
"status": "affected",
"version": "v0.18.0-rc1-erlang-slim",
"versionType": "other"
},
{
"lessThan": "v1.17.0-erlang-alpine",
"status": "affected",
"version": "v0.18.0-rc1-erlang-alpine",
"versionType": "other"
},
{
"lessThan": "v1.17.0-elixir-alpine",
"status": "affected",
"version": "v0.18.0-rc1-elixir-alpine",
"versionType": "other"
},
{
"lessThan": "v1.17.0-node-alpine",
"status": "affected",
"version": "v0.18.0-rc1-node-alpine",
"versionType": "other"
},
{
"lessThan": "v1.17.0-scratch",
"status": "affected",
"version": "v0.18.0-rc1-scratch",
"versionType": "other"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:gleam-lang:gleam:*:*:*:*:*:*:*:*",
"versionEndExcluding": "1.17.0",
"versionStartIncluding": "0.18.0-rc1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "finder",
"value": "Aly (spect3r1)"
},
{
"lang": "en",
"type": "finder",
"value": "Abdelrahman Ahmed Aboelkasem (0x2face)"
},
{
"lang": "en",
"type": "remediation developer",
"value": "Louis Pilfold"
},
{
"lang": "en",
"type": "analyst",
"value": "Jonatan M\u00e4nnchen / EEF"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "<p>Path traversal vulnerability in Gleam's dependency management allows arbitrary directory deletion via malicious <tt>build/packages/packages.toml</tt> content.</p><p>Package keys read from <tt>build/packages/packages.toml</tt> by <tt>LocalPackages::read_from_disc</tt> are passed without validation to <tt>paths.build_packages_package()</tt>, which constructs a filesystem path by joining the project build directory with the attacker-controlled key. The resulting path is then passed to <tt>fs::delete_directory</tt> (which calls <tt>remove_dir_all</tt>). No check is performed to ensure the path remains within the intended <tt>build/packages/</tt> directory. Both absolute paths and relative traversal sequences (e.g. <tt>../</tt>) are accepted as package keys, allowing deletion of arbitrary directories.</p><p>An attacker who can cause a victim to run <tt>gleam deps download</tt> on a project containing a malicious <tt>build/packages/packages.toml</tt> (e.g. by committing the normally-gitignored file to a repository) can cause arbitrary directories on the victim's system to be recursively deleted.</p><p>This issue affects Gleam from 0.18.0-rc1 until 1.17.0.</p>"
}
],
"value": "Path traversal vulnerability in Gleam's dependency management allows arbitrary directory deletion via malicious build/packages/packages.toml content.\n\nPackage keys read from build/packages/packages.toml by LocalPackages::read_from_disc are passed without validation to paths.build_packages_package(), which constructs a filesystem path by joining the project build directory with the attacker-controlled key. The resulting path is then passed to fs::delete_directory (which calls remove_dir_all). No check is performed to ensure the path remains within the intended build/packages/ directory. Both absolute paths and relative traversal sequences (e.g. ../) are accepted as package keys, allowing deletion of arbitrary directories.\n\nAn attacker who can cause a victim to run gleam deps download on a project containing a malicious build/packages/packages.toml (e.g. by committing the normally-gitignored file to a repository) can cause arbitrary directories on the victim's system to be recursively deleted.\n\nThis issue affects Gleam from 0.18.0-rc1 until 1.17.0."
}
],
"impacts": [
{
"capecId": "CAPEC-139",
"descriptions": [
{
"lang": "en",
"value": "CAPEC-139 Relative Path Traversal"
}
]
},
{
"capecId": "CAPEC-597",
"descriptions": [
{
"lang": "en",
"value": "CAPEC-597 Absolute Path Traversal"
}
]
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "PRESENT",
"attackVector": "LOCAL",
"baseScore": 5.6,
"baseSeverity": "MEDIUM",
"privilegesRequired": "NONE",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "ACTIVE",
"vectorString": "CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "HIGH",
"vulnConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "NONE"
},
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-22",
"description": "CWE-22 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-06-02T19:14:19.113Z",
"orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
"shortName": "EEF"
},
"references": [
{
"tags": [
"vendor-advisory",
"related"
],
"url": "https://github.com/gleam-lang/gleam/security/advisories/GHSA-jqvf-f6p2-wrv3"
},
{
"tags": [
"related"
],
"url": "https://cna.erlef.org/cves/CVE-2026-43965.html"
},
{
"tags": [
"related"
],
"url": "https://osv.dev/vulnerability/EEF-CVE-2026-43965"
},
{
"tags": [
"patch"
],
"url": "https://github.com/gleam-lang/gleam/commit/690ca069817bee5f77a28fc3e360627c1da19291"
}
],
"source": {
"discovery": "EXTERNAL"
},
"title": "Path Traversal in build/packages/packages.toml Allows Arbitrary Directory Deletion",
"x_generator": {
"engine": "cvelib 1.8.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
"assignerShortName": "EEF",
"cveId": "CVE-2026-43965",
"datePublished": "2026-06-02T13:41:37.421Z",
"dateReserved": "2026-05-04T18:23:25.573Z",
"dateUpdated": "2026-06-02T19:14:19.113Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}