<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Wed, 30 Sep 2026 23:47:02 +0000</lastBuildDate>
    <item>
      <title>GHSA-xf85-363p-868w — oras-go: Malicious registry can hijack Bearer token realm to exfiltrate credentials and refresh tokens</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-xf85-363p-868w</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: oras.land/oras-go/v2, Go: oras.land/oras-go&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;oras-go&amp;#39;s `auth.Client` follows the `realm` URL from a registry&amp;#39;s `WWW-Authenticate: Bearer` challenge without validating its scheme or host. The `realm` field is server-controlled by design in the OCI/distribution spec — registries legitimately point token requests at a separate auth endpoint (e.g. Docker Hub&amp;#39;s `registry-1.docker.io` -&amp;gt; `auth.docker.io`), so cross-host realms on public DNS names are not in themselves a vulnerability. Two specific patterns, however, are never legitimate under any registry trust model and can be abused by a malicious or compromised registry (or a man-in-the-middle on a plaintext connection):&lt;/p&gt;
&lt;p&gt;1. **SSRF to internal networks.** A realm of `http://169.254.169.254/...` (AWS/Azure IMDS), `http://10.0.0.x/...` (RFC 1918), or `http://127.0.0.1/...` causes oras-go running on a cloud VM or corporate workstation to issue outbound HTTP requests from inside the user&amp;#39;s trust boundary to an endpoint the user did not choose. The user&amp;#39;s stored credentials are attached to those requests, but the principal harm is the network primitive — probing internal endpoints from the client. On IMDSv1 the response body is recoverable from log channels; on IMDSv2 the probe itself can still be used for service discovery.&lt;/p&gt;
&lt;p&gt;2. **TLS downgrade.** A registry contacted over `https://` can return a realm with an `http://` scheme, causing oras-go to send the user&amp;#39;s credentials over plaintext to the token endpoint. This defeats the transport security the user chose whe…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: oras.land/oras-go/v2, Go: oras.land/oras-go&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;oras-go&amp;#39;s `auth.Client` follows the `realm` URL from a registry&amp;#39;s `WWW-Authenticate: Bearer` challenge without validating its scheme or host. The `realm` field is server-controlled by design in the OCI/distribution spec — registries legitimately point token requests at a separate auth endpoint (e.g. Docker Hub&amp;#39;s `registry-1.docker.io` -&amp;gt; `auth.docker.io`), so cross-host realms on public DNS names are not in themselves a vulnerability. Two specific patterns, however, are never legitimate under any registry trust model and can be abused by a malicious or compromised registry (or a man-in-the-middle on a plaintext connection):&lt;/p&gt;
&lt;p&gt;1. **SSRF to internal networks.** A realm of `http://169.254.169.254/...` (AWS/Azure IMDS), `http://10.0.0.x/...` (RFC 1918), or `http://127.0.0.1/...` causes oras-go running on a cloud VM or corporate workstation to issue outbound HTTP requests from inside the user&amp;#39;s trust boundary to an endpoint the user did not choose. The user&amp;#39;s stored credentials are attached to those requests, but the principal harm is the network primitive — probing internal endpoints from the client. On IMDSv1 the response body is recoverable from log channels; on IMDSv2 the probe itself can still be used for service discovery.&lt;/p&gt;
&lt;p&gt;2. **TLS downgrade.** A registry contacted over `https://` can return a realm with an `http://` scheme, causing oras-go to send the user&amp;#39;s credentials over plaintext to the token endpoint. This defeats the transport security the user chose whe…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-xf85-363p-868w</guid>
    </item>
  </channel>
</rss>
