This blog has been taken from Malcore’s analysis results. The points below are not an exhaustive list. For a full view of Malcore’s static analysis of the Session App APK view it on Malcore.
Try Malcore for Free!
First 5 scans are free on registration
Google CrashLytics Google Firebase Analytics
High severity warnings from code analysis
SHA-1 is a weak hash known to have hash collisions.
The App uses an insecure Random Number Generator.
Files may contain hardcoded sensitive information like usernames, passwords, keys etc.
Insecure Implementation of SSL. Trusting all the certificates or accepting self signed certificates is a critical Security Hole. This application is vulnerable to MITM attacks.
The app uses jackson deserialization library. Deserialization of untrusted input can result in arbitrary code execution.
This App has capabilities to prevent against Screenshots from Recent Task History/ Now On Tap etc.
App uses SQLite Database and execute raw SQL query. Untrusted user input in raw SQL queries can cause SQL Injection. Also sensitive information should be encrypted and written to the database.
App creates temp file. Sensitive information should never be written into a temp file.
Suspicious severity warnings from code analysis
Application attempts to discover build version of device.
Dangerous Labelled permissions from Android
Android Dangerous labelled permissions as Dangerous from this library https://developer.android.com/reference/android/Manifest.permission.
Name: DISABLE_KEYGUARD Description: Allows an application to disable the key lock and any associated password security. A legitimate example of this is the phone disabling the key lock when receiving an incoming phone call, then re-enabling the key lock when the call is finished.
Name: WRITE_SETTINGS Description: Allows an application to modify the system's settings data. Malicious applications can corrupt your system's configuration.
Name: WRITE_SYNC_SETTINGS Description: Allows an application to modify the sync settings, such as whether sync is enabled for Contacts.
Name: BLUETOOTH Description: Allows an application to view configuration of the local Bluetooth phone and to make and accept connections with paired devices.
Name: READ_SETTINGS Description: Allows applications to read the global setting of the device it is running on.
Name: ACCESS_NETWORK_STATE Description: Allows an application to view the status of all networks.
Name: WRITE_EXTERNAL_STORAGE Description: Allows an application to write to the SD card.
Name: CAMERA Description: Allows application to take pictures and videos with the camera. This allows the application to collect images that the camera is seeing at any time
Name: WAKE_LOCK Description: Allows an application to prevent the phone from going to sleep.
Name: RECORD_AUDIO Description: Allows application to access the audio record path.
Name: MODIFY_AUDIO_SETTINGS Description: Allows application to modify global audio settings, such as volume and routing.
To view how these results compare within industry see our analysis:
To view how these scores are created visit our transparency post where we published a description of our phone application threat scoring algorithm.
Session devs, on their blog, claim the App has no trackers and the only way this could happen is if user allows Google analytics in phone settings (which I guess applies for all apps). How do you explain Firebase appearing in Malcore analysis? Is this accurate? What about Session App downloaded from Fdroid ? Which App version did you test and where was the APK downloaded from?