Executive brief
ORAS-Go is a Go library for interacting with OCI registries (container image repositories). The library's pagination handler accepts arbitrary URLs from HTTP Link headers without validation, allowing a malicious registry to redirect clients to internal network endpoints. An attacker can probe internal services, cloud metadata endpoints, or trigger side effects on services inside the victim's network.
Technical details
The vulnerability is a blind Server-Side Request Forgery (SSRF) in the `parseLink()` function in registry/remote/utils.go. This function parses the HTTP Link header for pagination without validating the URL's host or scheme, allowing absolute URLs pointing to arbitrary hosts. During pagination of Tags, Referrers, or Repositories operations, the client automatically makes GET requests to attacker-controlled URLs within the victim's network context. No preconditions exist beyond calling a pagination-based listing operation against a malicious or compromised registry; the client requires no special configuration. An attacker gains the ability to conduct blind SSRF attacks from the victim's network, potentially accessing cloud metadata endpoints, internal services, or triggering service-side effects. The fix requires host and scheme validation in parseLink() before subsequent HTTP requests are issued.
Affected products
- ORAS Project ORAS-Go <unknown
Timeline
- 2026-09-17: disclosed