Skip to content

Can I trust Session - Private Messenger?

TRUSTish 92 Android Version 1.32.1 (versionCode 4445) — Play Store shows 1.33.4 network.loki.messenger Scanned

This scan is more than 90 days old. The store may list a newer version than the one described here.

This app did not meet one of the trust checks that applied to it, with no red flags.

Best for
General use with standard privacy expectations
What it means for you
The build may include code to pass usage data and device activity to the app developer and any integrated services. Review the category summary below for details.
Main concern
Session Pro payment backend points to developer subdomain in production APK
Third-party services
16
Findings rated low or higher
4

How the score and the label work

Open on Google PlayOpens the app's listing on Google Play in a new tab.

Full findings

Open this scan in your dashboard

The account that ran this scan sees every finding and the Rescan button there.

Trust checks

  • Secure by Design

    Strong

    Strong security foundation

    Why this result

    This check looks for security issues at high severity or above in the code of this build, and none were recorded. Its scope covers stored credentials, how the app protects data on the device, and how it protects data in transit.

    No critical or high security vulnerabilities were found. The app uses strong encryption throughout: all messages are stored in a fully encrypted database, the network code routes all traffic through a three-hop onion routing system, and the app never loads external web content inside an in-app browser. Two medium-severity issues exist — a developer test server URL was accidentally left in the production release, and a third-party image cropping screen can be opened by other installed apps — but neither represents a remotely exploitable attack that could expose user messages or credentials. The overall security design is well above average for a consumer messaging app.

  • Data Minimization

    Strong

    Tracking done right

    Why this result

    The check looks at analytics and attribution code for companies other than the developer: the data it reads, the companies named in code as recipients, and whether a consent step runs before that code. In this build, either no such code was recorded, or a consent step runs before it and the app's own disclosures describe the collection.

  • Manifest Mismatch

    One criterion not met

    Disclosure incomplete or contradicted

    Why this result

    The check compares the app's privacy disclosures against what the code does, and at least one claim did not match in this build. Mismatches of this kind include a data category collected but not disclosed, a recipient the disclosure omits, and an identifier attached to data the disclosure describes as anonymous.

  • User Control

    Strong

    No lock-in

    Why this result

    The check looks for a way to export the data an account has accumulated and a way to delete the account itself. In this build, either both were found, or the app has no account of its own and keeps its data on the device. For an app without an account, the developer has no server-side copy to export or delete, and deleting the app removes the data in its own storage.

  • Truly Local

    Strong

    Stays on the device

    Why this result

    This app presents itself as working offline or on the device alone. The check looks for any code written to send personal data to a server, including analytics, crash reporting and advertising code. None was recorded in this build.

    Messages, contacts, and conversation history are stored only on your device in an encrypted database. The communication code routes all messages through a three-hop onion routing network so no single server can link a message to its sender. The build contains no code to send sensitive personal data, such as health information, financial details, or biometrics, to third-party services. The only code addressed beyond the Session network itself is the request that includes the text of GIF searches for Giphy when a user opens the GIF picker; that request is built to go through a privacy proxy that hides the user's IP address, and it is user-initiated, not automatic.

Strengths

  • SQLCipher full database encryption with AES-256
  • 3-hop onion routing hides message content, metadata, sender, and recipient from all network nodes
  • Seed node certificate pinning with custom CA trust anchors — immune to public CA compromise
  • No analytics, advertising, or tracking SDKs of any kind
  • Firebase analytics and crash reporting explicitly disabled via manifest flags
  • Per-user SecureRandom push notification decryption keys (resolved prior global key vulnerability)
  • No WebViews or custom deep link URI schemes — eliminates entire class of web-facing attacks
  • android:allowBackup="false" prevents ADB and cloud backup extraction of message database
  • No account registration PII required — identity is a self-generated cryptographic keypair
  • Biometric Keystore key correctly bound with user authentication, device unlock, and biometric enrollment invalidation

What the app contains

  • 16 services

    Third-party services the scan names in the build:

    • Firebase Cloud Messaging
    • Google Play Billing
    • Google Play Core
    • WebRTC
    • Conscrypt
    • OkHttp 3
    • Kotlin Coroutines
    • RxJava 2
    • Dagger/Hilt
    • Jetpack Compose
    • Coil 3
    • Giphy
    • SQLCipher
    • libsession-util (JNI)
    • canhub CropImage
    • Guardian Project Panic

Libraries

Libraries in the build of Session - Private Messenger
LibraryVersionAdvisory
ExoPlayer / media3not recordednone confirmed
Roomnot recordednone confirmed
Google Play Billingnot recordednone confirmed
Glidenot recordednone confirmed
Datatransportnot recordednone confirmed
Google Play Services12451000none confirmed
Material Componentsnot recordednone confirmed
Play Corenot recordednone confirmed
Daggernot recordednone confirmed
Firebase12451000none confirmed
Show all 20 libraries

Method and limits

Static analysis: the decompiled code, manifest and resources of this build, read file by file. Network traffic at run time is established by a capture of the running app.

Files decompiled
8,823
Scan date
30 June 2026

Corrections

No correction is published for this app.

Developer response

No response is published for this app.

Report an error Opens an email to [email protected] that names this app and this scan.