Expo框架出現能劫持賬號的OAuth重大漏洞
安全研究人員發現,用于數百線上服務的知名開發框架Expo出現可劫持賬號的重大漏洞。
Expo框架主要是用于開發移動應用程序,提供一組工具、函數庫及服務,讓開發人員得以利用單一程序代碼基礎(codebase)開發iOS、Android及Web應用程序。它其中一項服務是OAuth,讓開發人員能將社交登錄(social sign-in)組件集成到網站,像是以臉書或Google賬號單一登錄各種網站。目前Expo框架全球用戶高達65萬人,許多知名線上服務,包括Facebook都以它來實例OAuth安全驗證及其他功能。
Salt Labs研究人員發現的Expo漏洞編號為CVE-2023-28131,位于用于社交登錄的AuthSession重導向代理服務器(auth.expo.io)服務中,這個服務讓用戶通過中介服務(如Facebook、Google)驗證網站或App,讓用戶不必再記憶不同網站或App的密碼。新發現的漏洞能讓攻擊者劫持使用該服務的應用程序/網站的用戶賬號,并竊取其登錄憑證。一旦受害者點入惡意連接就會發生,攻擊者可以通過電子郵件、文本消息或其他方式發送攻擊者控制的惡意網站連接。成功攻擊的結果包括詐騙、竊取信用卡或個人信息等后果,惡意攻擊者還可能冒用Facebook、Google、Twitter或其他線上平臺的用戶身份為非作歹。
CVE-2023-28131風險值被列為CVSS 3.1的9.6,屬于重大漏洞。

接獲通報后,Expo維護單位已發布hotfix暫時緩解攻擊風險,且指出目前沒有漏洞攻擊的證據。但Expo認為App應直接和第三方驗證供應商注冊直接連接,而不應使用中介服務,不只因為安全,也較為穩定。因此Expo建議使用AuthSession模塊中useProxy選項的App/網站,未來應轉移以免除風險。
Expo已經在最新SDK 48版及auth.expo.io服務的AuthSession模塊移除useProxy選項。此外,雖然目前沒有緊急轉移的必要性。但如果用戶希望從useProxy和auth.expo.io服務改成使用直接連接,Expo也提供指引。