/

CVE-2026-96626

Severity:

HIGH RISK

(8.5)

Credential Exposure (CWE-522) in Arcane Registry API

CVE-2026-96626

Deferred

Vulnerability type

Category:

Credential Exposure

CWE:

CWE-200, CWE-522

Impact:

Disclosure and misuse of container-registry credentials

Severity:

HIGH RISK

(8.5)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Arcane can expose a stored container-registry password or personal access token when an authorized user changes a registry URL without providing a replacement credential. The preserved encrypted token may then be decrypted and sent to an attacker-controlled registry host, potentially enabling unauthorized image access or tampering.

Arcane can expose a stored container-registry password or personal access token when an authorized user changes a registry URL without providing a replacement credential. The preserved encrypted token may then be decrypted and sent to an attacker-controlled registry host, potentially enabling unauthorized image access or tampering.

Affected context

The issue occurs in Arcane deployments that use the container registry management API and retain an existing encrypted token when a registry URL is updated. Risk is present when a user with both registry-update and registry-test permissions can repoint a generic registry to an external destination without supplying a new credential, while the address normalization logic permits that destination.

The issue occurs in Arcane deployments that use the container registry management API and retain an existing encrypted token when a registry URL is updated. Risk is present when a user with both registry-update and registry-test permissions can repoint a generic registry to an external destination without supplying a new credential, while the address normalization logic permits that destination.

Exploit preconditions

  • Attack surface: Arcane container registry management API
  • Required access: Permissions to update registries and test registries
  • Trigger point: Updating a generic registry URL without replacing its stored token, followed by registry testing
  • Why exploitation is possible: The service preserves and decrypts the existing credential, then sends it to the newly configured host without sufficiently restricting the destination
  • Attack surface: Arcane container registry management API
  • Required access: Permissions to update registries and test registries
  • Trigger point: Updating a generic registry URL without replacing its stored token, followed by registry testing
  • Why exploitation is possible: The service preserves and decrypts the existing credential, then sends it to the newly configured host without sufficiently restricting the destination

Why this happens

The underlying bug is an insecure association between a stored credential and a mutable registry endpoint. When the endpoint changes, the application preserves the old secret and later uses it for authentication against the new destination. Because destination validation does not adequately constrain the normalized registry address, a credential intended for one service can be disclosed to another. This primarily maps to CWE-522: Insufficiently Protected Credentials, with CWE-200: Exposure of Sensitive Information also describing the resulting disclosure.

The underlying bug is an insecure association between a stored credential and a mutable registry endpoint. When the endpoint changes, the application preserves the old secret and later uses it for authentication against the new destination. Because destination validation does not adequately constrain the normalized registry address, a credential intended for one service can be disclosed to another. This primarily maps to CWE-522: Insufficiently Protected Credentials, with CWE-200: Exposure of Sensitive Information also describing the resulting disclosure.

Potential impact

  • A container-registry password or personal access token may be disclosed
  • An attacker could access private images or repositories
  • An exposed credential could permit image modification or replacement
  • Malicious images could be introduced into downstream deployment workflows
  • Additional systems using the same credential may also be at risk
  • A container-registry password or personal access token may be disclosed
  • An attacker could access private images or repositories
  • An exposed credential could permit image modification or replacement
  • Malicious images could be introduced into downstream deployment workflows
  • Additional systems using the same credential may also be at risk

General mitigation guidance

Mitigation generally focuses on binding credentials to trusted destinations and preventing secrets from being reused after endpoint changes.

Common defensive patterns include:

  • Invalidate or require replacement credentials whenever a registry endpoint changes
  • Restrict registry destinations using explicit allowlists and validated schemes
  • Avoid sending stored secrets to destinations that have not been independently trusted
  • Apply least privilege and narrow repository scope to registry credentials
  • Use short-lived tokens where supported and rotate credentials after suspected exposure
  • Separate update and credential-test permissions when operationally practical
  • Redact credentials from logs, errors, and diagnostic responses

Mitigation generally focuses on binding credentials to trusted destinations and preventing secrets from being reused after endpoint changes.

Common defensive patterns include:

  • Invalidate or require replacement credentials whenever a registry endpoint changes
  • Restrict registry destinations using explicit allowlists and validated schemes
  • Avoid sending stored secrets to destinations that have not been independently trusted
  • Apply least privilege and narrow repository scope to registry credentials
  • Use short-lived tokens where supported and rotate credentials after suspected exposure
  • Separate update and credential-test permissions when operationally practical
  • Redact credentials from logs, errors, and diagnostic responses

How teams detect issues like this

Organizations can look for:

  • Static-analysis findings where encrypted secrets are reused after mutable endpoint changes
  • Code paths that decrypt credentials before validating destination ownership or allowlisting
  • API reviews showing separate update and test permissions combined without destination controls
  • Audit events in which registry endpoints change without corresponding credential replacement
  • Outbound authentication requests from Arcane to unapproved registry hosts
  • Policy checks requiring registry allowlists, secret rotation, and least-privilege token scopes

Automated code review and secret-handling analysis tools can help identify these patterns during development.

Organizations can look for:

  • Static-analysis findings where encrypted secrets are reused after mutable endpoint changes
  • Code paths that decrypt credentials before validating destination ownership or allowlisting
  • API reviews showing separate update and test permissions combined without destination controls
  • Audit events in which registry endpoints change without corresponding credential replacement
  • Outbound authentication requests from Arcane to unapproved registry hosts
  • Policy checks requiring registry allowlists, secret rotation, and least-privilege token scopes

Automated code review and secret-handling analysis tools can help identify these patterns during development.

Sources

SourceLink
github.comgithub.com/getarcaneapp/arcane/commit/fe31693634f48f295a7d77d091085b331cf9e915
github.comgithub.com/getarcaneapp/arcane/pull/3317
github.comgithub.com/getarcaneapp/arcane/releases/tag/backend/v2.5.0
github.comgithub.com/getarcaneapp/arcane/security/advisories/GHSA-9pxc-cxp5-qp54

Frequently asked

questions

It can be triggered through the Arcane API when an attacker has the required registry-update and registry-test permissions and can cause a registry endpoint to point to a host they control.

No direct access to the encrypted token is necessary. The application decrypts and transmits the preserved credential as part of the registry test operation.

Do not preserve a credential across endpoint changes unless the new destination is strongly validated. Require a replacement credential or invalidate the existing one when the destination changes.

Enforce registry destination allowlists, use narrowly scoped and short-lived credentials, separate sensitive permissions, and monitor outbound authentication attempts to unapproved hosts.

It can be triggered through the Arcane API when an attacker has the required registry-update and registry-test permissions and can cause a registry endpoint to point to a host they control.

No direct access to the encrypted token is necessary. The application decrypts and transmits the preserved credential as part of the registry test operation.

Do not preserve a credential across endpoint changes unless the new destination is strongly validated. Require a replacement credential or invalidate the existing one when the destination changes.

Enforce registry destination allowlists, use narrowly scoped and short-lived credentials, separate sensitive permissions, and monitor outbound authentication attempts to unapproved hosts.

Find out what's already
exploitable in your codebase.