Read the docs
TI-2026-66971 Aliases GHSA-6c87-g9pw-78fx

Contrast's Imagepuller registryFor uses unanchored suffix matching, leaking auth…

Priority LOW 38CWE-1289Published · Updated

Key facts

Attack vector
—
Privileges required
—
User interaction
—
Attack complexity
—
Impact type
—
Confidentiality · integrity · availability
—
Fix status
Fixed

No CVSS vector from any source. Fix status from GitHub.

Summary

# Summary `Config.registryFor` selected a per-registry credential / CA / mirror block by checking `strings.HasSuffix(name, fqdn)` after stripping a single trailing dot.  The match has no boundary between the configured FQDN and any preceding characters in the request hostname. A registry configured as `[registries."ghcr.io."]` is therefore also applied to any image pulled from a host whose name happens to end in the literal byte sequence `ghcr.io`,  including attacker-registered domains such as `evilghcr.io.`  The imagepuller would then send the configured `Authorization` header (basic auth, registry token, or identity token), trust the configured custom CA bundle, follow the configured mirror, or honour `insecure-skip-verify`, on requests to that hostname. # Prerequisites For this to be applicable, an image or layer must be pulled from a "sibling" domain ending in one of the FQDNs configured in the imagepuller config. This may occur due to malicious intent or coincidentally. # Impact - Authentication header leaks to the sibling registry. - If `insecure-skip-verify` is set on an FQDN, TLS will also not be verified for the sibling registry. - Mirrors configured for an FQDN will also be used with the sibling registry. ## Not impacted Image integrity is **not** impacted. Image bytes remain pinned by digest in the policy and are validated after the pull. This advisory does not allow code substitution. # Workaround - If possible, configure explicit subdomains in the imagepuller config. A configuration for `[registries.".example.registry"]` is unaffected, only `[registries."example.registry"]` is potentially affected. - Audit images and layers configured in the deployment for the existence of sibling domains. # Patches After this patch, registry matches are determined by exact label equality instead of suffix matching. Each `.`-separated part of the FQDN must be an exact match with the corresponding label in the image reference. # Severity - `AV:N` because the leak is over the network to a registry under the attacker's control.  - `AC:H` because exploitation requires the operator to have configured a registry FQDN without a leading `.` AND the attacker to control a sibling-suffix domain that the deployment will pull from. - `PR:N` for the eventual recipient.  - `S:U` because impact stays in the imagepuller.  - `C:L` for credential leak (no integrity / availability impact).

Why it matters now

Fix Fixed github.com/edgelesssys/contrast (Go): 1.21.0

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
—github.com/edgelesssys/contrast (Go)before 1.21.01.21.0Patch availableGHSA-6c87-g9pw-78fx
  • github.com/edgelesssys/contrast (Go) Vendor— Affected before 1.21.0 Fixed in 1.21.0 Patch available GHSA-6c87-g9pw-78fx

Remediation

  • Fix · GHSA-6c87-g9pw-78fx github.com/edgelesssys/contrast (Go) Fixed in 1.21.0 Advisory →

Timeline

  1. 2026-10-03 Threatist record created from GHSA-6c87-g9pw-78fx

References

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences