ZeroHour

CVE-2026-88886

niche

Command Injection in Renovate Gradle Wrapper Manager (self-hosted)

CVSS 4.0
8.5 high
EPSS
Published
()
Modified
AI analysis

Renovate's gradle-wrapper manager passes the distributionUrl value from a repository's gradle/wrapper/gradle-wrapper.properties file to the Gradle Wrapper CLI without escaping it, so shell metacharacters embedded in that URL are interpreted as commands (CWE-78, OS command injection). An attacker who can set a crafted distributionUrl (for example by appending a shell metacharacter and command) in a repository processed by a vulnerable instance can cause arbitrary command execution as the Renovate user when Renovate handles a Gradle Wrapper update, potentially exposing the host and the credentials Renovate uses. Only self-hosted deployments configured with binarySource=docker and with 'gradleWrapper' listed in allowedUnsafeExecutions are affected per the advisory; hosted or differently configured instances are not described as affected. No public proof-of-concept, CISA KEV listing, or confirmed in-the-wild exploitation is known. The flaw is fixed in Renovate 44.14.7, Mend Renovate CE/EE 15.4.0, and the mend-renovate-enterprise-edition Helm chart 10.4.0.

What to do: Upgrade self-hosted Renovate to 44.14.7 or later, Mend Renovate CE/EE to 15.4.0 or later, or the mend-renovate-enterprise-edition Helm chart to 10.4.0 or later. As an immediate workaround, remove 'gradleWrapper' from allowedUnsafeExecutions in any self-hosted configuration. Audit whether your instance uses the vulnerable configuration and whether managed repositories contain gradle/wrapper/gradle-wrapper.properties, and review host logs for unexpected commands run as the Renovate user.

Affected
renovatebot (Mend) Renovate (self-hosted)all versions before 44.14.7; exploitable only when configured with binarySource=docker and 'gradleWrapper' in allowedUnsafeExecutions
Mend Renovate CE/EEall distributions before 15.4.0; exploitable only when configured with binarySource=docker and 'gradleWrapper' in allowedUnsafeExecutions
mend-renovate-enterprise-edition Helm chartall versions before 10.4.0; exploitable only when configured with binarySource=docker and 'gradleWrapper' in allowedUnsafeExecutions
Estimated exposure
nichelikely hundreds to a few thousand self-hosted instances (estimate) — Renovate is widely adopted as a dependency-update tool, but the flaw applies only to the narrow subset of self-hosted instances using binarySource=docker with 'gradleWrapper' in allowedUnsafeExecutions and processing repositories that use…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Renovate is a dependency update automation tool. In versions before 44.14.7 (and in Mend Renovate CE/EE distributions before 15.4.0, and the mend-renovate-enterprise-edition Helm chart before 10.4.0), the manager/gradle-wrapper module does not escape the distributionUrl value read from a repository's gradle/wrapper/gradle-wrapper.properties file before invoking the Gradle Wrapper CLI. In self-hosted deployments configured with binarySource=docker and allowedUnsafeExecutions=['gradleWrapper', ...], a repository that supplies a crafted distributionUrl (for example, appending a shell metacharacter and command) can cause arbitrary commands to be executed as the Renovate user when Renovate processes a Gradle Wrapper update. The issue is fixed in Renovate 44.14.7; as a workaround, remove 'gradleWrapper' from allowedUnsafeExecutions.

Weakness
CWE-78
Vector
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.