Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain repository write access
-
DeliveryCommit malicious gleam.toml with shell-injecting depName
-
ExploitAdd renovate.json5 forcing gleam manager update trigger
-
ExecutionRenovate scans repository and builds unescaped shell command
-
PersistInjected shell operators execute on Renovate runner host
-
ImpactArbitrary commands run with Renovate process privileges
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Command injection prevention
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the attacker to have write access to at least one git repository that is actively scanned by the vulnerable Renovate instance - this is the primary gate. The attacker must be able to commit two files: a gleam.toml with a dependency name containing shell metacharacters, and a renovate.json5 or equivalent Renovate configuration that overrides the datasource to force an update event (otherwise Renovate may not invoke the gleam deps update code path). The gleam manager must be enabled; because Renovate enables managers based on file presence, introducing a gleam.toml is sufficient to trigger the manager. Exploitation is bounded by the privilege context of the Renovate runner process - commands execute as that user. Versions prior to 39.53.0 and 40.33.0 or later are not affected. The vulnerability does NOT require network-facing Renovate APIs, admin access to the Renovate host OS, or any interaction from a human operator once the malicious commit is in place. |
| Impact | The CVSS 4.0 score of 8.4 with vector AV:L/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H reflects a well-calibrated risk profile: the local attack vector is appropriate because exploitation is mediated through repository files that Renovate processes rather than a direct network-facing interface, and high-privilege requirement (PR:H in the vendor's 4.0 assessment) reflects that the attacker must hold repository write access. Despite these constraints, this is a genuine operational priority for teams running Renovate in CI/CD pipelines: the Renovate runner commonly holds secrets such as tokens, SSH keys, and registry credentials, meaning arbitrary command execution translates to credential theft and lateral movement potential. The publicly available PoC in the GHSA advisory significantly lowers attacker effort. No EPSS data was provided in the input. The absence of a CISA KEV listing means active exploitation is not confirmed, but the tight combination of write-access gating and a working PoC makes exploitation straightforward for any insider or compromised contributor account. There is no conflicting signal between the CVSS vector and the description - both consistently indicate local file-mediated execution requiring authenticated repository access. |
| Exploit ScenarioDerived | An attacker with write access to a repository scanned by Renovate commits a gleam.toml containing a dependency name that embeds shell operators - for example, '|| kill 1' as demonstrated in the published PoC - alongside a renovate.json5 that uses a custom datasource to make Renovate believe a newer version is available, forcing an update attempt. When Renovate's gleam manager runs, it constructs the unescaped command string gleam deps update || kill 1 and executes it via the system shell, causing the injected command to run with the privileges of the Renovate process. The PoC confirms this terminates the container's root process; in production environments with real secrets mounted, the impact is credential exfiltration or lateral movement. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 19, 2026
Command injection in Renovate's gleam manager (versions 39.53.0 through 40.33.0 exclusive) allows attackers with repository write access to execute arbitrary OS commands on the machine running Renovate by committing a crafted gleam.toml containing shell metacharacters in dependency names. The depName field sourced from gleam.toml is interpolated directly into a gleam deps update shell invocation without using shlex quoting, enabling full shell escape. A detailed proof-of-concept is publicly documented in the GHSA advisory (GHSA-xjr7-3c3g-m763); no confirmed active exploitation appears in CISA KEV at time of analysis.
RemediationAI
Upgrade Renovate to version 40.33.0 or later; this is the vendor-confirmed fix as documented in GHSA-xjr7-3c3g-m763 and implemented in commit https://github.com/renovatebot/renovate/commit/d29698e0131231652970f02765312769975e4d38. If an immediate upgrade is not feasible, the most effective compensating control is to disable the gleam manager in Renovate configuration by explicitly excluding it from enabledManagers - this eliminates the attack surface entirely at the cost of losing automated gleam dependency updates. A second control is to enforce strict branch protection and code-review requirements on gleam.toml and renovate.json5 files so that malicious content cannot reach the main branch without review. Restricting which repositories Renovate is configured to scan further limits blast radius. Note that simply running Renovate in a sandboxed container does not prevent the injection from executing; it only limits post-exploitation movement if the container is properly isolated from host credentials.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw resides in lib/modules/manager/gleam/artifacts.ts within Renovate's gleam package manager integration (CPE: cpe:2.3:a:renovatebot:renovate). When constructing update commands, the code builds a shell string by joining 'gleam deps update' with raw depName values sourced from gleam.toml using Array.join(' ') - entirely bypassing the quote() function from the shlex package that Renovate uses for safe shell escaping elsewhere. CWE-77 (Improper Neutralization of Special Elements used in a Command) is the root cause: unsanitized user-controlled data is interpolated into an OS-level command string, allowing shell operators such as ||, &&, or ; to break out of the intended command context. The vulnerability was introduced with commit d29698e on December 6, 2024, when the gleam manager first began passing individual package names to gleam deps update rather than running a blanket gleam deps download.
Know when Renovate gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
AV:L because exploitation is file-mediated through a checked-out repository; PR:L because repository write access is a standard contributor role, not admin; full C/I/A impact from arbitrary command execution; no scope change as impact is confined to the Renovate runner.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Renovate versions from 39.53.0 before 40.33.0 contain a command injection vulnerability in the gleam manager where the depName parameter is appended to gleam deps update commands without proper sanitization. Attackers with repository write access can craft malicious gleam.toml files to execute arbitrary commands on the machine running Renovate.
Executive ViewAI
Renovate versions 39.53.0 through 40.33.0 contain a command injection vulnerability in the gleam dependency manager that allows attackers with repository write access to execute arbitrary code on CI/CD systems running Renovate. This could enable unauthorized deployment of malicious code or exfiltration of secrets from build pipelines. Organizations using affected versions should prioritize updating to the patched release.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Credential exfiltration in Renovate before 44.11.3 lets a malicious or compromised GitLab server steal the authenticatio
Credential exfiltration in Renovate (renovatebot/renovate) before 44.11.2 lets a malicious or compromised container regi
Credential exfiltration in Renovate before 44.11.2 (and Mend Renovate CE/EE images/charts before 15.4.0, enterprise-edit
Credential disclosure in Renovate before 44.11.3 allows a malicious or compromised GitHub server to exfiltrate host cred
Command injection in Renovate's Maven Wrapper manager allows an attacker with write access to a scanned repository to ex
Command injection in Renovate's hermit manager (versions 32.135.0 through 40.33.0) allows an attacker with repository wr
Command injection in Renovate's helmv3 manager (versions 31.51.0 through 40.32.x) allows repository contributors with wr
Command injection in Renovate's npm manager (versions 35.63.0 through 40.33.0) allows attackers with repository write ac
Command injection in Renovate's kustomize manager (versions 39.218.0 through 40.33.0) allows repository contributors wit
Command injection in Renovate's Gradle Wrapper update mechanism allows arbitrary code execution inside the Renovate runt
Command injection in Renovate's Gradle Wrapper manager module allows a repository contributor to execute arbitrary OS co
Incomplete log sanitization in Renovate before 44.14.4 causes Mutual TLS private keys to be written in cleartext to appl
EUVD-2026-62474
GHSA-xmpw-q5r4-p783
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB