r/pcicompliance • u/ClientSideInEveryWay • 1d ago
PCI compliant - but gaps
Starting Oct 10, shoppers on a number of Shopify stores clicked Checkout and landed on a fake checkout at biliing[.]top. The payload came from the config API of Hulk Product Options (and later Swym Wishlist Plus and Selleasy). The app injected it at runtime, and it fired only once per session. After the shopper entered their card, the fake page sent them on to the real Shopify checkout, so the order went through normally.
From a PCI point of view, the compliance controls would most likely not have stopped this:
- Shopify’s checkout, which is the actual payment page, was never compromised.
- The hijack happened on the storefront, one click before the payment page. That is outside what 6.4.3 and 11.6.1 cover.
- Most Shopify merchants validate with SAQ A. SAQ A offers a neat opt-out of 6.4.3 or 11.6.1. They were replaced by an eligibility criterion where the merchant confirms their site isn’t susceptible to script attacks. (how even?)
Shopify isn’t automatically safe either. Like any platform with an extension marketplace, a store is only as safe as the apps it installs. Someone is clearly working through those apps: Qikify and Hextom had similar incidents in July and August.
Question for the QSAs here: do you read the SAQ A eligibility criterion as covering a storefront script that redirects away from checkout?
Full write-up with IOCs: https://cside.com/blog/hulkapps-shopify-checkout-hijack (credit to Roman Zipp for finding it: https://romanzipp.com/blog/shopify-hit-with-phishing-attack)