CVE-2026-88886
nicheCommand Injection in Renovate Gradle Wrapper Manager (self-hosted)
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.
| 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/EE | all distributions before 15.4.0; exploitable only when configured with binarySource=docker and 'gradleWrapper' in allowedUnsafeExecutions |
| mend-renovate-enterprise-edition Helm chart | all versions before 10.4.0; exploitable only when configured with binarySource=docker and 'gradleWrapper' in allowedUnsafeExecutions |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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 news0 stories
No ingested article mentions this CVE yet.