{"schemaVersion":3,"id":"CVE-2025-36852","aliases":["GHSA-rrr2-jcr8-7q3x"],"status":"published","duplicateOf":null,"title":null,"description":"A critical security vulnerability exists in remote cache extensions for common build systems utilizing bucket-based remote cache (such as those using Amazon S3, Google Cloud Storage, or similar object storage) that allows any contributor with pull request privileges to inject compromised artifacts from an untrusted environment into trusted production environments without detection.\n\n\n\n\nThe vulnerability exploits a fundamental design flaw in the \"first-to-cache wins\" principle, where artifacts built in untrusted environments (feature branches, pull requests) can poison the cache used by trusted environments (protected branches, production deployments).\n\n\n\n\nThis attack bypasses all traditional security measures including encryption, access controls, and checksum validation because the poisoning occurs during the artifact construction phase, before any security measures are applied.","dates":{"published":"2025-06-10T19:23:33.956Z","modified":"2025-06-10T21:35:37.274Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":9.4,"severity":"critical","version":"4.0","versionLabel":"v4.0","source":"CVE.org","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/S:P/AU:Y/R:U/V:C/RE:M/U:Red","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":9.4,"severity":"critical","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/S:P/AU:Y/R:U/V:C/RE:M/U:Red","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Npm","score":9.4,"severity":"critical","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/S:P/AU:Y/R:U/V:C/RE:M/U:Red","exploitability":null,"impact":null,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":9.4,"severity":"critical","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/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:P/AU:Y/R:U/V:C/RE:M/U:Red","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00249,"percentile":0.15303,"severity":"low","asOf":"2026-10-21T00:00:00.000Z","change":{"pp":0.008000000000000021,"baselineDate":"2026-09-21T00:00:00.000Z","baselineScore":0.00241},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00249,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00249,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00249,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00249,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00249,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00249,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00249,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00249,"percentile":0.15303}],"last30":[{"date":"2026-09-21T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00241,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00243,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00249,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00249,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00249,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00249,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00249,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00249,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00249,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00249,"percentile":0.15303}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-829","name":"Inclusion of Functionality from Untrusted Control Sphere","description":"The product imports, requires, or includes executable functionality (such as a library) from a source that is outside of the intended control sphere.","type":"weakness","status":"Incomplete","abstraction":"Base","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/829.html"}],"affected":[{"vendor":"niklas portmann","product":"azure based remote cache plugin for nx","name":"Azure Based Remote Cache Plugin for Nx","label":"azure based remote cache plugin for nx","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":"/vendor/niklas_portmann/azure_based_remote_cache_plugin_for_nx"},{"vendor":"niklas portmann","product":"minio based remote cache plugin for nx","name":"Minio Based Remote Cache Plugin for Nx","label":"minio based remote cache plugin for nx","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":"/vendor/niklas_portmann/minio_based_remote_cache_plugin_for_nx"},{"vendor":"niklas portmann","product":"nx remote cache utilities","name":"Nx Remote Cache Utilities","label":"nx remote cache utilities","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":"/vendor/niklas_portmann/nx_remote_cache_utilities"},{"vendor":"@nx","product":"azure-cache","name":"@nx/azure-cache","label":"azure-cache","ecosystem":"Npm","cpePart":null,"purl":"pkg:npm/@nx/azure-cache","purlType":"npm","versions":[{"text":"≤ 4.0.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"≤ 4.0.0","eol":null,"hubHref":null},{"vendor":"nx","product":"aws s3 remote cache plugin for nx","name":"AWS S3 Remote Cache Plugin for Nx","label":"aws s3 remote cache plugin for nx","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":"/vendor/nx/aws_s3_remote_cache_plugin_for_nx"},{"vendor":"nx","product":"azure blob remote cache plugin for nx","name":"Azure Blob Remote Cache Plugin for Nx","label":"azure blob remote cache plugin for nx","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":"/vendor/nx/azure_blob_remote_cache_plugin_for_nx"},{"vendor":"nx","product":"gcs remote cache plugin for nx","name":"GCS Remote Cache Plugin for Nx","label":"gcs remote cache plugin for nx","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":"/vendor/nx/gcs_remote_cache_plugin_for_nx"},{"vendor":"nx","product":"shared file system cache plugin for nx","name":"Shared File System Cache Plugin for Nx","label":"shared file system cache plugin for nx","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":"/vendor/nx/shared_file_system_cache_plugin_for_nx"}],"affectedCount":8,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://nx.app/files/cve-2025-06","label":"nx.app/files/cve-2025-06","hostname":"nx.app","tags":["WEB"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-36852","label":"nvd.nist.gov/vuln/detail/CVE-2025-36852","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/nrwl/nx","label":"github.com/nrwl/nx","hostname":"github.com","tags":["PACKAGE"]},{"url":"https://nx.dev/blog/creep-vulnerability-build-cache-security","label":"nx.dev/blog/creep-vulnerability-build-cache-security","hostname":"nx.dev","tags":["WEB"]},{"url":"https://nx.dev/docs/reference/remote-cache-plugins/azure-cache/overview","label":"nx.dev/docs/reference/remote-cache-plugins/azure-cache/overview","hostname":"nx.dev","tags":["WEB"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2025-06-10T19:23:33.956Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2025-06-10T21:35:37.274Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":70,"level":"high","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-22T09:17:00.796Z","stale":false,"partial":false}}