{"id":"CVE-2026-35172","summary":"Distribution has stale blob access resurrection via repo-scoped redis descriptor cache invalidation","details":"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: 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.","aliases":["GHSA-f2g3-hh2r-cwgc"],"modified":"2026-07-16T03:31:09.320217145Z","published":"2026-04-06T19:08:44.512Z","related":["CGA-5r6m-hcwc-jvhp","SUSE-SU-2026:21560-1","openSUSE-SU-2026:10631-1","openSUSE-SU-2026:20686-1"],"database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-284"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/35xxx/CVE-2026-35172.json"},"references":[{"type":"WEB","url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-35172.json"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2026:23234"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2026:25045"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2026:26529"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2026:26543"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2026:28893"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2026:37387"},{"type":"ADVISORY","url":"https://access.redhat.com/security/cve/CVE-2026-35172"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/35xxx/CVE-2026-35172.json"},{"type":"ADVISORY","url":"https://github.com/distribution/distribution/security/advisories/GHSA-f2g3-hh2r-cwgc"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-35172"},{"type":"REPORT","url":"https://bugzilla.redhat.com/show_bug.cgi?id=2455571"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/distribution/distribution","events":[{"introduced":"0"},{"fixed":"708f8d6b060248fe7192294dd5440320ffc86da0"}],"database_specific":{"cpe":"cpe:2.3:a:distribution:distribution:*:*:*:*:*:*:*:*","extracted_events":[{"introduced":"0"},{"fixed":"3.1.0"}],"source":["AFFECTED_FIELD","CPE_RANGE"]}}],"versions":["v3.0.0","v3.0.0-rc.4","v3.0.0-rc.3","v3.0.0-rc.2","v3.0.0-rc.1","v3.0.0-beta.1","v3.0.0-alpha.1","v2.7.0","v2.7.0-rc.0","v2.6.0-rc.1","docs-v2.4.1-2016-06-28","v2.5.0-rc.1","v2.4.0-rc.1","v2.3.0-rc.2","v2.3.0-rc.0","v2.3.0-rc.1","v2.3.0-alpha","v2.2.1","v2.2.0","v2.1.1","v2.1.0","v2.1.0-rc.0","v2.0.0","v2.0.0-rc.4","v2.0.0-rc.3","v2.0.0-rc.2","v2.0.0-rc.1","v2.0.0-rc.0","v2.0.0-alpha.3","v2.0.0-alpha.2","v2.0.0-alpha.1","v2.0.0-alpha.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-35172.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"}]}