{"id":"CVE-2026-85732","kind":"vulnerability","aliases":["CVE-2026-85732","GHSA-h7vf-4x9w-h99v","GO-2026-6497"],"related":[],"title":"Blind SSRF via unvalidated Link header URL in pagination allows internal network probing in oras.land/oras-go","description":"oras-go is a Go library for managing OCI artifacts. Prior to 2.6.2, the parseLink function in registry/remote/utils.go accepts an absolute URL from a registry-controlled Link response header without validating its scheme, host, or port. Tags, Referrers, and Repositories pagination operations then issue a GET request to the attacker-selected URL from the victim's network, allowing blind server-side request forgery against internal services. The response body is not returned to the attacker, but timing and error differences can reveal service reachability, and credentials may be attached when the credential store has an entry for the target host. Exploitation requires a victim to perform a pagination-based listing operation against a malicious registry. The maintainer identifies this report as a duplicate of GHSA-3hr5-mjrr-hfjh and states that remediation is consolidated in that earlier advisory. The consolidated issue is fixed in version 2.6.2.","summary":"oras-go, a Go library for OCI artifacts, accepts an absolute URL from a registry's Link response header during tag, referrer and repository pagination without checking it. A malicious registry can therefore make the victim's client send GET requests to internal hosts, which reveals which internal services are reachable and may send stored registry credentials to those hosts.","severity":"medium","cvss":4.7,"epss":0.00384,"exploited":false,"exploited_at":null,"products":[{"name":"oras.land/oras-go/v2","fixed":["2.6.2"],"affected":"< 2.6.2","ecosystem":"go"}],"ecosystems":["go"],"tags":["go","oci-registries","oras-go","package","self-hosted"],"not_affected_if":["no-pagination-against-untrusted-registries","version-2.6.2-or-later"],"how_to_check":"go list -m oras.land/oras-go/v2\ngrep oras.land/oras-go go.mod\nIf the version is below 2.6.2, the module is affected.","fix":"Upgrade oras.land/oras-go/v2 to 2.6.2 or later, then run go get oras.land/oras-go/v2@v2.6.2 and go mod tidy.\nSee GHSA-3hr5-mjrr-hfjh, which the maintainer names as the consolidated advisory.","status":"open","published_at":"2026-09-16T17:18:16+00:00","first_seen_at":"2026-10-23T19:13:08+00:00","triaged_at":"2026-10-23T21:49:09+00:00","updated_at":"2026-10-23T21:49:09+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-23T21:49:09Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade oras.land/oras-go/v2 to 2.6.2 or later, then run go get oras.land/oras-go/v2@v2.6.2 and go mod tidy.\nSee GHSA-3hr5-mjrr-hfjh, which the maintainer names as the consolidated advisory.","reach":"internet","impact":"medium","summary":"oras-go, a Go library for OCI artifacts, accepts an absolute URL from a registry's Link response header during tag, referrer and repository pagination without checking it. A malicious registry can therefore make the victim's client send GET requests to internal hosts, which reveals which internal services are reachable and may send stored registry credentials to those hosts.","category":"package","who_cares":["go","oras-go","oci-registries","self-hosted"],"confidence":0.8,"needs_auth":"no","worst_case":"Attacker probes internal services and may trigger credential-attached requests to internal hosts.","analyst_note":"","how_to_check":"go list -m oras.land/oras-go/v2\ngrep oras.land/oras-go go.mod\nIf the version is below 2.6.2, the module is affected.","needs_analyst":false,"not_affected_if":["version-2.6.2-or-later","no-pagination-against-untrusted-registries"],"user_interaction":"yes","needs_special_setup":"no","severity_if_unknown":"medium"},"cost_usd":0.000815,"input_tokens":3122,"output_tokens":1005,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':19A,27A,30A '-6497':28A '-85732':20A,31A '/oras-go':17A '/oras-go/v2':34A '2.6.2':120C,258C '3hr5':238C '4x9w':24A 'absolut':57B,128C 'accept':55B,126C 'advisori':250C 'allow':10A,167C 'artifact':54B,117C 'attach':199C 'attack':159C,185C 'attacker-select':158C 'base':220C 'blind':1A,168C 'bodi':179C 'check':73B 'client':84B 'consolid':246C,252C 'control':134C 'credenti':103B,196C,202C 'cve':18A,29A 'differ':190C 'duplic':234C 'earlier':249C 'entri':206C 'error':189C 'exploit':211C 'fix':255C 'forgeri':173C 'function':123C 'get':86B,154C 'ghsa':22A,237C 'ghsa-3hr5-mjrr-hfjh':236C 'ghsa-h7vf-4x9w-h99v':21A 'go':26A,35B,41B,48B,50B,109C,112C 'h7vf':23A 'h99v':25A 'header':6A,65B,137C 'hfjh':240C 'host':45B,90B,106B,142C,210C 'identifi':229C 'intern':11A,89B,94B,175C 'issu':152C,253C 'librari':51B,113C 'link':5A,63B,135C 'list':221C 'maintain':228C 'make':80B 'malici':76B,225C 'manag':115C 'may':99B,197C 'mjrr':239C 'network':12A,166C 'oci':37B,53B,116C 'oci-registri':36B 'oper':150C,222C 'ora':40B,47B,108C 'oras-go':39B,46B,107C 'oras.land':16A,33A 'oras.land/oras-go':15A 'oras.land/oras-go/v2':32A 'packag':42B 'pagin':9A,71B,149C,219C 'pagination-bas':218C 'parselink':122C 'perform':216C 'port':144C 'prior':118C 'probe':13A 'reachabl':97B,194C 'referr':68B,146C 'registri':38B,61B,77B,102B,133C,226C 'registry-control':132C 'registry/remote/utils.go':125C 'remedi':244C 'report':231C 'repositori':70B,148C 'request':87B,155C,172C 'requir':212C 'respons':64B,136C,178C 'return':182C 'reveal':92B,192C 'scheme':141C 'select':160C 'self':44B 'self-host':43B 'send':85B,100B 'server':170C 'server-sid':169C 'servic':95B,176C,193C 'side':171C 'ssrf':2A 'state':242C 'store':101B,203C 'tag':67B,145C 'target':209C 'therefor':79B 'time':187C 'unvalid':4A 'url':7A,58B,129C,161C 'valid':139C 'version':257C 'via':3A 'victim':82B,164C,214C 'without':72B,138C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-09-16T17:18:16+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:N/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"govuln","external_id":"GO-2026-6497","url":"https://pkg.go.dev/vuln/GO-2026-6497","severity":null,"published_at":"2026-10-01T20:23:47+00:00","modified_at":"2026-10-01T20:23:47+00:00","first_seen_at":"2026-10-23T19:13:08+00:00","fetched_at":"2026-10-23T19:13:08+00:00","note":null},{"source":"epss","external_id":"CVE-2026-85732","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-85732","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-23T19:13:43+00:00","fetched_at":"2026-10-23T19:13:43+00:00","note":null},{"source":"nvd","external_id":"CVE-2026-85732","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-85732","severity":null,"published_at":"2026-09-16T17:18:16+00:00","modified_at":"2026-09-16T18:17:18+00:00","first_seen_at":"2026-10-23T19:35:23+00:00","fetched_at":"2026-10-23T19:35:23+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}