Files
gh-christianlouis-docuelevate/mobile/package.json
T
google-labs-jules[bot] d22175310a 🛡️ Sentinel: [HIGH] Fix Server-Side Request Forgery in IMAP connections
🚨 Severity: HIGH
💡 Vulnerability: User-provided IMAP `host` in `_test_imap_connection` and `pull_inbox` was not validated against private IPs, creating an SSRF risk.
🎯 Impact: Attackers could abuse the endpoints to port-scan or interact with internal/private network services.
🔧 Fix: Integrated `is_private_ip` from `app.utils.network` to block connections resolving to private, loopback, link-local, or reserved IPs.
 Verification: Ran `test_imap_tasks.py` and `test_api_imap_accounts.py` successfully. Checked `ruff` output and diffs. Removed all scratch files from the commit.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-23 14:45:22 +00:00

72 lines
2.1 KiB
JSON

{
"name": "docuelevate-mobile",
"version": "1.0.0",
"description": "DocuElevate native mobile app (iOS and Android)",
"main": "expo-router/entry",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"lint": "eslint src --ext .ts,.tsx",
"type-check": "tsc --noEmit",
"build:ios": "eas build --platform ios",
"build:android": "eas build --platform android",
"build:all": "eas build --platform all",
"submit:ios": "eas submit --platform ios",
"submit:android": "eas submit --platform android"
},
"dependencies": {
"@expo/vector-icons": "^15.0.3",
"@react-native-async-storage/async-storage": "2.2.0",
"@react-navigation/bottom-tabs": "^7.4.0",
"@react-navigation/native": "^7.1.8",
"@react-navigation/native-stack": "^7.2.0",
"expo": "~54.0.0",
"expo-auth-session": "~7.0.10",
"expo-build-properties": "~1.0.10",
"expo-dev-client": "~6.0.20",
"expo-font": "~14.0.0",
"expo-camera": "~17.0.10",
"expo-constants": "~18.0.13",
"expo-crypto": "~15.0.8",
"expo-device": "~8.0.10",
"expo-document-picker": "~14.0.8",
"expo-file-system": "~19.0.21",
"expo-image-manipulator": "~14.0.8",
"expo-image-picker": "~17.0.10",
"expo-linking": "~8.0.11",
"expo-notifications": "~0.32.16",
"expo-router": "~6.0.23",
"expo-secure-store": "~15.0.8",
"expo-sharing": "~14.0.8",
"expo-splash-screen": "~31.0.13",
"expo-status-bar": "~3.0.9",
"expo-web-browser": "~15.0.10",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-native": "0.81.5",
"react-native-web": "~0.21.0",
"react-native-safe-area-context": "5.6.0",
"react-native-screens": "4.16.0"
},
"devDependencies": {
"@babel/core": "^7.24.0",
"@types/react": "~19.1.0",
"eslint": "^8.57.0",
"eslint-config-expo": "~10.0.0",
"typescript": "^5.3.0"
},
"engines": {
"node": ">=20.19.4"
},
"private": true,
"expo": {
"doctor": {
"reactNativeDirectoryCheck": {
"exclude": ["@react-navigation/bottom-tabs"]
}
}
}
}