{
  "$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-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": "error"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-200",
                  "CWE-284",
                  "MASVS-STORAGE-2"
                ],
                "security-severity": "9.5",
                "cwe": [
                  "CWE-200",
                  "CWE-284"
                ],
                "masvs": [
                  "MASVS-STORAGE-2"
                ]
              }
            },
            {
              "id": "APKSCAN-37-allow_backup",
              "name": "AllowBackup",
              "shortDescription": {
                "text": "android:allowBackup=\"true\""
              },
              "fullDescription": {
                "text": "Backup is on by default on Android; this manifest states it explicitly. If the app stores sensitive local data, define dataExtractionRules/fullBackupContent to exclude it, or set android:allowBackup=false."
              },
              "helpUri": "https://apk-scanner.com/finding/allow_backup",
              "help": {
                "text": "Backup is on by default on Android; this manifest states it explicitly. If the app stores sensitive local data, define dataExtractionRules/fullBackupContent to exclude it, or set android:allowBackup=false."
              },
              "defaultConfiguration": {
                "level": "note"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-530",
                  "CWE-312",
                  "MASVS-STORAGE-1",
                  "MASVS-STORAGE-2"
                ],
                "security-severity": "2.0",
                "cwe": [
                  "CWE-530",
                  "CWE-312"
                ],
                "masvs": [
                  "MASVS-STORAGE-1",
                  "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"
                ]
              }
            }
          ]
        }
      },
      "automationDetails": {
        "id": "apk-scanner/com.altlabsinc.hfxparkingban/c843d09d-7545-4f96-a882-17b24eec8e2a"
      },
      "invocations": [
        {
          "executionSuccessful": true
        }
      ],
      "results": [
        {
          "ruleId": "APKSCAN-53-firebase_storage",
          "level": "error",
          "message": {
            "text": "Firebase Storage bucket reference — confirmed publicly readable [live-verified]"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "resources.arsc"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "ee3e4671f8dd4b0c16907dd25070c77ea08c2cf4f8b0b0361b4b84c84b1e7dec"
          },
          "properties": {
            "severity": "critical",
            "verified": true,
            "relationship": "verified-exposure"
          }
        },
        {
          "ruleId": "APKSCAN-37-allow_backup",
          "level": "note",
          "message": {
            "text": "Application data is backup-enabled"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "AndroidManifest.xml"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "68d134f0bcd98a9559d6dd5275f80a3928e4a6490ac4a0f1bd16f87683bd49f8"
          },
          "properties": {
            "severity": "info",
            "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": "377f47553ca13621e7c2d399932ffbec814e5ae8871c7083ba490fe31593ac06"
          },
          "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": "assets/public/main-PIIQJO7K.js"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "aa050bdee6e21e8f1e75a58d67fd2095cd18010f32d76cf99c9cea82091db1e9"
          },
          "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": "assets/public/main-PIIQJO7K.js"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "9056f986b14f0a723cc156bb5dcc1d166fef5f12fc30f58aadd5b9872dc47b03"
          },
          "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": "assets/public/main-PIIQJO7K.js"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "1f6c5b5eb59cbba0b79465d51a8ce0e7fb059919bff025ad78a57f2c9728dd08"
          },
          "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": "assets/public/index.html"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "5f75a707b8b6fac71c212ffc5cc35597f979a0cef65493fd30f6bb2c1b419543"
          },
          "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": "29bb383a1c975ad1d27e9aaa9f0cc229a25cbb09d9b720e49cbdb3a2bee83048"
          },
          "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": 8783.645,
            "harvest": 1531.745,
            "detectors": 6824.907
          },
          "bytes_total": 30881007,
          "bytes_scanned": 30881007,
          "bytes_skipped": 0,
          "files_processed": 717,
          "coverage_version": 2,
          "string_encodings": [
            "ascii",
            "utf16le"
          ],
          "signature_validation": "not_performed"
        },
        "provenance": {
          "mode": "static",
          "artifacts": [
            {
              "name": "base.apk",
              "sha256": "39d87412c8e69822ecd55d7e9c2a149bd08c41b67e58f9ca7703ace355cece96"
            },
            {
              "name": "config.arm64_v8a.apk",
              "sha256": "81926a5e2d5588117c8f710ce9b622c89b57817b13be601f1c3a14680cfb70c1"
            },
            {
              "name": "config.en.apk",
              "sha256": "481a54720d2d57d5df01660ea05f5dc779c09fd37d7be0d5e258e67c7283aac8"
            },
            {
              "name": "config.es.apk",
              "sha256": "8c90a8d36b7b3a068ed0765b6b575888bb46e1ea84c010fe29342ecc802827b2"
            },
            {
              "name": "config.xxhdpi.apk",
              "sha256": "57915acd91b17a0b0d23cd105fe493a6f6bd965d4a01646d2b7eab82c05303ba"
            }
          ],
          "ruleset_sha256": "3bb79cc3710b0fb021feaa322578f4cffe08396a97c51b34df092b5a05891d5e"
        },
        "apk_sha256": "39d87412c8e69822ecd55d7e9c2a149bd08c41b67e58f9ca7703ace355cece96",
        "app_id": "com.altlabsinc.hfxparkingban",
        "app_title": "Halifax Weather & Parking Ban",
        "app_version": "2026.02.02",
        "scan_id": "c843d09d-7545-4f96-a882-17b24eec8e2a",
        "scanned_at": "2026-10-07T13:13:19.379Z"
      }
    }
  ]
}