Description
Shopify App is a Rails engine for building Shopify applications. From 22.1.0 until 23.0.3, `token-exchange` authenticated controllers can expose a request-derived `shop` context instead of the identity from a verified Shopify ID token or active Shopify session. `current_shopify_domain` can resolve to the sanitized `shop` query parameter, so a request authenticated for one `shop` can cause application code to treat a different requested `shop` as current. Affected applications use `shopify_app` `token-exchange` authentication, accept authenticated requests with a `shop` query parameter, and rely on `current_shopify_domain` or `params[:shop]` for authorization, tenant lookup, stored access-token selection or `shop`-scoped data access. An attacker with a valid Shopify session token for one `shop` can supply another `shop` in that parameter and potentially obtain unauthorized application data or perform `shop`-scoped actions, depending on the application's authorization model. This issue is fixed in version 23.0.3.
Published: 2026-10-30
Score: 7.6 High
EPSS: n/a
KEV: No
Impact: Authorization Bypass (cross-shop)
Action: Apply Update
AI Analysis

Impact

The Shopify App Rails engine includes a token‑exchange authentication mechanism that, between releases 22.1.0 and 23.0.3, incorrectly accepts a shop identifier supplied in the request query string instead of the one trusted from a verified Shopify ID token or active session. This leads to a post‑authentication authorization bypass: an attacker who already holds a valid Shopify session token for one shop can supply a different shop value in that parameter and cause the application to treat the request as belonging to the other shop. The consequence is unauthorized access to shop‑scoped data or actions, and a potential theft of sensitive confidential data. The weakness corresponds to CWE‑863, an authorization bypass via user‑controlled privilege level.

Affected Systems

Affected systems are Shopify’s shopify_app Ruby on Rails engine used by Shopify app developers. Versions from 22.1.0 up through 23.0.3 contain the vulnerability. Any application that relies on token‑exchange authentication, accepts a shop query parameter, and uses current_shopify_domain or params[:shop] for tenant lookup, authorization, or data access without additional checks is impacted. Updating to 23.0.3 or later removes the flaw.

Risk and Exploitability

The CVSS base score of 7.6 indicates a high severity, but the EPSS score is not available and it is not currently listed in the CISA KEV catalog. The vulnerability requires an attacker to possess a legitimate Shopify session token for one shop, after which the attacker can pivot to any other shop by manipulating the query parameter. Because the attack relies on a legitimate session, the attack surface is limited to accounts that have already authenticated, but the resulting privilege escalation allows significant cross‑shop data exposure. Therefore, the risk is high for any app exposed to the token‑exchange route that has not yet been patched.

Generated by OpenCVE AI on October 31, 2026 at 00:20 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade shopify_app to version 23.0.3 or later to remove the vulnerability.
  • Adjust token‑exchange configuration so that the shop context is derived solely from the verified Shopify ID token or active session and reject requests that supply a different shop query parameter.
  • If an upgrade is not immediately possible, add server‑side validation to ensure that current_shopify_domain (or params[:shop]) matches the authenticated session’s shop domain, and terminate any request that does not match.

Generated by OpenCVE AI on October 31, 2026 at 00:20 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-6j52-38f8-qhxr Shopify App: Token exchange shop context confusion may allow cross-shop authorization bypass in affected apps
History

Fri, 30 Oct 2026 23:00:00 +0000

Type Values Removed Values Added
Description Shopify App is a Rails engine for building Shopify applications. From 22.1.0 until 23.0.3, `token-exchange` authenticated controllers can expose a request-derived `shop` context instead of the identity from a verified Shopify ID token or active Shopify session. `current_shopify_domain` can resolve to the sanitized `shop` query parameter, so a request authenticated for one `shop` can cause application code to treat a different requested `shop` as current. Affected applications use `shopify_app` `token-exchange` authentication, accept authenticated requests with a `shop` query parameter, and rely on `current_shopify_domain` or `params[:shop]` for authorization, tenant lookup, stored access-token selection or `shop`-scoped data access. An attacker with a valid Shopify session token for one `shop` can supply another `shop` in that parameter and potentially obtain unauthorized application data or perform `shop`-scoped actions, depending on the application's authorization model. This issue is fixed in version 23.0.3.
Title Shopify App: Token exchange shop context confusion may allow cross-shop authorization bypass in affected apps
Weaknesses CWE-863
References
Metrics cvssV4_0

{'score': 7.6, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-30T22:49:47.431Z

Reserved: 2026-07-16T19:20:28.988Z

Link: CVE-2026-63414

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-30T23:17:15.707

Modified: 2026-10-30T23:17:15.707

Link: CVE-2026-63414

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-31T00:30:14Z

Weaknesses