موتور Rails که برای ساخت اپلیکیشنهای Shopify استفاده میشود، با یک آسیبپذیری امنیتی جدی روبرو شده است. در نسخههای 22.1.0 تا 23.0.3 این ابزار، کنترلرهای احراز هویت در بخش token-exchange دارای نقص هستند که میتواند منجر به افشای Context فروشگاه بر اساس پارامترهای ارسالی در درخواست (Request) شود.
این نقص به این دلیل رخ میدهد که به جای استفاده از هویت استخراج شده از یک Shopify ID token معتبر یا نشست (Session) فعال، سیستم اجازه میدهد پارامتر shop که از طریق درخواست ارسال شده، جایگزین هویت واقعی شود. در واقع، متد current_shopify_domain میتواند به پارامتر shop در Query Parameter اشاره کند که توسط مهاجم مدیریت شده است.
پیامد امنیتی: این آسیبپذیری به مهاجم اجازه میدهد تا یک درخواست احراز هویت شده برای یک فروشگاه خاص را به گونهای تغییر دهد که کد اپلیکیشن، فروشگاه دیگری را به عنوان فروشگاه فعلی (Current Shop) شناسایی کند. این موضوع میتواند منجر به دور زدن مکانیزمهای کنترل دسترسی و اشتباه در تشخیص هویت در اپلیکیشنهای مبتنی بر shopify_app شود.