{
  "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
  "version": "2.1.0",
  "runs": [
    {
      "tool": {
        "driver": {
          "name": "apk-scanner.com",
          "informationUri": "https://apk-scanner.com",
          "version": "1.0.0",
          "rules": [
            {
              "id": "APKSCAN-87-basic_auth_header",
              "name": "BasicAuthHeader",
              "shortDescription": {
                "text": "Hard-coded HTTP Basic credentials"
              },
              "fullDescription": {
                "text": "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."
              },
              "helpUri": "https://apk-scanner.com/finding/basic_auth_header",
              "help": {
                "text": "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."
              },
              "defaultConfiguration": {
                "level": "error"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-798",
                  "MASVS-STORAGE-1"
                ],
                "security-severity": "8.0",
                "cwe": [
                  "CWE-798"
                ],
                "masvs": [
                  "MASVS-STORAGE-1"
                ]
              }
            },
            {
              "id": "APKSCAN-1-s3_bucket",
              "name": "S3Bucket",
              "shortDescription": {
                "text": "Amazon S3 bucket reference"
              },
              "fullDescription": {
                "text": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
              },
              "helpUri": "https://apk-scanner.com/finding/s3_bucket",
              "help": {
                "text": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
              },
              "defaultConfiguration": {
                "level": "note"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-200",
                  "CWE-284",
                  "MASVS-STORAGE-2"
                ],
                "security-severity": "2.0",
                "cwe": [
                  "CWE-200",
                  "CWE-284"
                ],
                "masvs": [
                  "MASVS-STORAGE-2"
                ]
              }
            },
            {
              "id": "APKSCAN-2-firebase_rtdb",
              "name": "FirebaseRtdb",
              "shortDescription": {
                "text": "Firebase Realtime Database reference"
              },
              "fullDescription": {
                "text": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
              },
              "helpUri": "https://apk-scanner.com/finding/firebase_rtdb",
              "help": {
                "text": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
              },
              "defaultConfiguration": {
                "level": "note"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-200",
                  "CWE-284",
                  "MASVS-STORAGE-2"
                ],
                "security-severity": "2.0",
                "cwe": [
                  "CWE-200",
                  "CWE-284"
                ],
                "masvs": [
                  "MASVS-STORAGE-2"
                ]
              }
            },
            {
              "id": "APKSCAN-20-google_api_key",
              "name": "GoogleApiKey",
              "shortDescription": {
                "text": "Google API key (client-shipped; restriction unverified)"
              },
              "fullDescription": {
                "text": "Restrict the API key (application + API restrictions in Google Cloud Console); a client-shipped key is public, so restriction is the control."
              },
              "helpUri": "https://apk-scanner.com/finding/google_api_key",
              "help": {
                "text": "Restrict the API key (application + API restrictions in Google Cloud Console); a client-shipped key is public, so restriction is the control."
              },
              "defaultConfiguration": {
                "level": "note"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-798",
                  "MASVS-STORAGE-1"
                ],
                "security-severity": "2.0",
                "cwe": [
                  "CWE-798"
                ],
                "masvs": [
                  "MASVS-STORAGE-1"
                ]
              }
            },
            {
              "id": "APKSCAN-53-firebase_storage",
              "name": "FirebaseStorage",
              "shortDescription": {
                "text": "Firebase Storage bucket reference"
              },
              "fullDescription": {
                "text": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
              },
              "helpUri": "https://apk-scanner.com/finding/firebase_storage",
              "help": {
                "text": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
              },
              "defaultConfiguration": {
                "level": "note"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-200",
                  "CWE-284",
                  "MASVS-STORAGE-2"
                ],
                "security-severity": "2.0",
                "cwe": [
                  "CWE-200",
                  "CWE-284"
                ],
                "masvs": [
                  "MASVS-STORAGE-2"
                ]
              }
            },
            {
              "id": "APKSCAN-70-bip39_seed",
              "name": "Bip39Seed",
              "shortDescription": {
                "text": "BIP-39 wallet seed phrase"
              },
              "fullDescription": {
                "text": "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."
              },
              "helpUri": "https://apk-scanner.com/finding/bip39_seed",
              "help": {
                "text": "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."
              },
              "defaultConfiguration": {
                "level": "note"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-312",
                  "CWE-798",
                  "MASVS-STORAGE-1",
                  "MASVS-CRYPTO-2"
                ],
                "security-severity": "2.0",
                "cwe": [
                  "CWE-312",
                  "CWE-798"
                ],
                "masvs": [
                  "MASVS-STORAGE-1",
                  "MASVS-CRYPTO-2"
                ]
              }
            },
            {
              "id": "APKSCAN-77-ds_underdeclare",
              "name": "DsUnderdeclare",
              "shortDescription": {
                "text": "Data Safety label omits an observed data category"
              },
              "fullDescription": {
                "text": "Update the Play Data Safety form to declare the observed data category, or remove the capability if the data is not actually collected."
              },
              "helpUri": "https://apk-scanner.com/finding/ds_underdeclare",
              "help": {
                "text": "Update the Play Data Safety form to declare the observed data category, or remove the capability if the data is not actually collected."
              },
              "defaultConfiguration": {
                "level": "note"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-359",
                  "MASVS-PRIVACY-3"
                ],
                "security-severity": "2.0",
                "cwe": [
                  "CWE-359"
                ],
                "masvs": [
                  "MASVS-PRIVACY-3"
                ]
              }
            }
          ]
        }
      },
      "automationDetails": {
        "id": "apk-scanner/com.joistapp.android.joist/2f91d2c8-f339-4815-98b6-4b345d493ccd"
      },
      "invocations": [
        {
          "executionSuccessful": true
        }
      ],
      "results": [
        {
          "ruleId": "APKSCAN-87-basic_auth_header",
          "level": "error",
          "message": {
            "text": "Hardcoded HTTP Basic-auth credentials"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "resources.arsc"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "63d4dae6ff31159a775813f0624c540df6fe7bef0e7c917a77b1f3a20d536ebc"
          },
          "properties": {
            "severity": "high",
            "verified": false,
            "relationship": "gap-confirmed"
          }
        },
        {
          "ruleId": "APKSCAN-1-s3_bucket",
          "level": "note",
          "message": {
            "text": "Amazon S3 bucket reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "classes11.dex"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "6d3265bf2f5e1221c48d93b1c227e7ca5f10732ade5bc66fdfaf8eac1681c80b"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-2-firebase_rtdb",
          "level": "note",
          "message": {
            "text": "Firebase Realtime Database reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "resources.arsc"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "bfde9031f5f8a99a08c822e2d0d0d53990b8ed16c8d5fbf3af4efe8d1f53eacb"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-20-google_api_key",
          "level": "note",
          "message": {
            "text": "Google API key (client-shipped; restriction unverified)"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "classes12.dex"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "0dd7733861247168e71db297ed3192c379054d6c003554989c2cb089e6e18d49"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-20-google_api_key",
          "level": "note",
          "message": {
            "text": "Google API key (client-shipped; restriction unverified)"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "classes3.dex"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "f47be55629ea004aebd62963a70f117452cc7954f4162268735f25ed67941b5e"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-20-google_api_key",
          "level": "note",
          "message": {
            "text": "Google API key (client-shipped; restriction unverified)"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "resources.arsc"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "602876b569edee51be4079ab5da5bca85593d9e84435cdac1298babdb2269360"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-53-firebase_storage",
          "level": "note",
          "message": {
            "text": "Firebase Storage bucket reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "resources.arsc"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "5cef1ead059ae7bd019889bd92a902d1be53156ccfb111c4c2133515e4a0ddd7"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-70-bip39_seed",
          "level": "note",
          "message": {
            "text": "BIP39 wallet seed phrase (12 words, checksum valid) (third-party library artifact, shared across 12 unrelated developers)"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "classes13.dex"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "5348899ede7abc0aeacd200b1aa38955ddb5410803f05b314e4faeab99fb7496"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-confirmed"
          }
        },
        {
          "ruleId": "APKSCAN-77-ds_underdeclare",
          "level": "note",
          "message": {
            "text": "Data Safety label omits Contacts"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "data-safety:Contacts"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "52d6df5eafe80ad7de0275ee425de0bf8d715439e92a9026117bea4d546827d0"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-77-ds_underdeclare",
          "level": "note",
          "message": {
            "text": "Data Safety label omits Location"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "data-safety:Location"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "cacfd47daa7d0aafb7cbd1791f3964ef2850687203797b5e24429c41acdf7290"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        }
      ],
      "properties": {
        "analysis": {
          "issues": [],
          "stages": {
            "pii": "complete",
            "sbom": "complete",
            "signing": "certificate_parsed",
            "strings": "complete",
            "manifest": "complete"
          },
          "status": "complete",
          "grading": {
            "policy": "static-coverage-v1",
            "blockers": [],
            "eligible": true
          },
          "timings_ms": {
            "total": 54658.927,
            "harvest": 11049.96799999999,
            "detectors": 41115.15099999964
          },
          "bytes_total": 237439170,
          "bytes_scanned": 237439170,
          "bytes_skipped": 0,
          "files_processed": 5933,
          "coverage_version": 2,
          "string_encodings": [
            "ascii",
            "utf16le"
          ],
          "signature_validation": "not_performed"
        },
        "provenance": {
          "mode": "static",
          "artifacts": [
            {
              "name": "base.apk",
              "sha256": "9438fea80dc7981784fe06c7fc148f2178e53070025b6c4050a960b4743f2e25"
            },
            {
              "name": "config.arm64_v8a.apk",
              "sha256": "95bffb4f1fe15a157c697610f30e70993005f38bc3fcb912a9c3fd3a3431f487"
            },
            {
              "name": "config.xxhdpi.apk",
              "sha256": "4a9459e159c0243a7f520ef39745c65b62cecd54896971645835067a55efc7ba"
            }
          ],
          "ruleset_sha256": "69544396ce47de08b97fb3d04080662e1cbb38c704bd5aa3d4b7e5489cde22e8"
        },
        "apk_sha256": "9438fea80dc7981784fe06c7fc148f2178e53070025b6c4050a960b4743f2e25",
        "app_id": "com.joistapp.android.joist",
        "app_title": "Joist Invoice & Estimate App",
        "app_version": "3.86.0",
        "scan_id": "2f91d2c8-f339-4815-98b6-4b345d493ccd",
        "scanned_at": "2026-09-29T09:43:24.811Z"
      }
    }
  ]
}