apk-scanner.com

Joist Invoice & Estimate App

com.joistapp.android.joist · Build 3.86.0

Analysis: complete. Static analysis completed for this build. A grade is not a guarantee of safety. Historical verification does not establish current reachability.

Grade / score
B · 76/100
Finding categories
7
Occurrences
10
Scanned
2026-09-29T09:43:24.811Z
Document issued
2026-10-13T22:52:42.162Z
Historical verifications
0

Finding evidence

Open a category to review its occurrences. Printing includes all categories and occurrences.

Hardcoded HTTP Basic-auth credentials · high · 1 occurrence

Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.

CWE-798 · MASVS-STORAGE-1

  • Basic ••••••:•••••••• (redacted)
Amazon S3 bucket reference · low · 1 occurrence

Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open.

CWE-200 · CWE-284 · MASVS-STORAGE-2

  • http://████.amazonaws.com/███
Firebase Realtime Database reference · low · 1 occurrence

Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open.

CWE-200 · CWE-284 · MASVS-STORAGE-2

  • https://█████████.firebaseio.com/███
Google API key (client-shipped; restriction unverified) · low · 3 occurrences

Restrict the API key (application + API restrictions in Google Cloud Console); a client-shipped key is public, so restriction is the control.

CWE-798 · MASVS-STORAGE-1

  • AIza•••••••• (21–40 chars, redacted)
  • AIza•••••••• (21–40 chars, redacted)
  • AIza•••••••• (21–40 chars, redacted)
Firebase Storage bucket reference · low · 1 occurrence

Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open.

CWE-200 · CWE-284 · MASVS-STORAGE-2

  • ████████████
BIP39 wallet seed phrase (12 words, checksum valid) (third-party library artifact, shared across 12 unrelated developers) · low · 1 occurrence

A mnemonic seed phrase must never be embedded — any holder controls the wallet. Move funds to a new wallet immediately and never bundle key material.

CWE-312 · CWE-798 · MASVS-STORAGE-1 · MASVS-CRYPTO-2

  • BIP39 mnemonic (12 words) — redacted
Data Safety label omits Contacts · low · 2 occurrences

Update the Play Data Safety form to declare the observed data category, or remove the capability if the data is not actually collected.

CWE-359 · MASVS-PRIVACY-3

  • app can access contacts (Contacts); not in the declaration
  • app can access location (Approximate location); not in the declaration

Control coverage

Mapped static evidence does not establish a control pass. Manual assessment remains separate.

ControlRequirementRecorded status
MASVS-STORAGE-1The app securely stores sensitive data.Review signal
MASVS-STORAGE-2The app prevents leakage of sensitive data.Review signal
MASVS-CRYPTO-1The app employs current strong cryptography and uses it according to best practices.No static findings · not a pass
MASVS-CRYPTO-2The app performs key management according to best practices.Review signal
MASVS-AUTH-1The app uses secure authentication and authorization protocols.Manual assessment
MASVS-AUTH-2The app performs local authentication securely.Manual assessment
MASVS-AUTH-3The app secures sensitive operations with additional authentication.Manual assessment
MASVS-NETWORK-1The app secures all network traffic according to current best practices.No static findings · not a pass
MASVS-NETWORK-2The app verifies the identity of the remote endpoint (e.g. certificate pinning).No static findings · not a pass
MASVS-PLATFORM-1The app uses IPC mechanisms securely.No static findings · not a pass
MASVS-PLATFORM-2The app uses WebViews securely.No static findings · not a pass
MASVS-PLATFORM-3The app uses the user interface securely.Manual assessment
MASVS-CODE-1The app requires an up-to-date platform version.No static findings · not a pass
MASVS-CODE-2The app has a mechanism for enforcing updates.Manual assessment
MASVS-CODE-3The app only uses software components without known vulnerabilities.No static findings · not a pass
MASVS-CODE-4The app validates and sanitizes all untrusted inputs and follows secure-coding practice.No static findings · not a pass
MASVS-RESILIENCE-1The app validates the integrity of the platform.Manual assessment
MASVS-RESILIENCE-2The app implements anti-tampering mechanisms.Manual assessment
MASVS-RESILIENCE-3The app implements anti-static-analysis mechanisms.Manual assessment
MASVS-RESILIENCE-4The app implements anti-dynamic-analysis techniques.Manual assessment
MASVS-PRIVACY-1The app minimizes access to sensitive data and resources.No static findings · not a pass
MASVS-PRIVACY-2The app prevents identification of the user.No static findings · not a pass
MASVS-PRIVACY-3The app is transparent about data collection and usage.Review signal
MASVS-PRIVACY-4The app offers user control over their data.Manual assessment
Build identity and signature
Scan ID
2f91d2c8-f339-4815-98b6-4b345d493ccd
APK SHA-256
9438fea80dc7981784fe06c7fc148f2178e53070025b6c4050a960b4743f2e25
Capsule SHA-256
0a2f9ae38b114bdae435765910d3155b61ac7e2c6b9576021dd2183110eb60fb
Signing key
IE6LeZNX4dAAPLGr

Verify the signed JSON at apk-scanner.com/verify. This printed view is a presentation of the signed record; the JSON is the verification artifact.