Distribution Repository-Scoped Authorization Bypass Vulnerability Allowing Stale Blob Access Restoration
Vulnerability
A vulnerability exists in the Distribution toolkit, specifically in versions through 3.0.x and 2.8.x when the Redis blob descriptor cache and deletion are both enabled. This issue allows for an authorization bypass at the repository level, where deleted blob links can be restored and accessed again, violating confidentiality expectations. The problem arises because the deletion process clears the shared digest descriptor but fails to remove the associated repository-scoped membership in Redis. As a result, a later request from a peer repository can repopulate the shared descriptor, making the deleted blob accessible once more.
Impact
Exploitation of this vulnerability leads to a repository-local confidentiality failure, where deleted blobs can be accessed again through stale Redis membership, breaking the expectation that deletion from one repository prevents further reads from it.
Reproduction
The vulnerability can be reproduced by running Distribution with the Redis blob descriptor cache enabled and deletion features turned on. After deleting a blob from one repository, access to the same blob can be restored by refreshing the cache from a peer repository that still references it, thereby bypassing the deletion.
Remediation
Users are advised to update to Distribution version 3.1.0 or later, where this vulnerability has been fixed.
Vulnerability Rating
Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.
