Answer in brief
CVE-2026-50151 records a High severity (CVSS 7.5) vulnerability in oras-go blob upload vulnerable to credential forwarding via unvalidated Location header. The current sources do not mark it as known exploited. The current feed maps oras.land/oras-go/v2 (go), oras.land/oras-go/v2 (go). Check affected ranges and fixed versions before updating.
Analysis pending evidence review
HOL Guard separates source facts from reviewed analysis. See the methodology.
CVSS is 7.5. The current sources do not mark it as known exploited. Treat this as a source-backed prioritization signal, not a statement about your environment.
Analysis status
Analysis pending evidence review
Factual feed record only; HOL analysis is not approved for indexing. Read the methodology.
The current feed maps oras.land/oras-go/v2 (go), oras.land/oras-go/v2 (go). Check affected ranges and fixed versions before updating.
| Product | Affected versions | Fixed versions |
|---|---|---|
| cpe:2.3:a:linuxfoundation:oras:*:*:*:*:*:go:*:* | Not reported | Not reported |
| Package | Affected range | Fixed version |
|---|---|---|
| oras.land/oras-go/v2go | <2.6.1 | 2.6.1 |
| oras.land/oras-go/v2go | >=0 <2.6.1 | 2.6.1 |
Published upstream
Jul 1, 2026
Evidence: source:nvd:source_dates:source-dates:recordSource modified
Sep 10, 2026
Evidence: source:nvd:source_dates:source-dates:recordFirst seen by HOL
Jul 1, 2026
## Summary oras-go follows a registry-controlled `Location` header during the monolithic blob upload flow and reuses the `Authorization` header from the initial `POST` request for the subsequent `PUT` request. If a malicious registry returns a cross-host `Location`, oras-go can send the caller's credentials to an attacker-controlled endpoint. ## Affected Versions tested: v2.6.0 (commit 03243809936cce826494b5506f724c6dc11115b1, as-of 2026-01-24) range: unknown; likely affects earlier v2.x releases that include the same upload flow ## Impact Credential leak to an attacker-controlled endpoint and client-side ssrf to a cross-host target. ## Affected Component - `registry/remote/repository.go:878-916` (`blobStore.completePushAfterInitialPost`) ## Reproduction Attachments include `poc.zip` with a local-only harness (no real registry required). It runs a fake registry server that returns a cross-host `Location` and a second server that records whether it received `Authorization`. ```bash unzip -q -o poc.zip -d /tmp/poc cd /tmp/poc/poc-F-ORAS-LOCATION-UPLOAD-001 make canonical make control ``` ## Recommended Fix - validate `Location` before uploading (scheme + hostname + effective port) against the original request, or require an explicit opt-in allowlist for cross-host upload urls - never forward `Authorization` when the upload target changes host or scheme ## references - security policy: https://github.com/oras-project/oras-go/security/policy - vulnerable code: `registry/remote/repository.go` (see `blobStore.completePushAfterInitialPost`)
Quoted source text, attributed separately from HOL analysis.