{
  "capsule": {
    "schema": "apk-scanner.proof/v2",
    "issuer": "apk-scanner.com",
    "issued_at": "2026-10-14T13:09:13.912Z",
    "app": {
      "app_id": "com.airbnb.android",
      "title": "Airbnb",
      "version": "26.39"
    },
    "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": 27976.442,
        "harvest": 6741.470999999975,
        "detectors": 19144.010000000075
      },
      "bytes_total": 151022481,
      "bytes_scanned": 151022481,
      "bytes_skipped": 0,
      "files_processed": 4731,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "28cd57b8231a697fe746dd2a7cc883b371845c1c813b9fda116b0319200af9f8"
        },
        {
          "name": "config.arm64_v8a.apk",
          "sha256": "77c77a9e6946c2ded3edc5492c590d591d82888ff36cde94c9b88d11506d2a0c"
        },
        {
          "name": "config.en.apk",
          "sha256": "d8b8513e8a885d2b7e9aa7c645918fd3b5e8a804930a091d79ebae2236425af0"
        },
        {
          "name": "config.xxhdpi.apk",
          "sha256": "b536d8ea1196705259f8947d2a88b2277ed01bdd9059e7b865b7f7db83687459"
        },
        {
          "name": "dynamic_stripe.apk",
          "sha256": "f715d2549cc1d13df9c9b9bd5dbc3642892c4af47ed3ed8c8dcd45a3faf9635b"
        },
        {
          "name": "dynamic_stripe.config.en.apk",
          "sha256": "125e69db24644ebb249c74335c49a13fe15957abb206f3024dfa8212fb1ab837"
        }
      ],
      "ruleset_sha256": "ab3c4fcdbb80449695ea8ed46a12abf272aebe072e8ca1ffa301019c3d559bee"
    },
    "apk_sha256": "28cd57b8231a697fe746dd2a7cc883b371845c1c813b9fda116b0319200af9f8",
    "scan": {
      "scan_id": "4eed5a22-ce60-4e53-a113-15e73a95d531",
      "scanned_at": "2026-09-30T12:23:59.095Z",
      "grade": "A",
      "score": 90
    },
    "apk_signer": {
      "scheme": "v3",
      "subject_o": "Airbnb",
      "subject_cn": "Andrew Vilcsak",
      "sha256": "437b7c9a946c3ce9f249a4308614f542c14d7c7a3bc97789984e0247cd2301fb",
      "not_after": "2148-12-09T11:19:53+00:00"
    },
    "counts": {
      "critical": 0,
      "high": 0,
      "medium": 1,
      "low": 11,
      "info": 1
    },
    "findings": [
      {
        "finding_type": 37,
        "severity": "info",
        "title": "Application data is backup-enabled",
        "redacted_display": "android:allowBackup=\"true\"",
        "fingerprint": "68d134f0bcd98a9559d6dd5275f80a3928e4a6490ac4a0f1bd16f87683bd49f8",
        "verified": false,
        "cwe": [
          "CWE-530",
          "CWE-312"
        ],
        "masvs": [
          "MASVS-STORAGE-1",
          "MASVS-STORAGE-2"
        ],
        "remediation": "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."
      },
      {
        "finding_type": 1,
        "severity": "low",
        "title": "Amazon S3 bucket reference",
        "redacted_display": "https://█████████████.s3.amazonaws.com/███",
        "fingerprint": "ee467f7e35331a12b60375a435c117c76dc2721de39c4a8783b96b7db428b8b4",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 1,
        "severity": "low",
        "title": "Amazon S3 bucket reference",
        "redacted_display": "https://█████████████.s3.amazonaws.com/███",
        "fingerprint": "a3b585ab112c0f1318e2f510b9dda7a646ea088c59ef82e6dcda499835766a5c",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 1,
        "severity": "low",
        "title": "Amazon S3 bucket reference",
        "redacted_display": "https://██████████.s3.amazonaws.com/███",
        "fingerprint": "a6efe390215f807904d55372b260a2ac545195e65d54a0df8441c3370c22c0e7",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 2,
        "severity": "low",
        "title": "Firebase Realtime Database reference",
        "redacted_display": "https://███████████████████████████████████████████████.firebaseio.com/███",
        "fingerprint": "f757f6f0366733b8c3ae2a0ed02ad859e6e23f7b5f73d6ac993b3ebea7cd5909",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 2,
        "severity": "low",
        "title": "Firebase Realtime Database reference",
        "redacted_display": "https://████████████.firebaseio.com/███",
        "fingerprint": "31644dbdfa94f27ca274044c8a79b488d86027fd5f09faa156534729c83e78d0",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 20,
        "severity": "low",
        "title": "Google API key (client-shipped; restriction unverified)",
        "redacted_display": "AIza•••••••• (21–40 chars, redacted)",
        "fingerprint": "11b17c452e21029b3198d2735f8d6514259a48601dd3434d949313b584cc572a",
        "verified": false,
        "cwe": [
          "CWE-798"
        ],
        "masvs": [
          "MASVS-STORAGE-1"
        ],
        "remediation": "Restrict the API key (application + API restrictions in Google Cloud Console); a client-shipped key is public, so restriction is the control."
      },
      {
        "finding_type": 20,
        "severity": "low",
        "title": "Google API key (client-shipped; restriction unverified)",
        "redacted_display": "AIza•••••••• (21–40 chars, redacted)",
        "fingerprint": "d78fb801f2c2e1c41cd02de5ce32a473107ae30156bc38030a8fe67bd4f69d1b",
        "verified": false,
        "cwe": [
          "CWE-798"
        ],
        "masvs": [
          "MASVS-STORAGE-1"
        ],
        "remediation": "Restrict the API key (application + API restrictions in Google Cloud Console); a client-shipped key is public, so restriction is the control."
      },
      {
        "finding_type": 20,
        "severity": "low",
        "title": "Google API key (client-shipped; restriction unverified)",
        "redacted_display": "AIza•••••••• (21–40 chars, redacted)",
        "fingerprint": "639d4761abea832ca8648112c49496b8381107c62a6ce4236456a362e49b9778",
        "verified": false,
        "cwe": [
          "CWE-798"
        ],
        "masvs": [
          "MASVS-STORAGE-1"
        ],
        "remediation": "Restrict the API key (application + API restrictions in Google Cloud Console); a client-shipped key is public, so restriction is the control."
      },
      {
        "finding_type": 20,
        "severity": "low",
        "title": "Google API key (client-shipped; restriction unverified)",
        "redacted_display": "AIza•••••••• (21–40 chars, redacted)",
        "fingerprint": "e9aa43eba2143db7f68bd854795313d2cf86d17a679a1334b27c11f2e7ebe53c",
        "verified": false,
        "cwe": [
          "CWE-798"
        ],
        "masvs": [
          "MASVS-STORAGE-1"
        ],
        "remediation": "Restrict the API key (application + API restrictions in Google Cloud Console); a client-shipped key is public, so restriction is the control."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "████████████",
        "fingerprint": "b0a95eb4c32b5b3e3ed2e0e531394d1105757b091d82aa27275e59cda3b59d0e",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 53,
        "severity": "low",
        "title": "Firebase Storage bucket reference",
        "redacted_display": "████████████",
        "fingerprint": "477e82aa83a29a0fc19b42ba5f80d186b4b5bed65bcc3d8ef92dd9878e6df94a",
        "verified": false,
        "cwe": [
          "CWE-200",
          "CWE-284"
        ],
        "masvs": [
          "MASVS-STORAGE-2"
        ],
        "remediation": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
      },
      {
        "finding_type": 34,
        "severity": "medium",
        "title": "Cleartext (HTTP) traffic permitted",
        "redacted_display": "android:usesCleartextTraffic=\"true\"",
        "fingerprint": "94025ca91177232efea2d52d976e37f967866402c6e01f481a8de610b8e478e7",
        "verified": false,
        "cwe": [
          "CWE-319"
        ],
        "masvs": [
          "MASVS-NETWORK-1"
        ],
        "remediation": "Set android:usesCleartextTraffic=false and/or a networkSecurityConfig that forbids cleartext; serve all endpoints over HTTPS."
      }
    ],
    "live_verification": {
      "verified_count": 0,
      "items": []
    },
    "trackers_count": 8,
    "pii": {
      "sources": 10,
      "identifiers": [
        "Advertising ID (AAID)",
        "Android ID",
        "Device ID / IMEI",
        "Subscriber ID (IMSI)",
        "SIM serial",
        "Hardware MAC address"
      ],
      "destinations": 7
    },
    "sbom": {
      "component_count": 1,
      "vuln_count": 0,
      "components": [
        {
          "name": "com.squareup.okhttp3:okhttp",
          "version": "5.3.2",
          "cves": []
        }
      ]
    },
    "control_coverage": {
      "schema": "apk-scanner.coverage/v1",
      "framework": "OWASP MASVS v2",
      "disclaimer": "Static, metadata-only analysis. Each control is scored evidence-for / gap-signal / requires-manual-testing. This is evidence toward a MASVS assessment, NOT a certification — apk-scanner.com is not an authorized assessment lab. Absence of a static finding does not prove a control passes.",
      "rows": [
        {
          "control": "MASVS-STORAGE-1",
          "category": "STORAGE",
          "title": "The app securely stores sensitive data.",
          "static": "partial",
          "status": "gap-detected",
          "count": 5,
          "findings": [
            {
              "finding_type": 37,
              "key": "allow_backup",
              "title": "Application data is backup-enabled",
              "severity": "info",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                530,
                312
              ]
            },
            {
              "finding_type": 20,
              "key": "google_api_key",
              "title": "Google API key (client-shipped; restriction unverified)",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                798
              ]
            },
            {
              "finding_type": 20,
              "key": "google_api_key",
              "title": "Google API key (client-shipped; restriction unverified)",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                798
              ]
            },
            {
              "finding_type": 20,
              "key": "google_api_key",
              "title": "Google API key (client-shipped; restriction unverified)",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                798
              ]
            },
            {
              "finding_type": 20,
              "key": "google_api_key",
              "title": "Google API key (client-shipped; restriction unverified)",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                798
              ]
            }
          ]
        },
        {
          "control": "MASVS-STORAGE-2",
          "category": "STORAGE",
          "title": "The app prevents leakage of sensitive data.",
          "static": "partial",
          "status": "gap-detected",
          "count": 8,
          "findings": [
            {
              "finding_type": 37,
              "key": "allow_backup",
              "title": "Application data is backup-enabled",
              "severity": "info",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                530,
                312
              ]
            },
            {
              "finding_type": 1,
              "key": "s3_bucket",
              "title": "Amazon S3 bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 1,
              "key": "s3_bucket",
              "title": "Amazon S3 bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 1,
              "key": "s3_bucket",
              "title": "Amazon S3 bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 2,
              "key": "firebase_rtdb",
              "title": "Firebase Realtime Database reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 2,
              "key": "firebase_rtdb",
              "title": "Firebase Realtime Database reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            },
            {
              "finding_type": 53,
              "key": "firebase_storage",
              "title": "Firebase Storage bucket reference",
              "severity": "low",
              "verified": false,
              "relationship": "gap-signal",
              "cwe": [
                200,
                284
              ]
            }
          ]
        },
        {
          "control": "MASVS-CRYPTO-1",
          "category": "CRYPTO",
          "title": "The app employs current strong cryptography and uses it according to best practices.",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CRYPTO-2",
          "category": "CRYPTO",
          "title": "The app performs key management according to best practices.",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-AUTH-1",
          "category": "AUTH",
          "title": "The app uses secure authentication and authorization protocols.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-AUTH-2",
          "category": "AUTH",
          "title": "The app performs local authentication securely.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-AUTH-3",
          "category": "AUTH",
          "title": "The app secures sensitive operations with additional authentication.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-NETWORK-1",
          "category": "NETWORK",
          "title": "The app secures all network traffic according to current best practices.",
          "static": "yes",
          "status": "gap-detected",
          "count": 1,
          "findings": [
            {
              "finding_type": 34,
              "key": "cleartext_traffic",
              "title": "Cleartext (HTTP) traffic permitted",
              "severity": "medium",
              "verified": false,
              "relationship": "gap-confirmed",
              "cwe": [
                319
              ]
            }
          ]
        },
        {
          "control": "MASVS-NETWORK-2",
          "category": "NETWORK",
          "title": "The app verifies the identity of the remote endpoint (e.g. certificate pinning).",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PLATFORM-1",
          "category": "PLATFORM",
          "title": "The app uses IPC mechanisms securely.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PLATFORM-2",
          "category": "PLATFORM",
          "title": "The app uses WebViews securely.",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PLATFORM-3",
          "category": "PLATFORM",
          "title": "The app uses the user interface securely.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CODE-1",
          "category": "CODE",
          "title": "The app requires an up-to-date platform version.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CODE-2",
          "category": "CODE",
          "title": "The app has a mechanism for enforcing updates.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CODE-3",
          "category": "CODE",
          "title": "The app only uses software components without known vulnerabilities.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-CODE-4",
          "category": "CODE",
          "title": "The app validates and sanitizes all untrusted inputs and follows secure-coding practice.",
          "static": "partial",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-RESILIENCE-1",
          "category": "RESILIENCE",
          "title": "The app validates the integrity of the platform.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-RESILIENCE-2",
          "category": "RESILIENCE",
          "title": "The app implements anti-tampering mechanisms.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-RESILIENCE-3",
          "category": "RESILIENCE",
          "title": "The app implements anti-static-analysis mechanisms.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-RESILIENCE-4",
          "category": "RESILIENCE",
          "title": "The app implements anti-dynamic-analysis techniques.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PRIVACY-1",
          "category": "PRIVACY",
          "title": "The app minimizes access to sensitive data and resources.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PRIVACY-2",
          "category": "PRIVACY",
          "title": "The app prevents identification of the user.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PRIVACY-3",
          "category": "PRIVACY",
          "title": "The app is transparent about data collection and usage.",
          "static": "yes",
          "status": "no-static-findings",
          "count": 0,
          "findings": []
        },
        {
          "control": "MASVS-PRIVACY-4",
          "category": "PRIVACY",
          "title": "The app offers user control over their data.",
          "static": "manual",
          "status": "requires-manual-testing",
          "count": 0,
          "findings": []
        }
      ],
      "categories": [
        {
          "category": "STORAGE",
          "controls": 2,
          "gaps": 2,
          "verified": 0,
          "manual": 0
        },
        {
          "category": "CRYPTO",
          "controls": 2,
          "gaps": 0,
          "verified": 0,
          "manual": 0
        },
        {
          "category": "AUTH",
          "controls": 3,
          "gaps": 0,
          "verified": 0,
          "manual": 3
        },
        {
          "category": "NETWORK",
          "controls": 2,
          "gaps": 1,
          "verified": 0,
          "manual": 0
        },
        {
          "category": "PLATFORM",
          "controls": 3,
          "gaps": 0,
          "verified": 0,
          "manual": 1
        },
        {
          "category": "CODE",
          "controls": 4,
          "gaps": 0,
          "verified": 0,
          "manual": 1
        },
        {
          "category": "RESILIENCE",
          "controls": 4,
          "gaps": 0,
          "verified": 0,
          "manual": 4
        },
        {
          "category": "PRIVACY",
          "controls": 4,
          "gaps": 0,
          "verified": 0,
          "manual": 1
        }
      ]
    }
  },
  "proof": {
    "alg": "ed25519",
    "key_id": "IE6LeZNX4dAAPLGr",
    "digest_sha256": "9582fede9fef2822e04ae2d893175072f43a6755ecb7cfab94126f0a9b2d4b70",
    "signature": "fT6z29di4020PLEh80aVnXBsQFe587lhM4RXbB1v/rAIoEiBncrm9dHqwZI4sBNvF8XF/9z19zrt3lHRV00HAg==",
    "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAwH2fYdYB5nD0CQslDtG3FgafcJBoOX2OGoT80Woksrk=\n-----END PUBLIC KEY-----\n",
    "verify_url": "https://apk-scanner.com/verify"
  }
}