{"id":"CVE-2026-76227","revision":null,"records":[{"revision":"f8b536081b8f4c92954f728ac1fca7ac","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-76227","aliases":[],"title":"Renovate 42.68.1 before 42.96.3 and 43.0.0 before 43.4.4 Environment Variable Exposure","description":"Renovate versions from 42.68.1 before 42.96.3 and from 43.0.0 before 43.4.4, including the renovate/renovate Docker images, and Mend Renovate CE/EE images (renovate-ce, renovate-ee-server, renovate-ee-worker) from 13.3.0 before 13.6.0, fail to restrict environment variables to an allowlist when spawning child processes. As a result, child processes (e.g. npm install, postUpgradeTasks, postUpdateOptions) gain full access to all environment variables of the Renovate process, allowing insider or outside attackers to exfiltrate secrets accessible to the Renovate deployment.","state":0,"publishedAt":"2026-08-19T14:02:09.384+00:00","modifiedAt":"2026-10-08T15:25:04.01+00:00","affected":[{"ecosystem":"Vendor product","name":"renovate","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"renovatebot\",\n                    \"product\": \"renovate\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"versions\": [\n                        {\n                            \"version\": \"42.68.1\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\",\n                            \"lessThan\": \"42.96.3\"\n                        },\n                        {\n                            \"version\": \"42.96.3\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"43.0.0\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\",\n                            \"lessThan\": \"43.4.4\"\n                        },\n                        {\n                            \"version\": \"43.4.4\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ],\n                    \"packageURL\": \"pkg:npm/renovate\"\n                }"},{"ecosystem":"Vendor product","name":"renovate-ce","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"mend\",\n                    \"product\": \"renovate-ce\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"versions\": [\n                        {\n                            \"version\": \"13.3.0\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\",\n                            \"lessThan\": \"13.6.0\"\n                        },\n                        {\n                            \"version\": \"13.6.0\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ],\n                    \"packageURL\": \"pkg:npm/renovate\"\n                }"},{"ecosystem":"Vendor product","name":"renovate-ee-server","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"mend\",\n                    \"product\": \"renovate-ee-server\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"versions\": [\n                        {\n                            \"version\": \"13.3.0\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\",\n                            \"lessThan\": \"13.6.0\"\n                        },\n                        {\n                            \"version\": \"13.6.0\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ],\n                    \"packageURL\": \"pkg:npm/renovate\"\n                }"},{"ecosystem":"Vendor product","name":"renovate-ee-worker","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"mend\",\n                    \"product\": \"renovate-ee-worker\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"versions\": [\n                        {\n                            \"version\": \"13.3.0\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\",\n                            \"lessThan\": \"13.6.0\"\n                        },\n                        {\n                            \"version\": \"13.6.0\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ],\n                    \"packageURL\": \"pkg:npm/renovate\"\n                }"}],"metrics":[{"system":"CVSS 4.0","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","score":6.8,"severity":"MEDIUM"},{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","score":5.5,"severity":"MEDIUM"}],"references":["https://github.com/renovatebot/renovate/security/advisories/GHSA-8wc6-vgrq-x6cf","https://www.vulncheck.com/advisories/renovate-before-environment-variable-exposure"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-76227","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-76227","identifiers":["CVE-2026-76227"]},"retained":false,"historicalAffected":[]},{"revision":"0dcba63baf7a474a9febeeda009b71ce","observedAt":"2026-11-09T15:12:32.479+00:00","statement":{"source":"euvd","id":"EUVD-2026-62468","aliases":["CVE-2026-76227","GHSA-p44v-39mg-jgrj"],"title":"Renovate versions from 42.68.1 before 42.96.3 and from 43.0.0 before 43.4.4, including the renovate/renovate Docker images, and Mend Renovate CE/EE images (renovate-ce, renovate-ee-server, renovate-ee-worker) from 13.3.0 before 13.6.0, fail…","description":"Renovate versions from 42.68.1 before 42.96.3 and from 43.0.0 before 43.4.4, including the renovate/renovate Docker images, and Mend Renovate CE/EE images (renovate-ce, renovate-ee-server, renovate-ee-worker) from 13.3.0 before 13.6.0, fail to restrict environment variables to an allowlist when spawning child processes. As a result, child processes (e.g. npm install, postUpgradeTasks, postUpdateOptions) gain full access to all environment variables of the Renovate process, allowing insider or outside attackers to exfiltrate secrets accessible to the Renovate deployment.","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[{"system":"EUVD CVSS 4.0","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","score":6.8,"severity":null}],"references":["https://github.com/renovatebot/renovate/security/advisories/GHSA-8wc6-vgrq-x6cf","https://www.vulncheck.com/advisories/renovate-before-environment-variable-exposure"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-62468","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"Aug 19, 2026, 2:02:09 PM","dateUpdated":"Oct 8, 2026, 3:25:04 PM"},"relatedAdvisories":[],"note":"EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON."},"key":"euvd:EUVD-2026-62468","identifiers":["EUVD-2026-62468","CVE-2026-76227","GHSA-p44v-39mg-jgrj"]},"retained":false,"historicalAffected":[]},{"revision":"b8b7b846dcf9457c80aae156bb711e5b","observedAt":"2026-10-25T16:19:04.694+00:00","statement":{"source":"nvd","id":"CVE-2026-76227","aliases":[],"title":"Renovate versions from 42.68.1 before 42.96.3 and from 43.0.0 before 43.4.4, including the renovate/renovate Docker images, and Mend Renovate CE/EE images (renovate-ce, renovate-ee-server, renovate-ee-worker) from 13.3.0 before 13.6.0, fail…","description":"Renovate versions from 42.68.1 before 42.96.3 and from 43.0.0 before 43.4.4, including the renovate/renovate Docker images, and Mend Renovate CE/EE images (renovate-ce, renovate-ee-server, renovate-ee-worker) from 13.3.0 before 13.6.0, fail to restrict environment variables to an allowlist when spawning child processes. As a result, child processes (e.g. npm install, postUpgradeTasks, postUpdateOptions) gain full access to all environment variables of the Renovate process, allowing insider or outside attackers to exfiltrate secrets accessible to the Renovate deployment.","state":0,"publishedAt":"2026-08-19T14:17:49.307+00:00","modifiedAt":"2026-10-08T16:17:42.423+00:00","affected":[],"metrics":[{"system":"CVSS 4.0 · disclosure@vulncheck.com · Secondary","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/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","score":6.8,"severity":"MEDIUM"},{"system":"CVSS 3.1 · disclosure@vulncheck.com · Secondary","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","score":5.5,"severity":"MEDIUM"}],"references":["https://github.com/renovatebot/renovate/security/advisories/GHSA-8wc6-vgrq-x6cf","https://www.vulncheck.com/advisories/renovate-before-environment-variable-exposure"],"sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-76227","license":"NIST NVD usage terms; underlying source attribution retained","enrichment":{"sourceStatus":"Awaiting Analysis","weaknesses":["CWE-526"],"productCriteria":[],"sourceDates":{"published":"2026-08-19T14:17:49.307","lastModified":"2026-10-08T16:17:42.423"},"relatedAdvisories":[],"note":"NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON."},"key":"nvd:CVE-2026-76227","identifiers":["CVE-2026-76227"]},"retained":false,"historicalAffected":[]},{"revision":"a74d896feeda46c0b1aaa02a596d549e","observedAt":"2026-10-24T13:17:17.793+00:00","statement":{"source":"osv","id":"GHSA-8wc6-vgrq-x6cf","aliases":["CVE-2026-76227"],"title":"Child processes spawned by Renovate incorrectly have full access to environment variables","description":"When Renovate spawns child processes, their access to environment variables is filtered to an allowlist, to prevent unauthorized access to privileged credentials that the Renovate process has access to.\n\nSince [42.68.1](https://github.com/renovatebot/renovate/releases/tag/42.68.1) (2025-12-30), this filtering had been **inadvertently removed**, and so any child processes spawned from these versions will have had access to any environment variables that Renovate has access to.\n\nThis could lead to [insider attackers](https://docs.renovatebot.com/security-and-permissions/#execution-of-code-insider-attack) and [outside attackers](https://docs.renovatebot.com/security-and-permissions/#execution-of-code-outsider-attack) being able to exflitrate secrets from the Renovate deployment.\n\nIt is recommended to rotate (+ revoke) any credentials that Renovate has access to, in case any spawned child processes have attempted to exfiltrate any secrets.\n\n## Impact\n\nChild processes spawned by Renovate (i.e. `npm install`, anything defined in [`postUpgradeTasks`](https://docs.renovatebot.com/configuration-options/#postupgradetasks) or [`postUpdateOptions`](https://docs.renovatebot.com/configuration-options/#postupdateoptions)) will have full access to the environment variables that the Renovate process has. \n\nThis could lead to [insider attackers](https://docs.renovatebot.com/security-and-permissions/#execution-of-code-insider-attack) and [outside attackers](https://docs.renovatebot.com/security-and-permissions/#execution-of-code-outsider-attack) being able to exflitrate secrets from the Renovate deployment.\n\n## Patches\n\nThis is patched in [42.96.3](https://github.com/renovatebot/renovate/releases/tag/42.96.3) and [43.4.4](https://github.com/renovatebot/renovate/releases/tag/43.4.4).\n\n## Workarounds\n\nThere are no workarounds, other than upgrading your Renovate version.\n\n## Why did this happen?\n\nAs part of work towards https://github.com/renovatebot/renovate/security/advisories/GHSA-pfq2-hh62-7m96, one of the [preparatory changes](https://github.com/renovatebot/renovate/pull/40212) we made was moving to [`execa`](https://www.npmjs.com/package/execa).\n\nOne of the default behaviours of `execa` is to [extend the process' environment variables with any new ones](https://github.com/sindresorhus/execa/tree/v8.0.1?tab=readme-ov-file#extendenv), rather than override them.\n\nThis was missed in code review, which meant that since this version, the full environment variables have been provided to any child processes spawned with `execa` by Renovate.\n\nThis was discovered as part of an unrelated change.","state":0,"publishedAt":"2026-02-13T20:53:58+00:00","modifiedAt":"2026-08-20T04:04:14.7664459+00:00","affected":[{"ecosystem":"npm","name":"renovate","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"42.68.1"},{"kind":"fixed","version":"42.96.3"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"npm","name":"renovate","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"43.0.0"},{"kind":"fixed","version":"43.4.4"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V3","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"MODERATE"}],"references":["https://github.com/renovatebot/renovate/security/advisories/GHSA-8wc6-vgrq-x6cf","https://github.com/renovatebot/renovate","https://github.com/renovatebot/renovate/releases/tag/42.96.3","https://github.com/renovatebot/renovate/releases/tag/43.4.4"],"sourceUrl":"https://github.com/advisories/GHSA-8wc6-vgrq-x6cf","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-8wc6-vgrq-x6cf","identifiers":["GHSA-8wc6-vgrq-x6cf","CVE-2026-76227"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-11-10T17:24:49.2932543+00:00","complete":true,"records":1773,"lastAttemptAt":"2026-11-10T17:24:49.2932543+00:00","lastSuccessAt":"2026-11-10T17:24:49.4591165+00:00","error":null,"lastVerifiedAt":"2026-11-10T17:24:49.4591192+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-8859cf40d4337e24bd2f258cc7778fbad01bb24c79d057aaf34cf1dfc6f8917d-c04d91b13c9128b20b85238adce4026f513a7f30cff28d5a67ae355d34d58b2b","complete":true,"records":422146,"lastAttemptAt":"2026-11-10T17:21:30.71186+00:00","lastSuccessAt":"2026-11-10T17:21:30.5671236+00:00","error":null,"lastVerifiedAt":"2026-11-10T17:21:30.71186+00:00","snapshotPublishedAt":"2026-11-10T16:28:30+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-d0c54bf27dd44f59b652d410e8e55def","complete":true,"records":13704,"lastAttemptAt":"2026-11-10T17:24:58.2594049+00:00","lastSuccessAt":"2026-11-10T16:26:03.716+00:00","error":null,"lastVerifiedAt":"2026-11-10T16:26:03.716+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13758,"expectedIdentifiers":13758,"failedIdentifiers":0},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-11-10T17:24:49.2932543+00:00","complete":true,"records":1096,"lastAttemptAt":"2026-11-10T17:24:49.2932543+00:00","lastSuccessAt":"2026-11-10T17:24:49.459896+00:00","error":null,"lastVerifiedAt":"2026-11-10T17:24:49.4598962+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-059a952fa5b34452ba3a4ff42f04741b","complete":true,"records":13710,"lastAttemptAt":"2026-11-10T17:24:57.2351467+00:00","lastSuccessAt":"2026-11-10T17:24:57.231+00:00","error":null,"lastVerifiedAt":"2026-11-10T17:24:57.231+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13758,"expectedIdentifiers":13758,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-50a085e5b7a5d1546eabdb7e52fab85d658afa8554d3cf95a0891c49d83f2979","complete":true,"records":9935,"lastAttemptAt":"2026-11-10T17:24:49.1476899+00:00","lastSuccessAt":"2026-11-10T16:25:20.0114252+00:00","error":null,"lastVerifiedAt":"2026-11-10T17:24:49.1476899+00:00","snapshotPublishedAt":"2026-11-10T16:18:10+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-26503967ae4379db8f374089589d6e03fb15bd31f820c9e992aaf93840c2236c","complete":true,"records":1971,"lastAttemptAt":"2026-11-10T17:21:30.7782647+00:00","lastSuccessAt":"2026-11-09T21:02:20.472473+00:00","error":null,"lastVerifiedAt":"2026-11-10T17:21:30.7782647+00:00","snapshotPublishedAt":"2026-11-09T20:18:18+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-df497239f2f75af38e095cb498791dad4044a8a9a7f5f0ee6008bb732579ab9d","complete":true,"records":3081,"lastAttemptAt":"2026-11-10T17:24:49.2499106+00:00","lastSuccessAt":"2026-11-10T14:21:34.3717399+00:00","error":null,"lastVerifiedAt":"2026-11-10T17:24:49.2499106+00:00","snapshotPublishedAt":"2026-11-10T14:18:07+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-82794ed9d128b3d2f332e24d4ecbf30e5b7d49fb88ff3791fdf7516fda05c8c9","complete":true,"records":231614,"lastAttemptAt":"2026-11-10T17:24:49.0209485+00:00","lastSuccessAt":"2026-11-10T17:24:47.5089691+00:00","error":null,"lastVerifiedAt":"2026-11-10T17:24:49.0209485+00:00","snapshotPublishedAt":"2026-11-10T16:33:23+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}