<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Actions/Attest-Sbom - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/actions/attest-sbom/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Tue, 21 Jul 2026 19:35:10 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/actions/attest-sbom/feed.xml" rel="self" type="application/rss+xml"/><item><title>Sigstore/OCI Credential Confusion Vulnerability (CVE-2026-59891)</title><link>https://feed.craftedsignal.io/briefs/2026-07-sigstore-oci-credential-confusion/</link><pubDate>Tue, 21 Jul 2026 19:35:10 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-sigstore-oci-credential-confusion/</guid><description>A critical credential exposure vulnerability (CVE-2026-59891) exists in `@sigstore/oci` versions prior to 0.7.1. The `getRegistryCredentials()` function, used to read credentials from `~/.docker/config.json`, employs a substring match instead of an exact host match when selecting credentials. This flaw allows credentials for a legitimate registry (e.g., `ghcr.io`) to be inadvertently transmitted to an attacker-controlled registry if its hostname is a substring of the legitimate one (e.g., `cr.io`). This impacts consumers of `@sigstore/oci` and related GitHub Actions (`actions/attest`, `actions/attest-build-provenance`, `actions/attest-sbom`) when pushing artifacts to untrusted or attacker-influenced destination registries, potentially leading to the leakage of long-lived registry tokens. The vulnerability is fixed in `@sigstore/oci@0.7.1` by enforcing exact host matching.</description><content:encoded><![CDATA[<p>A critical credential exposure vulnerability, tracked as CVE-2026-59891, has been identified in <code>@sigstore/oci</code> versions <code>&lt;= 0.7.0</code>. This flaw resides within the <code>getRegistryCredentials()</code> function, which is responsible for retrieving OCI registry authentication tokens from the Docker configuration file (<code>~/.docker/config.json</code>). The vulnerability stems from an insecure credential selection mechanism that uses a substring match instead of a precise host match. This means that credentials configured for a legitimate registry (e.g., <code>ghcr.io</code>) could be mistakenly associated with, and subsequently transmitted to, an attacker-controlled registry if its hostname is a substring of the legitimate one (e.g., <code>cr.io</code>). This impacts any application using <code>@sigstore/oci</code> to upload artifacts, including <code>@actions/attest</code> and the <code>actions/attest</code>, <code>actions/attest-build-provenance</code>, and <code>actions/attest-sbom</code> GitHub Actions, particularly when the destination registry or image reference (<code>subject-name</code> input) can be influenced by untrusted sources. This could lead to the leakage of long-lived registry tokens to malicious actors. The vulnerability was patched in <code>@sigstore/oci@0.7.1</code>, which implements exact host matching.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker identifies a target system utilizing <code>@sigstore/oci</code> (or GitHub Actions like <code>actions/attest</code>) for pushing artifacts to OCI registries.</li>
<li>The attacker researches or infers that the target system has configured credentials for a legitimate OCI registry (e.g., <code>ghcr.io</code>) stored in its <code>~/.docker/config.json</code>.</li>
<li>The attacker registers or gains control over a malicious OCI registry with a hostname that is a substring of the legitimate registry's hostname (e.g., <code>cr.io</code> for <code>ghcr.io</code>).</li>
<li>The attacker influences the target system to push artifacts to the attacker-controlled registry by manipulating the destination registry or image reference. In the context of GitHub Actions, this might involve influencing the <code>subject-name</code> input when <code>push-to-registry: true</code>.</li>
<li>During the artifact push operation, the <code>@sigstore/oci</code> library calls <code>getRegistryCredentials()</code> to retrieve authentication.</li>
<li>Due to the substring matching logic, <code>getRegistryCredentials()</code> incorrectly selects the credentials intended for <code>ghcr.io</code> (because <code>cr.io</code> is a substring).</li>
<li>The <code>@sigstore/oci</code> library then transmits these long-lived registry credentials to the attacker-controlled registry (<code>cr.io</code>).</li>
<li>The attacker captures the stolen registry credentials, gaining unauthorized access to the legitimate registry.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>The primary impact of CVE-2026-59891 is the potential exposure of sensitive, long-lived OCI registry credentials. Any consumer of <code>@sigstore/oci</code> or related GitHub Actions (such as <code>actions/attest</code>, <code>actions/attest-build-provenance</code>, and <code>actions/attest-sbom</code>) that pushes artifacts using credentials from a Docker configuration file is susceptible. While no specific victim count is provided, the theoretical worst-case scenario involves the theft of valuable authentication tokens, granting attackers unauthorized access to artifact repositories, enabling supply chain attacks, or facilitating further lateral movement. Exploitation requires specific conditions: credentials in the Docker config, untrusted influence over the destination registry, and an attacker-controlled registry with a substring hostname.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li><strong>Patch CVE-2026-59891 immediately</strong>: Upgrade <code>@sigstore/oci</code> to version <code>0.7.1</code> or later to fix the credential selection logic.</li>
<li><strong>Update GitHub Actions</strong>: Ensure that your GitHub Actions workflows using <code>actions/attest</code>, <code>actions/attest-build-provenance</code>, or <code>actions/attest-sbom</code> are updated to versions that bundle the patched <code>@sigstore/oci</code> library.</li>
<li><strong>Validate input</strong>: Treat the destination registry/image reference as trusted input; do not allow untrusted sources to influence the registry/image reference passed to <code>@sigstore/oci</code> or the <code>subject-name</code> of <code>actions/attest*</code> when <code>push-to-registry: true</code>.</li>
<li><strong>Limit <code>~/.docker/config.json</code> credentials</strong>: Restrict the credentials available in the host's Docker config file (<code>~/.docker/config.json</code>) to only those strictly necessary for operations, and avoid authenticating to registries whose hostnames could have substring relationships with potential untrusted destinations.</li>
<li><strong>Scope tokens narrowly</strong>: Prefer using narrowly scoped and short-lived registry tokens to minimize the impact of potential credential leakage.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>credential-exposure</category><category>vulnerability</category><category>github-actions</category><category>docker</category><category>supply-chain</category></item></channel></rss>