CVE-2023-28131
📋 TL;DR
This vulnerability in the expo.io framework allows attackers to hijack user accounts and steal credentials when victims click malicious links. It affects applications using Expo's AuthSession Redirect Proxy for social sign-in authentication. Developers who implemented this specific configuration are at risk.
💻 Affected Systems
- Expo framework
- Applications using Expo AuthSession Redirect Proxy
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Complete account takeover leading to credential theft, unauthorized access to user data, and potential lateral movement within affected applications.
Likely Case
Attackers steal user credentials and gain unauthorized access to accounts, potentially compromising personal data and application functionality.
If Mitigated
With proper controls and patching, the risk is eliminated as the vulnerability is addressed at the framework level.
🎯 Exploit Status
Exploitation requires user interaction (clicking malicious link) but is straightforward once the link is accessed.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Expo SDK 48.0.0 and later
Vendor Advisory: https://blog.expo.dev/security-advisory-for-developers-using-authsessions-useproxy-options-and-auth-expo-io-e470fe9346df
Restart Required: Yes
Instructions:
1. Update Expo SDK to version 48.0.0 or later. 2. Update all dependencies. 3. Rebuild and redeploy applications. 4. Test authentication flows thoroughly.
🔧 Temporary Workarounds
Disable AuthSession Redirect Proxy
allTemporarily disable the vulnerable AuthSession Redirect Proxy configuration
Remove or comment out useProxy configuration in AuthSession setup
🧯 If You Can't Patch
- Implement additional authentication validation layers
- Monitor for suspicious authentication attempts and implement rate limiting
🔍 How to Verify
Check if Vulnerable:
Check if your application uses Expo AuthSession with useProxy option configured for social authentication
Check Version:
expo --version or check package.json for expo version
Verify Fix Applied:
Verify Expo SDK version is 48.0.0 or later and test authentication flows
📡 Detection & Monitoring
Log Indicators:
- Unusual authentication patterns
- Multiple failed login attempts from same IP
- Authentication requests with unexpected redirect URLs
Network Indicators:
- Suspicious redirect patterns in OAuth flows
- Authentication requests to unexpected domains
SIEM Query:
auth_provider="expo" AND (redirect_url CONTAINS suspicious_domain OR auth_attempts > threshold)
🔗 References
- https://blog.expo.dev/security-advisory-for-developers-using-authsessions-useproxy-options-and-auth-expo-io-e470fe9346df
- https://www.darkreading.com/endpoint/oauth-flaw-in-expo-platform-affects-hundreds-of-third-party-sites-apps
- https://blog.expo.dev/security-advisory-for-developers-using-authsessions-useproxy-options-and-auth-expo-io-e470fe9346df
- https://www.darkreading.com/endpoint/oauth-flaw-in-expo-platform-affects-hundreds-of-third-party-sites-apps