OS Command Injection in Renovate (CVE-2024-58376)
Summary
OS command injection in Renovate (CVE-2024-58376). Successful exploitation can lead to full system takeover.
Original description
The description as published by the source.
Summary
Attackers with commit access to the default branch of a repo using Renovate could manipulate helmv3 registryAliases to execute arbitrary commands.
Details
Since #26848, registryAliases has become mergeable. This means that the helmv3 manager started honoring its value and uses a helm repo add command for each defined alias. See source code: https://github.com/renovatebot/renovate/blob/23f3df6216375cb5bcfe027b0faee304f877f891/lib/modules/manager/helmv3/artifacts.ts#L80
The key was not quoted, leading to the ability to use variable references ($FOO) in it and have them printed by Renovate on the pull request, or even running any shell commands.
PoC
Inside a repository where Renovate runs, add a Helm chart with an outdated dependency, for example:
test-chart/Chart.yaml:
apiVersion: v2
name: redis
version: 1.0.0
dependencies:
- name: redis
version: 18.13.10
repository: oci://registry-1.docker.io/bitnamicharts
test-chart/Chart.lock:
dependencies:
- name: redis
repository: oci://registry-1.docker.io/bitnamicharts
version: 18.13.10
digest: sha256:11267bd32ea6c5c120ddebbb9f21e4a3c7700a961aa1a27ddb55df1fb8059a38
generated: "2024-02-16T13:31:20.807026334Z"
Then add the following renovate.json:
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
],
"registryAliases": {
"foo/bar || sh -c 'ls /; exit 1…
Source: NIST National Vulnerability Database NVD GitHub Advisory
Auto-generated summary
Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.
A vulnerability tracked as CVE-2024-58376 has been found in Renovate.
Successful exploitation can lead to full system takeover. CVSS score: 6.7/10.
What to do: apply the vendor's official patched release.
If unsure, ask your IT team or search "Renovate CVE-2024-58376" on the vendor's site.
CVE-2024-58376 (Renovate) — CWE-78 / CVSS v3 6.7
Attack vector: local / no user interaction
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.
OS command injection (CWE-78) exists in Renovate.
Check the vendor advisory for the affected versions of Renovate.
Severity: Medium (CVSS 6.7/10). Successful exploitation can lead to full system takeover.
Update to the patched release per vendor advisory.
Until the patch is applied: disable the affected feature, apply WAF rules, or restrict access via network ACLs.
Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Run grep -r 'Renovate' . against your dependency files (package-lock.json, requirements.txt, go.sum) to find affected services.
Response actions
Concrete steps and command examples for SOC/SRE teams to execute in order
-
1Identify exposure identify
grep -r 'Renovate' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
Renovateを grep し、稼働しているサービス・バージョンを把握する。 -
2Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
Affected packages
References
- package github.com
- web github.com
- web disclosure@vulncheck.com
- web nvd.nist.gov
- web github.com
- web github.com
- web github.com