CVE-2026-55588: ORAS CLI: Cyclic Referrer Graph Can Cause Unbounded Recursion and Resource Consumption
ORAS (OCI Registry As Storage) is a CLI and library for managing artifacts in OCI registries. In ORAS CLI versions up to and including 1.3.2, the recursive referrer traversal does not track visited descriptors, so a malicious OCI registry that returns a cyclic referrer graph causes unbounded recursion and memory growth. This affects oras discover, whose recursive traversal is enabled by default because the --depth option defaults to 0 (unlimited), as well as the recursive referrer counting used by the oras backup and oras restore workflows. A cyclic graph can be as simple as A referring to B and B referring back to A. A malicious registry can use this to cause a client-side denial of service, exhausting CPU and memory and hanging automation or CI/CD pipelines that run ORAS against untrusted registry metadata. The vulnerability does not extend to code execution, artifact substitution, or integrity bypass. This issue has been fixed in version 1.3.3.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.3.3
Event History
Frequently Asked Questions
Which ORAS operations are exposed to this issue?
The default recursive traversal in oras discover is affected because --depth defaults to 0, meaning unlimited traversal. The recursive referrer counting performed by oras backup and oras restore is also affected.
What must an attacker control to trigger the denial of service?
An attacker needs to operate or control a registry that returns malicious OCI referrer metadata containing a cycle, such as two descriptors that refer to each other. No credentials or other privileges on the client are required, but a user or automation must run an affected ORAS workflow against that registry.
What is the practical impact on affected clients?
The client can recurse indefinitely while memory and CPU consumption grow, potentially hanging automation or CI/CD pipelines and exhausting local resources. The described impact is denial of service only; it does not enable code execution, artifact substitution, or an integrity bypass.
What should teams do if they cannot immediately upgrade?
Avoid running recursive ORAS discovery, backup, or restore workflows against untrusted registry metadata where possible. For oras discover, set a finite --depth value rather than relying on the default unlimited traversal.
How can this issue be remediated?
Upgrade ORAS CLI to version 1.3.3, which fixes the missing tracking of previously visited descriptors during recursive referrer traversal.