{"id":"CVE-2026-35172","title":"Distribution is a toolkit to pack, ship, store, and deliver container content","summary":"Distribution is a toolkit to pack, ship, store, and deliver container content. Prior to 3.1.0, distribution can restore read access in repo a after an explicit delete when storage.cache.blobdescriptor: redis and storage.delete.enabled: t…","severity":"high","cvss":7.5,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","cwe":["CWE-284","CWE-524"],"vendor":"distribution","product":"distribution","affected":["distribution < 3.1.0"],"patched":["distribution 3.1.0"],"published":"2026-04-06","updated":"2026-09-09","sourceUpdated":"2026-09-09T13:19:39.007","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-35172","references":[{"url":"https://github.com/distribution/distribution/security/advisories/GHSA-f2g3-hh2r-cwgc","label":"security-advisories@github.com"},{"url":"https://access.redhat.com/errata/RHSA-2026:23234","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://access.redhat.com/errata/RHSA-2026:25045","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://access.redhat.com/errata/RHSA-2026:26529","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://access.redhat.com/errata/RHSA-2026:26543","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://access.redhat.com/errata/RHSA-2026:28893","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://access.redhat.com/errata/RHSA-2026:37387","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://access.redhat.com/security/cve/CVE-2026-35172","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2455571","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-35172.json","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-35172"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-35172"}],"tags":["nvd","cve.org","exploit-available","csaf","vex","red-hat"],"exploitAvailable":true,"ssvc":{"exploitation":"poc","automatable":"yes","technicalImpact":"partial","timestamp":"2026-04-07T14:45:08.558570Z"},"epss":0.00455,"epssPercentile":0.38711,"ingestedAt":"2026-07-02T12:34:40.479Z","slug":"CVE-2026-35172","body":"## Overview\n\nDistribution is a toolkit to pack, ship, store, and deliver container content. Prior to 3.1.0, distribution can restore read access in repo a after an explicit delete when storage.cache.blobdescriptor: redis and storage.delete.enabled: true are both enabled. The delete path clears the shared digest descriptor but leaves stale repo-scoped membership behind, so a later Stat or Get from repo b repopulates the shared descriptor and makes the deleted blob readable from repo a again. This vulnerability is fixed in 3.1.0.\n\n## Affected\n\n- `distribution < 3.1.0`\n\n## Remediation\n\nUpgrade past the affected range:\n\n- `distribution 3.1.0`\n\n## Vendor advisories\n\n- **RHSA-2026:26529** · Red Hat · fixed in: Red Hat OpenShift Container Platform 4.12 · released 2026-06-25 · [advisory](https://access.redhat.com/errata/RHSA-2026:26529)\n- **RHSA-2026:26543** · Red Hat · fixed in: Red Hat OpenShift Container Platform 4.13 · released 2026-06-25 · [advisory](https://access.redhat.com/errata/RHSA-2026:26543)\n- **RHSA-2026:28893** · Red Hat · fixed in: Red Hat OpenShift Container Platform 4.14 · released 2026-07-01 · [advisory](https://access.redhat.com/errata/RHSA-2026:28893)\n- **RHSA-2026:23234** · Red Hat · fixed in: Red Hat OpenShift Container Platform 4.15 · released 2026-06-11 · [advisory](https://access.redhat.com/errata/RHSA-2026:23234)\n- **RHSA-2026:25045** · Red Hat · fixed in: Red Hat OpenShift Container Platform 4.16 · released 2026-06-17 · [advisory](https://access.redhat.com/errata/RHSA-2026:25045)\n- **RHSA-2026:37387** · Red Hat · fixed in: Red Hat Openshift Data Foundation 4.22 · released 2026-07-09 · [advisory](https://access.redhat.com/errata/RHSA-2026:37387)\n- **Red Hat VEX** · Important · affected: Multicluster Engine for Kubernetes, Red Hat OpenShift Container Platform 4 · no fix planned: Multicluster Engine for Kubernetes, Red Hat OpenShift Container Platform 4 · updated 2026-09-21 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-35172.json)","depth":"midnight","depthScore":53,"depthScoreParts":{"impact":41.3,"likelihood":0.1,"exploitation":12,"ransomware":0},"changes":[{"seq":201613,"id":"CVE-2026-35172","ts":1789399547668,"field":"exploit_available","old":"false","new":"true"},{"seq":200345,"id":"CVE-2026-35172","ts":1789397135020,"field":"exploit_available","old":"true","new":"false"},{"seq":198269,"id":"CVE-2026-35172","ts":1789391778244,"field":"exploit_available","old":"false","new":"true"},{"seq":196062,"id":"CVE-2026-35172","ts":1789383424513,"field":"exploit_available","old":"true","new":"false"},{"seq":194991,"id":"CVE-2026-35172","ts":1789380330204,"field":"exploit_available","old":"false","new":"true"},{"seq":193778,"id":"CVE-2026-35172","ts":1789378290136,"field":"exploit_available","old":"true","new":"false"},{"seq":192565,"id":"CVE-2026-35172","ts":1789376271277,"field":"exploit_available","old":"false","new":"true"},{"seq":191352,"id":"CVE-2026-35172","ts":1789373157455,"field":"exploit_available","old":"true","new":"false"},{"seq":190137,"id":"CVE-2026-35172","ts":1789369143600,"field":"exploit_available","old":"false","new":"true"},{"seq":188924,"id":"CVE-2026-35172","ts":1789368058362,"field":"exploit_available","old":"true","new":"false"},{"seq":187707,"id":"CVE-2026-35172","ts":1789365018144,"field":"exploit_available","old":"false","new":"true"},{"seq":186494,"id":"CVE-2026-35172","ts":1789363032936,"field":"exploit_available","old":"true","new":"false"},{"seq":185280,"id":"CVE-2026-35172","ts":1789360976136,"field":"exploit_available","old":"false","new":"true"},{"seq":184067,"id":"CVE-2026-35172","ts":1789357961291,"field":"exploit_available","old":"true","new":"false"},{"seq":182319,"id":"CVE-2026-35172","ts":1789354116600,"field":"exploit_available","old":"false","new":"true"},{"seq":181112,"id":"CVE-2026-35172","ts":1789352972787,"field":"exploit_available","old":"true","new":"false"},{"seq":179905,"id":"CVE-2026-35172","ts":1789350026429,"field":"exploit_available","old":"false","new":"true"},{"seq":178698,"id":"CVE-2026-35172","ts":1789347866893,"field":"exploit_available","old":"true","new":"false"},{"seq":177491,"id":"CVE-2026-35172","ts":1789346198051,"field":"exploit_available","old":"false","new":"true"},{"seq":176284,"id":"CVE-2026-35172","ts":1789342774982,"field":"exploit_available","old":"true","new":"false"},{"seq":175738,"id":"CVE-2026-35172","ts":1789338581507,"field":"exploit_available","old":"false","new":"true"},{"seq":175608,"id":"CVE-2026-35172","ts":1789338399762,"field":"exploit_available","old":"true","new":"false"},{"seq":174403,"id":"CVE-2026-35172","ts":1789334611058,"field":"exploit_available","old":"false","new":"true"},{"seq":173198,"id":"CVE-2026-35172","ts":1789333261594,"field":"exploit_available","old":"true","new":"false"},{"seq":172012,"id":"CVE-2026-35172","ts":1789330909939,"field":"exploit_available","old":"false","new":"true"},{"seq":170826,"id":"CVE-2026-35172","ts":1789328416106,"field":"exploit_available","old":"true","new":"false"},{"seq":169621,"id":"CVE-2026-35172","ts":1789326931804,"field":"exploit_available","old":"false","new":"true"},{"seq":168416,"id":"CVE-2026-35172","ts":1789323470699,"field":"exploit_available","old":"true","new":"false"},{"seq":167211,"id":"CVE-2026-35172","ts":1789319392652,"field":"exploit_available","old":"false","new":"true"},{"seq":166006,"id":"CVE-2026-35172","ts":1789318323602,"field":"exploit_available","old":"true","new":"false"},{"seq":164801,"id":"CVE-2026-35172","ts":1789315562682,"field":"exploit_available","old":"false","new":"true"},{"seq":163596,"id":"CVE-2026-35172","ts":1789313284408,"field":"exploit_available","old":"true","new":"false"},{"seq":162391,"id":"CVE-2026-35172","ts":1789311730040,"field":"exploit_available","old":"false","new":"true"},{"seq":161186,"id":"CVE-2026-35172","ts":1789308294761,"field":"exploit_available","old":"true","new":"false"},{"seq":160691,"id":"CVE-2026-35172","ts":1789304230751,"field":"exploit_available","old":"false","new":"true"},{"seq":158529,"id":"CVE-2026-35172","ts":1789299311182,"field":"exploit_available","old":"true","new":"false"},{"seq":157493,"id":"CVE-2026-35172","ts":1789296476399,"field":"exploit_available","old":"false","new":"true"},{"seq":156288,"id":"CVE-2026-35172","ts":1789294412095,"field":"exploit_available","old":"true","new":"false"},{"seq":155083,"id":"CVE-2026-35172","ts":1789292660080,"field":"exploit_available","old":"false","new":"true"},{"seq":153878,"id":"CVE-2026-35172","ts":1789289379251,"field":"exploit_available","old":"true","new":"false"},{"seq":153090,"id":"CVE-2026-35172","ts":1789285289214,"field":"exploit_available","old":"false","new":"true"},{"seq":148024,"id":"CVE-2026-35172","ts":1789270895205,"field":"exploit_available","old":"true","new":"false"},{"seq":146064,"id":"CVE-2026-35172","ts":1789269189260,"field":"exploit_available","old":"false","new":"true"},{"seq":144967,"id":"CVE-2026-35172","ts":1789266135483,"field":"exploit_available","old":"true","new":"false"},{"seq":143871,"id":"CVE-2026-35172","ts":1789262459119,"field":"exploit_available","old":"false","new":"true"},{"seq":142707,"id":"CVE-2026-35172","ts":1789261214800,"field":"exploit_available","old":"true","new":"false"},{"seq":141543,"id":"CVE-2026-35172","ts":1789258629177,"field":"exploit_available","old":"false","new":"true"},{"seq":140345,"id":"CVE-2026-35172","ts":1789256434803,"field":"exploit_available","old":"true","new":"false"},{"seq":139147,"id":"CVE-2026-35172","ts":1789254609011,"field":"exploit_available","old":"false","new":"true"},{"seq":137949,"id":"CVE-2026-35172","ts":1789251602221,"field":"exploit_available","old":"true","new":"false"}]}