GPU VulnDB

Database/Container, Kubernetes & orchestration

BuildKit: image can advertise another image's DiffIDs, poisoning shared build cache

CVSS 7.5CVE-2026-93318Container, Kubernetes & orchestrationcurated

Impact

A malicious image can advertise DiffIDs belonging to a different image while shipping different layer contents, and BuildKit derived cache and snapshot identity from the advertised DiffIDs without checking them against the actual layers. On a BuildKit daemon with shared or persistent cache - the normal setup for a build farm or a CI runner pool - processing the malicious image first means a later build of a victim image mounts attacker-controlled layer content as its base. Replacing something routinely executed such as /bin/sh gets the attacker's code running inside the victim build, where it can read mounted build secrets, reach other build resources, tamper with output artifacts, or hang the build. For a GPU fleet this is a supply-chain foothold in the images that later run on the nodes, and registry credentials or model-pull tokens mounted as build secrets are in reach. Both regular and lazy-pulling snapshotters such as stargz are affected.

Who can reach it

Anyone who can get a BuildKit daemon with shared or persistent cache to process an image they control - a build job, a PR pipeline, or a tenant-submitted Dockerfile. No privileges on the host are needed.

What to do

Upgrade BuildKit to v0.33.1 and restart buildkitd. Because the flaw corrupts cache identity, purge the shared or persistent build cache after upgrading rather than trusting existing entries, and stop reusing a single cache across trust boundaries.

References

Related entries

All Container, Kubernetes & orchestration entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.