{
  "$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-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-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-3-gcs_bucket",
              "name": "GcsBucket",
              "shortDescription": {
                "text": "Google Cloud Storage 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/gcs_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-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-60-bg_location",
              "name": "BgLocation",
              "shortDescription": {
                "text": "Background location access"
              },
              "fullDescription": {
                "text": "Justify background location; request foreground-only where possible and disclose the use in the Play Data Safety form."
              },
              "helpUri": "https://apk-scanner.com/finding/bg_location",
              "help": {
                "text": "Justify background location; request foreground-only where possible and disclose the use in the Play Data Safety form."
              },
              "defaultConfiguration": {
                "level": "note"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-359",
                  "MASVS-PRIVACY-1"
                ],
                "security-severity": "2.0",
                "cwe": [
                  "CWE-359"
                ],
                "masvs": [
                  "MASVS-PRIVACY-1"
                ]
              }
            },
            {
              "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.citymapper.app.release/07306674-8771-4203-93b0-67bdebb42530"
      },
      "invocations": [
        {
          "executionSuccessful": true
        }
      ],
      "results": [
        {
          "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-1-s3_bucket",
          "level": "note",
          "message": {
            "text": "Amazon S3 bucket reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "assets/didomi_iab_config_v3.json"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "e6e8931de1ec530e9fd8d3056a3b315290f866d0a9e7c2bd62392e82f2e546f5"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-1-s3_bucket",
          "level": "note",
          "message": {
            "text": "Amazon S3 bucket reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "assets/didomi_iab_config_v3.json"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "0ee77fd7c22cf293ebf5d420954bc6dc10f7fd76a5beedc4fa53b5147c7bd2de"
          },
          "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": "64a89d34688d697baa5f7751d62132fd817258480ada7a1ffa4dfea2bf0c4560"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-3-gcs_bucket",
          "level": "note",
          "message": {
            "text": "Google Cloud Storage reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "classes.dex"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "1dc2a5732c13e3cd8817980ca586e3d43c335ba8a82e79fc44e1a027b8002518"
          },
          "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": "classes4.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": "resources.arsc"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "dfc5186b6eca96a6c765b106f3bc0d9cc3d47fed53913c30e399a7d051611fc7"
          },
          "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": "fcfb67648b135e08b3e07807e3b30390edc6bc46757ac0deef29b15e2e7928c5"
          },
          "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": "google/api/backend.proto"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "b6e2cb8eb4bf3d0a7bcb1c02e7aaa6b80181f3fefcd2655ab608c7c76f9d6977"
          },
          "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": "google/api/endpoint.proto"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "6da605c01a32d6178ae1e6876876e3de02277efaeb0bf30b781056b6efdcc7a8"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-60-bg_location",
          "level": "note",
          "message": {
            "text": "Background location access with advertising SDKs present"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "pii:bgloc"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "0c010d775be9542eee48043eb496c06888f9b8e8fcdf3af66a6b84e99192f6ce"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-confirmed"
          }
        },
        {
          "ruleId": "APKSCAN-77-ds_underdeclare",
          "level": "note",
          "message": {
            "text": "Data Safety label omits Calendar"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "data-safety:Calendar"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "2a94ef25c6a64a2fcc33bcb8d2ada6376b418ddfa745771aa213e568d5afb277"
          },
          "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": 18404.075,
            "harvest": 4219.516000000002,
            "detectors": 11933.239000000143
          },
          "bytes_total": 73010053,
          "bytes_scanned": 73010053,
          "bytes_skipped": 0,
          "files_processed": 5554,
          "coverage_version": 2,
          "string_encodings": [
            "ascii",
            "utf16le"
          ],
          "signature_validation": "not_performed"
        },
        "provenance": {
          "mode": "static",
          "artifacts": [
            {
              "name": "base.apk",
              "sha256": "52ec19e7fdd084ef3ad95927479214c0e458d57a8fcc72e1c8f8f3556c5c8f0f"
            },
            {
              "name": "config.arm64_v8a.apk",
              "sha256": "98705d08b301c687f9e2b1ded42c92195bd0caaa8134944cc5d41fbe6165ac5b"
            },
            {
              "name": "config.en.apk",
              "sha256": "7808b741015624ed598453df1033d14d83e2d70f4586ef35961d2ac686f42c74"
            },
            {
              "name": "config.xxhdpi.apk",
              "sha256": "48780aba8f91a7bb1d6004353cb259cf25b0ea074c8354cf5f20d6ca4cfa46ef"
            }
          ],
          "ruleset_sha256": "3bb79cc3710b0fb021feaa322578f4cffe08396a97c51b34df092b5a05891d5e"
        },
        "apk_sha256": "52ec19e7fdd084ef3ad95927479214c0e458d57a8fcc72e1c8f8f3556c5c8f0f",
        "app_id": "com.citymapper.app.release",
        "app_title": "Citymapper",
        "app_version": "11.59.3",
        "scan_id": "07306674-8771-4203-93b0-67bdebb42530",
        "scanned_at": "2026-10-09T01:08:14.962Z"
      }
    }
  ]
}