First published: Wed Apr 26 2023(Updated: )
### Impact Systems that run `distribution` built after a specific commit running on memory-restricted environments can suffer from denial of service by a crafted malicious `/v2/_catalog` API endpoint request. ### Patches Upgrade to at least 2.8.2-beta.1 if you are running `v2.8.x` release. If you use the code from the main branch, update at least to the commit after [f55a6552b006a381d9167e328808565dd2bf77dc](https://github.com/distribution/distribution/commit/f55a6552b006a381d9167e328808565dd2bf77dc). ### Workarounds There is no way to work around this issue without patching. Restrict access to the affected API endpoint: see the recommendations section. ### References `/v2/_catalog` endpoint accepts a parameter to control the maximum amount of records returned (query string: `n`). When not given the default `n=100` is used. The server trusts that `n` has an acceptable value, however when using a maliciously large value, it allocates an array/slice of `n` of strings before filling the slice with data. This behaviour was introduced ~7yrs ago [1]. ### Recommendation The `/v2/_catalog` endpoint was designed specifically to do registry syncs with search or other API systems. Such an endpoint would create a lot of load on the backend system, due to overfetch required to serve a request in certain implementations. Because of this, we strongly recommend keeping this API endpoint behind heightened privilege and avoiding leaving it exposed to the internet. ### For more information If you have any questions or comments about this advisory: * Open an issue in [distribution repository](https://github.com/distribution/distribution) * Email us at [cncf-distribution-security@lists.cncf.io](mailto:cncf-distribution-security@lists.cncf.io) [1] [faulty commit](https://github.com/distribution/distribution/blob/b7e26bac741c76cb792f8e14c41a2163b5dae8df/registry/handlers/catalog.go#L45)
Credit: secalert@redhat.com secalert@redhat.com
Affected Software | Affected Version | How to fix |
---|---|---|
go/github.com/docker/distribution | <2.8.2-beta.1 | 2.8.2-beta.1 |
debian/docker-registry | <=2.6.2~ds1-2 | 2.6.2~ds1-2+deb10u1 2.7.1+ds2-7+deb11u1 2.8.2+ds1-1 |
ubuntu/docker-registry | <2.8.2+ | 2.8.2+ |
ubuntu/docker-registry | <2.8.0+ | 2.8.0+ |
ubuntu/docker-registry | <2.8.1+ | 2.8.1+ |
ubuntu/docker-registry | <2.6.2~ | 2.6.2~ |
ubuntu/docker-registry | <2.3.0~ | 2.3.0~ |
ubuntu/docker-registry | <2.7.1+ | 2.7.1+ |
redhat/distribution | <2.8.2 | 2.8.2 |
Redhat Openshift Api For Data Protection | ||
Redhat Openshift Container Platform | =4.0 | |
Redhat Openshift Developer Tools And Services | ||
IBM Cloud Pak for Business Automation | <=V23.0.1 - V23.0.1-IF002 | |
IBM Cloud Pak for Business Automation | <=V21.0.3 - V21.0.3-IF024 | |
IBM Cloud Pak for Business Automation | <=V22.0.2 - V22.0.2-IF006 and later fixesV22.0.1 - V22.0.1-IF006 and later fixesV21.0.2 - V21.0.2-IF012 and later fixesV21.0.1 - V21.0.1-IF007 and later fixesV20.0.1 - V20.0.3 and later fixesV19.0.1 - V19.0.3 and later fixesV18.0.0 - V18.0.2 and later fixes |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
CVE-2023-2253 is a vulnerability in the distribution/distribution software that allows a malicious user to cause a denial of service through improper input validation.
CVE-2023-2253 has a severity rating of 7.5, which is considered high.
CVE-2023-2253 works by accepting an unreasonably large value for the 'n' parameter in the '/v2/_catalog' endpoint, leading to the allocation of a massive amount of memory and causing a denial of service.
Yes, the vulnerability can be fixed by updating to version 2.8.2 or higher of the docker-registry package.
More information about CVE-2023-2253 can be found at the following references: [CVE-2023-2253](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-2253), [GitHub Commit](https://github.com/distribution/distribution/commit/521ea3d973cb0c7089ebbcdd4ccadc34be941f54), [Openwall Security Mailing List](https://www.openwall.com/lists/oss-security/2023/05/09/1).