{
  "$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-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-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-34-cleartext_traffic",
              "name": "CleartextTraffic",
              "shortDescription": {
                "text": "Cleartext (HTTP) traffic permitted"
              },
              "fullDescription": {
                "text": "Set android:usesCleartextTraffic=false and/or a networkSecurityConfig that forbids cleartext; serve all endpoints over HTTPS."
              },
              "helpUri": "https://apk-scanner.com/finding/cleartext_traffic",
              "help": {
                "text": "Set android:usesCleartextTraffic=false and/or a networkSecurityConfig that forbids cleartext; serve all endpoints over HTTPS."
              },
              "defaultConfiguration": {
                "level": "warning"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-319",
                  "MASVS-NETWORK-1"
                ],
                "security-severity": "5.0",
                "cwe": [
                  "CWE-319"
                ],
                "masvs": [
                  "MASVS-NETWORK-1"
                ]
              }
            }
          ]
        }
      },
      "automationDetails": {
        "id": "apk-scanner/flora.period.tracker.fertility.female.health.calendar.ai.app/8a051798-d55e-480a-bfe9-0bb5662c8c2f"
      },
      "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": "assets/flutter_assets/.env.staging"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "3c04df37490d7bcc70da915e504d465dc34131b3b1930ee2c10b94cff7c63260"
          },
          "properties": {
            "severity": "critical",
            "verified": true,
            "relationship": "verified-exposure"
          }
        },
        {
          "ruleId": "APKSCAN-2-firebase_rtdb",
          "level": "note",
          "message": {
            "text": "Firebase Realtime Database reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "assets/flutter_assets/.env.prod"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "5f15730efe7b14368e985db89d0325a4a50548a320f1dec37b7a52b68e822b0e"
          },
          "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": "assets/flutter_assets/.env.staging"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "2103825f3b25afa0843bb3bcb352d6486dac17fb4d8fa688a3f450418699ada8"
          },
          "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": "assets/flutter_assets/.env.staging"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "520603fee2bf2b8bdb55f9506b0879a2edc6fc44eea4f629e08ffeb34bc52158"
          },
          "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": "assets/flutter_assets/.env.prod"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "7a11a64d4c4ebe72fefe3276297ef6e860b4af12ce5bca6ed5018b5cb957d634"
          },
          "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": "7ef3703e08a7a41c22b784b8e3845de373eb2971b345a835ae401a481567e460"
          },
          "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/flutter_assets/.env.staging"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "7d26d42aacd3942f5de94f79715f45dd695ab4f735f4e2980e8c17c7a3330ad6"
          },
          "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/flutter_assets/.env.staging"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "12aef59d3a16ef35b26b2fe1f1d1137645742b15ab480a3a0857ee37b1efeeca"
          },
          "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/flutter_assets/.env.prod"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "c4374a803e1eadff67ddcc53f4b5d60085bee8c4ec7a0363213b3ec06e5306f1"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "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": "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": "e05265b659350d0508c799241174ba958e77efe2b9c062f226a17568599de901"
          },
          "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-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-34-cleartext_traffic",
          "level": "warning",
          "message": {
            "text": "Cleartext (HTTP) traffic permitted"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "AndroidManifest.xml"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "94025ca91177232efea2d52d976e37f967866402c6e01f481a8de610b8e478e7"
          },
          "properties": {
            "severity": "medium",
            "verified": false,
            "relationship": "gap-confirmed"
          }
        }
      ],
      "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": 17659.439,
            "harvest": 6114.96,
            "detectors": 10453.352000000024
          },
          "bytes_total": 129784078,
          "bytes_scanned": 129784078,
          "bytes_skipped": 0,
          "files_processed": 1838,
          "coverage_version": 2,
          "string_encodings": [
            "ascii",
            "utf16le"
          ],
          "signature_validation": "not_performed"
        },
        "provenance": {
          "mode": "static",
          "artifacts": [
            {
              "name": "base.apk",
              "sha256": "60ba0d97f5ce56cc5969b81bc2144bff86a06e498c112bc7e8daecbdd4ab8a52"
            },
            {
              "name": "config.arm64_v8a.apk",
              "sha256": "f744115e9c339584b28fd92bea542a4630dbb54359f3061abda580a7b172ebd5"
            },
            {
              "name": "config.en.apk",
              "sha256": "6eb8b83c6648897eb4633725ff515f2db7b1bc37723760c075f24eaf2111d552"
            },
            {
              "name": "config.xxhdpi.apk",
              "sha256": "2b837c000edb7a1d471227c5a1ec046986f660b1ad0ea3d590ff1efe0340cc84"
            }
          ],
          "ruleset_sha256": "69544396ce47de08b97fb3d04080662e1cbb38c704bd5aa3d4b7e5489cde22e8"
        },
        "apk_sha256": "60ba0d97f5ce56cc5969b81bc2144bff86a06e498c112bc7e8daecbdd4ab8a52",
        "app_id": "flora.period.tracker.fertility.female.health.calendar.ai.app",
        "app_title": "Moonly - Track Period & Cycle",
        "app_version": "4.25.0",
        "scan_id": "8a051798-d55e-480a-bfe9-0bb5662c8c2f",
        "scanned_at": "2026-09-29T23:38:19.590Z"
      }
    }
  ]
}