chore(deps): update dependency renovate to v42 [security] #161
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
37.440.7→42.68.5GitHub Vulnerability Alerts
GHSA-pfq2-hh62-7m96
Summary
Renovate can be tricked into executing shell code while updating the Gradle Wrapper. A malicious
distributionUrlingradle/wrapper/gradle-wrapper.propertiescan lead to command execution in the Renovate runtime.Details
When Renovate handles Gradle Wrapper artifacts, it may run a wrapper update command such as:
./gradlew :wrapper --gradle-distribution-url <value>In the observed behavior, Renovate executes this via a shell (e.g.,
/bin/sh -c ...).If
distributionUrlcontains shell command substitution syntax like$(...), the shell evaluates it before Gradle validates/parses the URL.After that, Gradle attempts to parse the URL as a URI and fails with
URISyntaxException, but the shell substitution has already executed.This is reproducible even when
allowScriptsis disabled (default is OFF), because this execution happens as part of Gradle Wrapper artifact handling rather than “repository install scripts”.Prerequisites / attack conditions:
gradle-wrapper.propertiesinto a repository that Renovate scans (e.g., direct write access, or a maintainer merges an attacker’s change/PR).PoC
gradlew,gradlew.bat,gradle/wrapper/gradle-wrapper.jar, andgradle/wrapper/gradle-wrapper.properties).distributionUrlingradle-wrapper.propertiesto include$(...).URISyntaxException.A screen recording is attached showing end-to-end reproduction. In the demo, the payload creates
/tmp/passwd_dumpcontaining/etc/passwd, demonstrating that file read/exfiltration is possible within the Renovate execution context.Impact
This allows arbitrary command execution in the Renovate runtime during Gradle Wrapper updates. Depending on deployment, this may expose credentials/tokens available to the bot and may allow an attacker to modify repositories or access internal resources reachable from the Renovate environment.
Remediation
Upgrading to Renovate 42.68.5 (2025-12-31) fixes this issue, and closes out other risks of shell evaluation for commands run by Renovate.
If using the
composer,yarn(v1) orfluxmanagers, please upgrade to 42.74.5 (2026-01-08), as there were follow-up fixes to keep these managers working.GHSA-fr4j-65pv-gjjj
Summary
The user-provided string
packageNamein thenpmmanager is appended to thenpm installcommand during lock maintenance without proper sanitization.Details
Adversaries can provide a maliciously crafted Renovate configuration file to trick Renovate to execute arbitrary code.
The user-provided workspace names and package keys that are added to the
updateCmdvariables in lib/modules/manager/npm/post-update/npm.ts are not being escaped using thequotefunction from theshlexpackage.This lack of proper sanitization has been present in the product since version 35.63.0 (renovatebot/renovate@012c0ac), released on April 27 of 2023.
PoC
renovate.json5:package.json:{ "name": "renovate-aci-4", "version": "0.0.1", "dependencies": { "uuid": "^11.0.0" } }package-lock.json:{ "name": "renovate-aci-4", "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "renovate-aci-4", "version": "0.0.1", "dependencies": { "uuid": "^11.0.0" } }, "node_modules/uuid": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.0.tgz", "integrity": "sha512-iE8Fa5fgBY4rN5GvNUJ8TSwO1QG7TzdPfhrJczf6XJ6mZUxh/GX433N70fCiJL9h8EKP5ayEIo0Q6EBQGWHFqA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], "license": "MIT", "bin": { "uuid": "dist/esm/bin/uuid" } } } }kill 1, terminating the root process of the container.Note
This specific proof of concept relies on the introduction of the
overrideDatasourceandoverridePackageNameconfiguration, available since version 38.120.0 (renovatebot/renovate@a70a6a3), released on October 12 of 2024.Impact
This is a Arbitrary Command Injection vulnerability, allowing those with write access on repositories configured to be scanned by Renovate to cause the execution of commands of their choice on the machine that runs Renovate.
GHSA-36j9-mx87-2cff
Summary
The user-provided string
depNamein thehermitmanager is appended to the./hermit installand./hermit uninstallcommands without proper sanitization.Details
Adversaries can provide a maliciously named hermit dependency in conjunctions with a tweaked Renovate configuration file to trick Renovate to execute arbitrary code.
All values added to the
packagesToInstallandpackagesToUninstallvariables in lib/modules/manager/hermit/artifacts.ts are not being escaped using thequotefunction from theshlexpackage.This lack of proper sanitization for installing packages has been present in the product since the introduction of the hermit manager in version 32.135.0 (renovatebot/renovate@b696abb), released on July 30 of 2022.
In version 37.199.1 (renovatebot/renovate@eaec10d) some use of the
quotefunction from theshlexpackage was added, but not in a way that usefully prevented this arbitrary code injection vulnerability.When support for replacements was introduced with version 37.214.4 (renovatebot/renovate@41e8b99), the same faulty approach was replicated for uninstalling packages.
PoC
renovate.json5:bin/hermit:bin/.|| kill 1 ||@​0.0.1.pkg(symlink):A symlink to
hermitkill 1, terminating the root process of the container.Note
This specific proof of concept was made a lot simpler with the introduction of the
overrideDatasourceconfiguration since version 38.120.0 (renovatebot/renovate@a70a6a3), released on October 12 of 2024, because it means that there is no more need for a proper response from an actual hermit-packages repository during resolution.Impact
TThis is a Arbitrary Command Injection vulnerability, allowing those with write access on repositories configured to be scanned by Renovate to cause the execution of commands of their choice on the machine that runs Renovate.
GHSA-3f44-xw83-3pmg
Summary
The user-provided string
repositoryin thehelmv3manager is appended to thehelm registry logincommand without proper sanitization.Details
Adversaries can provide a maliciously crafted
Chart.yamlin conjunctions with a tweaked Renovate configuration file to trick Renovate to execute arbitrary code.The value for both uses of the
repositoryvariable in lib/modules/manager/helmv3/common.ts are not being escaped using thequotefunction from theshlexpackage.This lack of proper sanitization has been present in the product since version 31.51.0 (renovatebot/renovate@f372a68), released on January 24 of 2022.
PoC
renovate.json5:Chart.yaml:Chart.lock:kill 1, terminating the root process of the container.Note
This specific proof of concept was made a lot simpler with the introduction of the
overrideDatasourceconfiguration since version 38.120.0 (renovatebot/renovate@a70a6a3), released on October 12 of 2024, because it means that there is no more need for a proper response from an actual Helm registry on the malformed repository URL.Impact
This is a Arbitrary Command Injection vulnerability, allowing those with write access on repositories configured to be scanned by Renovate to cause the execution of commands of their choice on the machine that runs Renovate.
Release Notes
renovatebot/renovate (renovate)
v42.68.5Compare Source
Bug Fixes
shellmode (140a777)shellby default (f430552)Documentation
postUpgradeTaskswith shell execution (d2872e2)Code Refactoring
execa(a0a84a4)Tests
exec(bebff1c)encodingfrom stubs (#40221) (8fab5f0)shellparameter (d0bee7f)v42.68.4Compare Source
Bug Fixes
v42.68.3Compare Source
Bug Fixes
Miscellaneous Chores
f05033a(main) (#40222) (021ace6)v42.68.2Compare Source
Bug Fixes
v42.68.1Compare Source
Bug Fixes
execafor command execution (#40212) (e773b32)Miscellaneous Chores
v42.68.0Compare Source
Features
exactversioning (#40098) (22721ed)Miscellaneous Chores
v42.67.0Compare Source
Features
Documentation
Miscellaneous Chores
5279485(main) (#40211) (4c7edaf)5fdc8eb(main) (#40210) (14b4782)8797f8e(main) (#40209) (e1d620e)Code Refactoring
encodingproperty (#40199) (39bfc09)v42.66.14Compare Source
Bug Fixes
v42.66.13Compare Source
Bug Fixes
Miscellaneous Chores
Code Refactoring
rawExecfor commands (#40200) (a0de103)v42.66.12Compare Source
Bug Fixes
Documentation
Miscellaneous Chores
Code Refactoring
v42.66.11Compare Source
Bug Fixes
bitbucket-serveras platform cache key (#40168) (fb15aa4)Miscellaneous Chores
node_modulesfrom tsconfig (#40179) (4b8803d)v42.66.10Compare Source
Bug Fixes
v42.66.9Compare Source
Build System
v42.66.8Compare Source
Bug Fixes
Miscellaneous Chores
v42.66.7Compare Source
Miscellaneous Chores
Build System
v42.66.6Compare Source
Build System
v42.66.5Compare Source
Build System
v42.66.4Compare Source
Build System
v42.66.3Compare Source
Bug Fixes
v42.66.2Compare Source
Bug Fixes
Miscellaneous Chores
v42.66.1Compare Source
v42.66.0Compare Source
v42.65.2Compare Source
Bug Fixes
Miscellaneous Chores
v42.65.1Compare Source
Bug Fixes
Build System
v42.65.0Compare Source
Features
Bug Fixes
Documentation
Miscellaneous Chores
v42.64.1Compare Source
Build System
v42.64.0Compare Source
Features
Code Refactoring
createdAtfield (#40063) (a052292)v42.63.0Compare Source
Features
Bug Fixes
Miscellaneous Chores
v42.62.0Compare Source
Features
allowedUnsafeExecutionsfor./gradlew(#39945) (f504709)Bug Fixes
Documentation
./gradlewfor Verificaton Metadata updates (#40044) (0723e80)v42.61.0Compare Source
Features
tsconfigNodeVersionsfile patterns (#40034) (71e1724)v42.60.0Compare Source
Features
workarounds:clamavDockerImageVersioning(#40035) (dfde989)Documentation
Miscellaneous Chores
Code Refactoring
v42.59.1Compare Source
Bug Fixes
releaseTimestampis returned correctly (#39899) (844e299), closes #35936v42.59.0Compare Source
Features
v42.58.4Compare Source
Bug Fixes
v42.58.3Compare Source
Bug Fixes
forgejo-*host types (#39968) (a8ee664)Miscellaneous Chores
v42.58.2Compare Source
Bug Fixes
v42.58.1Compare Source
Miscellaneous Chores
Code Refactoring
Build System
v42.58.0Compare Source
Features
Bug Fixes
Miscellaneous Chores
492b292(main) (#40018) (9f49cbf)v42.57.1Compare Source
Bug Fixes
Miscellaneous Chores
v42.57.0Compare Source
Features
onboardingAutoCloseAge(#39876) (ef0ff99)v42.56.0Compare Source
Features
v42.55.0Compare Source
Features
Miscellaneous Chores
v42.54.3Compare Source
Bug Fixes
v42.54.2Compare Source
Bug Fixes
Miscellaneous Chores
v42.54.1Compare Source
Bug Fixes
helpers:githubDigestChangelogsshould only apply to Git digest updates (#39995) (1bd574c)[
v42.54.0](https://redirecConfiguration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.