Build Cache Poisoning via Untrusted Pull Requests
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- No fix listed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-829.
Summary
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. The 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). This 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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Niklas Portmann | Azure Based Remote Cache Plugin for Nx | all versions | — | No fix listed | CNA |
| Niklas Portmann | Minio Based Remote Cache Plugin for Nx | all versions | — | No fix listed | CNA |
| Niklas Portmann | Nx Remote Cache Utilities | all versions | — | No fix listed | CNA |
| Nx | AWS S3 Remote Cache Plugin for Nx | all versions | — | No fix listed | CNA |
| Nx | GCS Remote Cache Plugin for Nx | all versions | — | No fix listed | CNA |
| Nx | Azure Blob Remote Cache Plugin for Nx | all versions | — | No fix listed | CNA |
| Nx | Shared File System Cache Plugin for Nx | all versions | — | No fix listed | CNA |
| — | @nx/azure-cache (npm) | up to 4.0.0 | — | No fix listed | GHSA-rrr2-jcr8-7q3x |
- Azure Based Remote Cache Plugin for Nx VendorNiklas Portmann Affected all versions Fixed in — No fix listed CNA
- Minio Based Remote Cache Plugin for Nx VendorNiklas Portmann Affected all versions Fixed in — No fix listed CNA
- Nx Remote Cache Utilities VendorNiklas Portmann Affected all versions Fixed in — No fix listed CNA
- AWS S3 Remote Cache Plugin for Nx VendorNx Affected all versions Fixed in — No fix listed CNA
- GCS Remote Cache Plugin for Nx VendorNx Affected all versions Fixed in — No fix listed CNA
- Azure Blob Remote Cache Plugin for Nx VendorNx Affected all versions Fixed in — No fix listed CNA
- Shared File System Cache Plugin for Nx VendorNx Affected all versions Fixed in — No fix listed CNA
- @nx/azure-cache (npm) Vendor— Affected up to 4.0.0 Fixed in — No fix listed GHSA-rrr2-jcr8-7q3x
CPE names CNA · 7
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:niklas_portmann:nx-remotecache-azure:0:*:*:*:*:*:*:* | 0 | — | Niklas Portmann |
| cpe:2.3:a:niklas_portmann:nx-remotecache-minio:0:*:*:*:*:*:*:* | 0 | — | Niklas Portmann |
| cpe:2.3:a:niklas_portmann:nx-remotecache-custom:0:*:*:*:*:*:*:* | 0 | — | Niklas Portmann |
| cpe:2.3:a:nx:s3-cache:0:*:*:*:*:*:*:* | 0 | — | Nx |
| cpe:2.3:a:nx:gcs-cache:0:*:*:*:*:*:*:* | 0 | — | Nx |
| cpe:2.3:a:nx:azure-cache:0:*:*:*:*:*:*:* | 0 | — | Nx |
| cpe:2.3:a:nx:shared-fs-cache:0:*:*:*:*:*:*:* | 0 | — | Nx |
- cpe:2.3:a:niklas_portmann:nx-remotecache-azure:0:*:*:*:*:*:*:* Versions 0 — ·Niklas Portmann
- cpe:2.3:a:niklas_portmann:nx-remotecache-minio:0:*:*:*:*:*:*:* Versions 0 — ·Niklas Portmann
- cpe:2.3:a:niklas_portmann:nx-remotecache-custom:0:*:*:*:*:*:*:* Versions 0 — ·Niklas Portmann
- cpe:2.3:a:nx:s3-cache:0:*:*:*:*:*:*:* Versions 0 — ·Nx
- cpe:2.3:a:nx:gcs-cache:0:*:*:*:*:*:*:* Versions 0 — ·Nx
- cpe:2.3:a:nx:azure-cache:0:*:*:*:*:*:*:* Versions 0 — ·Nx
- cpe:2.3:a:nx:shared-fs-cache:0:*:*:*:*:*:*:* Versions 0 — ·Nx
Remediation
No fixed version listed by the sources yet.
Timeline
- 2026-10-02 Threatist record created from CVE-2025-36852
- 2026-10-03 Alias added: GHSA-rrr2-jcr8-7q3x
References
Sources
- CVE-2025-36852 · CVE Program
- CVE-2025-36852 · NVD
- FIRST EPSS
- GHSA-rrr2-jcr8-7q3x · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences