MuntashirAkon / MuntashirAkon/AppManager
[Review] PKP usage in App Manager
- Dominant language
- Java
- Stars
- 9k
- Forks
- 518
- PR merge metrics
- No merged PRs in 30d
Description
Recently, App Manager has added support for public key pinning (PKP) via Android-native [`networkSecurityConfig`](https://developer.android.com/training/articles/security-config), but with the following limitations:
1. No support for older devices (API < 24) which could be added via [TrustKit](https://github.com/datatheorem/TrustKit-Android)
2. Localhost is exempted from any restrictions. It's understandable that this is done to allow connecting to `adbd`, but this creates more attack surfaces even if they may only be restricted to localhost. Moreover, when the mode of operation is set to **auto** (which is the default) or any of the ADB ones, (in Android 9+) App Manager scans for potential ADB ports in the localhost via mDNS and attempts to connect to the first found port address automatically. This port address should not be trusted blindly as during the connection, it is set to _trust_ any certificate. The feature should be reviewed properly to ensure that it only trusts the configured certificates.
These issues prevent App Manager from adding preview features such as audio/video player, image/font viewer, etc. which makes use of frequently exploited drivers and libraries.
Contributor guide
Assessment
This issue has not been assessed yet.