
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-63414 is a cross-shop authorization bypass vulnerability in the shopify_app Ruby gem caused by token exchange shop context confusion. In token-exchange authenticated controllers, the current_shopify_domain helper could resolve to the attacker-supplied shop query parameter rather than the shop identity derived from the verified Shopify ID token or active session, allowing a request authenticated for one shop to operate in the context of a different shop. The vulnerability affects shopify_app versions >= 22.1.0 and < 23.0.3 (RubyGems). It was originally published on June 25, 2026, and added to the GitHub Advisory Database on October 29, 2026. It carries a CVSS v4.0 base score of 7.6 (High) (GitHub Advisory).
The root cause is CWE-863 (Incorrect Authorization): the current_shopify_domain helper in token-exchange authenticated controllers resolved shop identity by falling back to the sanitized shop query parameter (params[:shop]) rather than exclusively using the shop identity from the cryptographically verified Shopify ID token or active Shopify session (GitHub Advisory). An attacker exploits this by obtaining a valid Shopify session token for a shop they legitimately control, then crafting an authenticated HTTP request that includes a different shop query parameter pointing to a target shop. If the application uses current_shopify_domain or params[:shop] for authorization decisions, tenant lookup, access-token selection, or shop-scoped data access, the application logic will treat the attacker-supplied shop as the current shop. Exploitation requires the attacker to already hold a valid session token for at least one shop (low privilege), and the target application must accept authenticated requests where a shop query parameter may be present (Shopify Advisory).
Successful exploitation allows an authenticated attacker with a valid Shopify session for one shop to access or manipulate another shop's application data, perform unauthorized shop-scoped actions, select and potentially use another shop's stored access tokens, or perform unauthorized tenant lookups — all without holding a valid session for the target shop. The confidentiality and integrity of the vulnerable system are both rated High, as an attacker could read sensitive shop data and make unauthorized modifications within the application's scope. Availability is not impacted, and there is no assessed impact on subsequent systems (GitHub Advisory).
No public proof-of-concept exploit code or evidence of in-the-wild exploitation has been reported as of the advisory publication date. The vulnerability was responsibly disclosed via HackerOne by researcher leqtuer and coordinated with Shopify before public disclosure (Shopify Advisory). The CVE status is listed as "Reserved" and no EPSS score or CISA KEV catalog entry is currently associated with this vulnerability. Exploitation requires low privileges (a valid Shopify session for any shop) and no user interaction, but does require specific attack conditions (the target application must use the vulnerable helpers for security-sensitive decisions) (GitHub Advisory).
shopify_app gem versions >= 22.1.0 and < 23.0.3 that uses token-exchange authentication and exposes endpoints where a shop query parameter can be supplied.shop query parameter value pointing to the victim shop (e.g., GET /some_endpoint?shop=victim-shop.myshopify.com).current_shopify_domain resolves to the sanitized shop query parameter rather than the authenticated shop, the application treats the victim shop as the current shop context.shop query parameter that does not match the shop identity in the accompanying Shopify ID token or session JWT (dest claim).current_shopify_domain resolving to a shop domain that differs from the authenticated session's shop; repeated requests from the same session token targeting multiple different shop parameter values.The primary remediation is to upgrade shopify_app to version 23.0.3, which hardens token-exchange handling so that current_shopify_domain resolves exclusively to the authenticated shop, and rejects requests with 401 Unauthorized when the shop query parameter does not match the authenticated shop (Shopify Release). For applications that cannot upgrade immediately, the following workarounds should be applied in token-exchange authenticated controllers: do not use params[:shop] for authorization, tenant lookup, access-token selection, or data scoping; use current_shopify_session.shop or the verified JWT dest value instead of current_shopify_domain for security-sensitive decisions; and explicitly reject requests with 401 Unauthorized when a shop query parameter is present but does not match the authenticated shop (Shopify Advisory).
The vulnerability was responsibly reported by HackerOne researcher leqtuer and coordinated with Shopify prior to public disclosure on June 25, 2026. The advisory was published by francisbeaudoin on behalf of Shopify and added to the GitHub Advisory Database on October 29, 2026 (GitHub Advisory). No significant broader media coverage or notable public researcher commentary beyond the official advisory has been identified.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."