Moderate Risk

Threat level

com.affirm.central

Affirm

Analyzed on 2021-09-01T13:54:14.868440

13

permissions

15

activities

31

services

15

receivers

67

domains

File sums

MD5 070f3cb850640bcce882016e02554889
SHA1 7afe13eba60a9a7f43e8de9955384ebdbb7b8b0d
SHA256 9c6e21aed796994f549ecc018ecd064e07d16a2b337ae47ac4e15726b37da586
Size 14.15MB

APKiD

Information computed with APKiD.

/tmp/tmpfjf4enu_!classes.dex
anti_vm
  • Build.FINGERPRINT check
  • Build.MODEL check
  • Build.MANUFACTURER check
  • Build.PRODUCT check
  • possible Build.SERIAL check
  • SIM operator check
  • network operator name check
compiler
  • r8
/tmp/tmpfjf4enu_!classes2.dex
anti_vm
  • Build.FINGERPRINT check
  • Build.MODEL check
  • Build.MANUFACTURER check
  • Build.PRODUCT check
  • Build.HARDWARE check
  • Build.TAGS check
  • SIM operator check
  • network operator name check
anti_debug
  • Debug.isDebuggerConnected() check
compiler
  • r8 without marker (suspicious)
/tmp/tmpfjf4enu_!classes3.dex
anti_vm
  • Build.FINGERPRINT check
  • Build.MODEL check
  • Build.MANUFACTURER check
  • Build.PRODUCT check
  • possible Build.SERIAL check
  • network operator name check
  • device ID check
compiler
  • r8 without marker (suspicious)

SSdeep

Information computed with ssdeep.

APK file 393216:zIaYIGsGOEQgG1oqKhSNnniKekp9ZxEJnPQyYpG3Y8Q:M+Gs4Q1iEiuXZXyo8Q
Manifest 768:aKazI/VrKFlrLRVj8cKE6XiciSbqUQtoTmOe95etyOQTJpcQpkCMKfz+TtrTFu0u:…
classes.dex 98304:mAMt/MWmwfrllegsaI6wbMJur7dAPN0tdrjl:hMt/PHYazkk0tdrp
classes2.dex 98304:O57TV07pzKprgifZ/1xnHKTAfIC8e3xLSVEHQyrc:Odx0zKWifZdRHXfJLSVEHQ…
classes3.dex 49152:y3JANX7VTQDBSdO9FUKdCu+chMg1VETQo4Yhs+5r4bqdDVnPt8xsPo2tFFryMK2…

Dexofuzzy

Information computed with Dexofuzzy.

APK file 12288:WDmU0KHZjBXF5DFwjC5TplxP6LJ/YYGVIi3mIvBRVibGhQs:qd0KR9ujSo+YQIi…
classes.dex 6144:WZuKnuVU0P6SEeGHZjBRtkVwFXp4w7n5o:WDmU0KHZjBXF5DFo
classes2.dex 3072:6pk98YLI+n6tq7GbvM2nSiAqgEHHqO0whdQ1JaXZ/AH+P6lIy5ZobRWjZAOXBhvg…
classes3.dex 6144:nVIXSPfmIvoORTUEev2i75xdZwE0hjM7xvgcYg2cSc1T7AXHUtu:nVIi3mIvBRVi…

APK details

Information computed with AndroGuard and Pithus.

Package com.affirm.central
App name Affirm
Version name 3.107.2
Version code 485
SDK 23 - 30
UAID cc3ed471ef6ff31600189ef76232800d8f3c32ac
Signature Signature V1 Signature V2
Frosting Not frosted
Blocks found within V2 signature:
  • 0x7109871a: Unknown
  • 0x504b4453: Dependency metadata
  • 0x42726577: Verity padding

Certificate details

Information computed with AndroGuard.

MD5 4a12668f8aa100dd247627f548763bd5
SHA1 3a2b05fb03a3e6874b448ab7e4e03c9f09db7250
SHA256 79468a0863e510c2c107cc486851b99b857419296af056f8bb1fb4fd905e8413
Issuer Organization: Affirm, Locality: San Francisco, State/Province: California, Country: 1
Not before 2016-05-26T22:32:02+00:00
Not after 2041-05-20T22:32:02+00:00

File Analysis

Information computed with MobSF.

Findings Files
Certificate/Key files hardcoded inside the app. assets/DigiCertHighAssuranceEVRootCA.crt
assets/entrust_g2_ca.cer
okhttp3/internal/publicsuffix/NOTICE

Manifest analysis

Information computed with MobSF.

Low App has a Network Security Configuration[android:networkSecurityConfig=@xml/network_security_config]
The Network Security Configuration feature lets apps customize their network security settings in a safe, declarative configuration file without modifying app code. These settings can be configured for specific domains and for a specific app.
High Activity (com.plaid.link.internal.LinkRedirectActivity) is not Protected.An intent-filter exists.
An Activity is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. The presence of intent-filter indicates that the Activity is explicitly exported.
High Activity (com.fillr.embedded.profile.FEMainActivity) is not Protected.An intent-filter exists.
An Activity is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. The presence of intent-filter indicates that the Activity is explicitly exported.
High Service (androidx.work.impl.background.systemjob.SystemJobService) is Protected by a permission, but the protection level of the permission should be checked.
Permission: android.permission.BIND_JOB_SERVICE [android:exported=true]
A Service is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.
High Broadcast Receiver (androidx.work.impl.diagnostics.DiagnosticsReceiver) is Protected by a permission, but the protection level of the permission should be checked.
Permission: android.permission.DUMP [android:exported=true]
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.
High Service (com.google.android.gms.auth.api.signin.RevocationBoundService) is Protected by a permission, but the protection level of the permission should be checked.
Permission: com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION [android:exported=true]
A Service is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.
High Broadcast Receiver (com.google.firebase.iid.FirebaseInstanceIdReceiver) is Protected by a permission, but the protection level of the permission should be checked.
Permission: com.google.android.c2dm.permission.SEND [android:exported=true]
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.
High Service (com.google.android.play.core.assetpacks.AssetPackExtractionService) is not Protected. [android:exported=true]
A Service is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device.

Browsable activities

Information computed with MobSF.

com.affirm.central.RootActivity

Hosts: affirm.app.link affirm.test-app.link @string/SHORT_BASE_URL

Schemes: affirm:// https://

com.plaid.link.internal.LinkRedirectActivity

Hosts: redirect

Schemes: plaid://

Main Activity

Information computed with AndroGuard.

['com.affirm.central.RootActivity', 'com.plaid.link.internal.LinkRedirectActivity', 'com.plaid.link.internal.LinkActivity', 'com.onfido.android.sdk.capture.ui.OnfidoActivity', 'com.onfido.android.sdk.capture.ui.camera.CaptureActivity', 'com.fillr.embedded.browsersdk.activity.FESDKMainActivity', 'com.fillr.embedded.profile.FEMainActivity', 'com.salesforce.marketingcloud.messages.iam.IamModalActivity', 'com.salesforce.marketingcloud.messages.iam.IamBannerActivity', 'com.salesforce.marketingcloud.messages.iam.IamFullscreenActivity', 'com.salesforce.marketingcloud.messages.iam.IamFullImageFillActivity', 'com.google.android.gms.auth.api.signin.internal.SignInHubActivity', 'com.google.android.gms.common.api.GoogleApiActivity', 'com.google.android.play.core.missingsplits.PlayCoreMissingSplitsActivity', 'com.google.android.play.core.common.PlayCoreDialogWrapperActivity']

Activities

Information computed with AndroGuard.

com.affirm.central.RootActivity
com.plaid.link.internal.LinkRedirectActivity
com.plaid.link.internal.LinkActivity
com.onfido.android.sdk.capture.ui.OnfidoActivity
com.onfido.android.sdk.capture.ui.camera.CaptureActivity
com.fillr.embedded.browsersdk.activity.FESDKMainActivity
com.fillr.embedded.profile.FEMainActivity
com.salesforce.marketingcloud.messages.iam.IamModalActivity
com.salesforce.marketingcloud.messages.iam.IamBannerActivity
com.salesforce.marketingcloud.messages.iam.IamFullscreenActivity
com.salesforce.marketingcloud.messages.iam.IamFullImageFillActivity
com.google.android.gms.auth.api.signin.internal.SignInHubActivity
com.google.android.gms.common.api.GoogleApiActivity
com.google.android.play.core.missingsplits.PlayCoreMissingSplitsActivity
com.google.android.play.core.common.PlayCoreDialogWrapperActivity

Receivers

Information computed with AndroGuard.

com.affirm.central.broadcast.ShareBroadcast
com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver
androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy
androidx.work.impl.background.systemalarm.RescheduleReceiver
androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver
androidx.work.impl.diagnostics.DiagnosticsReceiver
com.salesforce.marketingcloud.location.LocationReceiver
com.salesforce.marketingcloud.MCReceiver
com.google.firebase.iid.FirebaseInstanceIdReceiver
com.google.android.gms.measurement.AppMeasurementReceiver
com.facebook.CurrentAccessTokenExpirationBroadcastReceiver

Services

Information computed with AndroGuard.

com.affirm.central.backgroundservice.TrackingRetryService
com.affirm.central.backgroundservice.SendMessagingTokenService
com.affirm.central.backgroundservice.GuaranteeBackgroundRefreshService
com.affirm.central.backgroundservice.AffirmMessagingService
com.google.mlkit.common.internal.MlKitComponentDiscoveryService
com.google.firebase.components.ComponentDiscoveryService
com.google.firebase.messaging.FirebaseMessagingService
com.google.android.datatransport.runtime.backends.TransportBackendDiscovery
com.google.android.datatransport.runtime.scheduling.jobscheduling.JobInfoSchedulerService
com.fillr.service.DownloadSchemaService
com.fillr.service.UserRegistrationService
com.fillr.service.AddressMappingService
com.fillr.service.AddressImportService
com.fillr.service.FeatureFlagsService
com.fillr.service.PerformanceStatsService
com.fillr.service.PageEventService
com.fillr.service.AffiliateLinkService
com.fillr.service.CaptureFieldsMappingService
com.fillr.service.HeadlessFillMappingService
androidx.work.impl.background.systemalarm.SystemAlarmService
androidx.work.impl.background.systemjob.SystemJobService
androidx.work.impl.foreground.SystemForegroundService
com.salesforce.marketingcloud.MCService
com.salesforce.marketingcloud.NotificationOpenedService
com.salesforce.marketingcloud.messages.push.MCFirebaseMessagingService
com.google.android.gms.auth.api.signin.RevocationBoundService
com.google.android.gms.measurement.AppMeasurementService
com.google.android.gms.measurement.AppMeasurementJobService
androidx.room.MultiInstanceInvalidationService
com.google.android.play.core.assetpacks.AssetPackExtractionService
com.google.android.play.core.assetpacks.ExtractionForegroundService

NIAP analysis

Information computed with MobSF.

FCS_RBG_EXT.1.1 The application implement DRBG functionality for its cryptographic operations.
Random Bit Generation Services
FCS_STO_EXT.1.1 The application does not store any credentials to non-volatile memory.
Storage of Credentials
FCS_CKM_EXT.1.1 The application implement asymmetric key generation.
Cryptographic Key Generation Services
FDP_DEC_EXT.1.1 The application has access to ['network connectivity', 'microphone', 'camera'].
Access to Platform Resources
FDP_DEC_EXT.1.2 The application has access to no sensitive information repositories.
Access to Platform Resources
FDP_NET_EXT.1.1 The application has user/application initiated network communications.
Network Communications
FDP_DAR_EXT.1.1 The application implement functionality to encrypt sensitive data in non-volatile memory.
Encryption Of Sensitive Application Data
FMT_MEC_EXT.1.1 The application invoke the mechanisms recommended by the platform vendor for storing and setting configuration options.
Supported Configuration Mechanism
FTP_DIT_EXT.1.1 The application does encrypt some transmitted data with HTTPS/TLS/SSH between itself and another trusted IT product.
Protection of Data in Transit
FCS_RBG_EXT.2.1
FCS_RBG_EXT.2.2
The application perform all deterministic random bit generation (DRBG) services in accordance with NIST Special Publication 800-90A using Hash_DRBG. The deterministic RBG is seeded by an entropy source that accumulates entropy from a platform-based DRBG and a software-based noise source, with a minimum of 256 bits of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
Random Bit Generation from Application
FCS_CKM.1.1(1) The application generate asymmetric cryptographic keys not in accordance with FCS_CKM.1.1(1) using key generation algorithm RSA schemes and cryptographic key sizes of 1024-bit or lower.
Cryptographic Asymmetric Key Generation
FCS_CKM.1.1(3)
FCS_CKM.1.2(3)
A password/passphrase shall perform [Password-based Key Derivation Functions] in accordance with a specified cryptographic algorithm..
Password Conditioning
FCS_COP.1.1(1) The application perform encryption/decryption not in accordance with FCS_COP.1.1(1), AES-ECB mode is being used.
Cryptographic Operation - Encryption/Decryption
FCS_COP.1.1(2) The application perform cryptographic hashing services not in accordance with FCS_COP.1.1(2) and uses the cryptographic algorithm RC2/RC4/MD4/MD5.
Cryptographic Operation - Hashing
FCS_COP.1.1(3) The application perform cryptographic signature services (generation and verification) in accordance with a specified cryptographic algorithm RSA schemes using cryptographic key sizes of 2048-bit or greater.
Cryptographic Operation - Signing
FCS_COP.1.1(4) The application perform keyed-hash message authentication with cryptographic algorithm ['HMAC-SHA-256'] .
Cryptographic Operation - Keyed-Hash Message Authentication
FCS_HTTPS_EXT.1.1 The application implement the HTTPS protocol that complies with RFC 2818.
HTTPS Protocol
FCS_HTTPS_EXT.1.2 The application implement HTTPS using TLS.
HTTPS Protocol
FCS_HTTPS_EXT.1.3 The application notify the user and not establish the connection or request application authorization to establish the connection if the peer certificate is deemed invalid.
HTTPS Protocol
FIA_X509_EXT.2.1 The application use X.509v3 certificates as defined by RFC 5280 to support authentication for HTTPS , TLS.
X.509 Certificate Authentication
FPT_TUD_EXT.2.1 The application shall be distributed using the format of the platform-supported package manager.
Integrity for Installation and Update
FCS_CKM.1.1(2) The application shall generate symmetric cryptographic keys using a Random Bit Generator as specified in FCS_RBG_EXT.1 and specified cryptographic key sizes 128 bit or 256 bit.
Cryptographic Symmetric Key Generation

Code analysis

Information computed with MobSF.

High
CVSS:5.9
SHA-1 is a weak hash known to have hash collisions.
MASVS: MSTG-CRYPTO-4
CWE-327 Use of a Broken or Risky Cryptographic Algorithm
M5: Insufficient Cryptography
Files:
 com/salesforce/marketingcloud/tozny/AesCbcWithIntegrity.java
m/a/d.java
f/f/d/u/p/b.java
f/e/p/b0/e.java
f/f/d/s/o.java
m/a/h/b.java
f/d/x/u/a.java
High
CVSS:7.4
Files may contain hardcoded sensitive informations like usernames, passwords, keys etc.
MASVS: MSTG-STORAGE-14
CWE-312 Cleartext Storage of Sensitive Information
M9: Reverse Engineering
Files:
 com/onfido/android/sdk/capture/ui/camera/CaptureUploadService.java
com/affirm/network/models/offer/Offer.java
com/affirm/checkout/api/network/response/PresentationalData.java
com/affirm/network/models/Merchant.java
com/affirm/network/models/CreditCard.java
f/a/n/a/c/j/h.java
com/affirm/network/models/savings/InitiateDepositData.java
com/plaid/link/configuration/LinkConfiguration.java
com/onfido/android/sdk/capture/ui/LoadingFragment.java
com/affirm/network/models/anywhere/ActionVcnAndBrowserData.java
com/affirm/network/models/savings/InitiateWithdrawalData.java
com/affirm/network/models/anywhere/ActionInAppBrowserData.java
com/affirm/network/request/AchCreationRequest.java
f/e/l/f0/c/a.java
f/e/l/h0/c.java
com/affirm/mobile/faq/implementation/ContextualFAQPath.java
f/e/l/b.java
com/onfido/android/sdk/capture/analytics/SegmentInteractor.java
com/plaid/internal/f1.java
com/affirm/network/response/InstitutionAuthForm.java
com/affirm/network/models/savings/SavingsAccount.java
com/salesforce/marketingcloud/c/k.java
com/onfido/android/sdk/capture/ui/camera/CaptureActivity.java
com/onfido/android/sdk/capture/analytics/AnalyticsInteractor.java
com/salesforce/marketingcloud/registration/Registration.java
f/f/d/m/d/j/c.java
com/salesforce/marketingcloud/c/l.java
com/affirm/network/models/Check.java
com/affirm/network/models/DebitCard.java
com/affirm/network/request/CardCreationRequest.java
com/affirm/network/models/loan/LineLoanPayRequest.java
k/c/n/p0.java
com/plaid/internal/r0.java
com/affirm/checkout/api/network/request/CheckoutPfRequest.java
com/affirm/network/models/savings/CreateRecurringDepositData.java
com/affirm/network/models/VcnRequest.java
com/onfido/android/sdk/capture/common/permissions/PermissionsManagementFragment.java
com/onfido/android/sdk/capture/ui/country_selection/CountrySelectionFragment.java
com/affirm/network/models/Ach.java
com/affirm/network/models/BranchReferingParams.java
Low
CVSS:7.5
The App logs information. Sensitive information should never be logged.
MASVS: MSTG-STORAGE-3
CWE-532 Insertion of Sensitive Information into Log File
Files:
 f/f/d/m/d/b.java
f/f/d/s/f.java
f/c/a/b/a.java
n/h0/b.java
f/f/d/s/b0.java
f/f/d/s/x.java
f/a/p/r/f/i/x/i0.java
f/f/d/w/c.java
n/h0/k/i/c.java
f/f/a/e/a/e/w.java
f/a/p/b0/q/k.java
f/e/k1.java
d/h/b/d.java
f/m/b/a.java
f/a/p/b0/q/n.java
f/f/d/s/w.java
f/a/c/j/b0.java
d/h/a/b/r.java
d/h/b/k/f.java
f/f/d/w/t.java
f/f/d/s/v.java
f/f/d/w/g.java
f/f/d/s/y.java
f/a/r/g0/k.java
f/a/p/t/d0.java
f/f/d/w/d0.java
f/f/a/e/a/e/a.java
f/a/n/a/c/l/r.java
f/f/d/w/c0.java
f/f/d/w/r.java
f/a/c0/w/c.java
f/f/d/s/e0.java
d/j/e/k.java
f/k/a/d.java
f/a/c/l/b.java
kotlin/io/ConsoleKt.java
High
CVSS:7.5
The App uses an insecure Random Number Generator.
MASVS: MSTG-CRYPTO-6
CWE-330 Use of Insufficiently Random Values
M5: Insufficient Cryptography
Files:
 f/f/c/a/z/a/z.java
o/s.java
f/f/g/c1.java
f/f/b/b/t.java
kotlin/collections/unsigned/UArraysKt___UArraysJvmKt$asList$1.java
f/f/b/b/o.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$3.java
f/f/g/f.java
f/d/x/t/e/b.java
f/f/g/v.java
kotlin/random/PlatformRandomKt.java
f/f/c/a/z/a/o1.java
kotlin/collections/unsigned/UArraysKt___UArraysJvmKt$asList$2.java
f/f/g/l.java
f/e/l/x/d.java
kotlin/random/jdk8/PlatformThreadLocalRandom.java
kotlin/reflect/jvm/internal/impl/protobuf/UnmodifiableLazyStringList.java
f/f/c/a/z/a/h1.java
kotlin/collections/builders/ListBuilder.java
f/e/b0/h/d.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$2.java
f/f/g/h0.java
kotlin/random/FallbackThreadLocalRandom$implStorage$1.java
f/f/c/a/z/a/c.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$5.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$8.java
kotlin/collections/CollectionsKt__MutableCollectionsKt.java
f/f/c/a/z/a/w.java
f/f/d/z/k.java
f/f/g/h1.java
f/f/c/a/z/a/a0.java
f/f/g/o1.java
f/f/d/z/m/k.java
kotlin/collections/EmptyList.java
f/f/c/a/z/a/h0.java
kotlin/random/AbstractPlatformRandom.java
kotlin/collections/unsigned/UArraysKt___UArraysJvmKt$asList$4.java
f/f/g/e0.java
f/f/g/z.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$6.java
f/f/d/x/k/d.java
f/f/g/c.java
f/f/g/y.java
f/f/d/m/d/j/w.java
kotlin/random/KotlinRandom.java
kotlin/collections/AbstractList.java
kotlin/collections/RingBuffer.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$7.java
f/f/c/a/z/a/g.java
kotlin/collections/CollectionsKt__CollectionsJVMKt.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$1.java
kotlin/reflect/jvm/internal/impl/utils/SmartList.java
f/f/c/a/z/a/m.java
f/f/c/a/z/a/c1.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$4.java
kotlin/collections/CollectionsKt___CollectionsKt.java
kotlin/reflect/jvm/internal/impl/protobuf/LazyStringArrayList.java
kotlin/random/FallbackThreadLocalRandom.java
kotlin/collections/MovingSubList.java
kotlin/collections/unsigned/UArraysKt___UArraysJvmKt$asList$3.java
kotlin/collections/CollectionsKt__MutableCollectionsJVMKt.java
f/f/c/a/z/a/e0.java
kotlin/random/PlatformRandom.java
High
CVSS:7.4
MD5 is a weak hash known to have hash collisions.
MASVS: MSTG-CRYPTO-4
CWE-327 Use of a Broken or Risky Cryptographic Algorithm
M5: Insufficient Cryptography
Files:
 f/d/w/u/g.java
f/d/w/c.java
com/salesforce/marketingcloud/i/l.java
b/a/a/a/b/m.java
Low
CVSS:0
This App copies data to clipboard. Sensitive data should not be copied to clipboard as other applications can access it.
MASVS: MSTG-STORAGE-10
Files:
 f/e/l/w/a.java
com/affirm/monolith/flow/savings/SavingsAccountDetailsPage.java
com/affirm/monolith/flow/browser/BrowserPage.java
com/affirm/monolith/flow/guarantee/VcnDisplayPage.java
High
CVSS:5.9
App uses SQLite Database and execute raw SQL query. Untrusted user input in raw SQL queries can cause SQL Injection. Also sensitive information should be encrypted and written to the database.
CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
M7: Client Code Quality
Files:
 f/f/a/b/j/y/k/h0.java
com/salesforce/marketingcloud/h/a/a/a.java
com/salesforce/marketingcloud/h/a/c.java
f/f/a/b/j/y/k/f0.java
com/salesforce/marketingcloud/h/a/e.java
com/salesforce/marketingcloud/h/a/k.java
com/salesforce/marketingcloud/h/a/h.java
com/salesforce/marketingcloud/h/a/a/g.java
f/e/g/d/e.java
com/salesforce/marketingcloud/h/a/a.java
com/salesforce/marketingcloud/h/a/a/d.java
com/salesforce/marketingcloud/h/a/m.java
com/salesforce/marketingcloud/h/a/j.java
com/salesforce/marketingcloud/h/a/g.java
com/salesforce/marketingcloud/h/a/a/b.java
com/salesforce/marketingcloud/h/a/a/e.java
com/salesforce/marketingcloud/h/a/a/h.java
f/f/a/b/j/y/k/b0.java
com/salesforce/marketingcloud/h/a/a/f.java
com/salesforce/marketingcloud/h/a/b.java
com/salesforce/marketingcloud/h/a/a/i.java
com/salesforce/marketingcloud/h/a/a/c.java
com/salesforce/marketingcloud/h/a/l.java
com/salesforce/marketingcloud/h/a/f.java
com/salesforce/marketingcloud/h/a/i.java
d/z/a/g/a.java
High
CVSS:5.5
App creates temp file. Sensitive information should never be written into a temp file.
MASVS: MSTG-STORAGE-2
CWE-276 Incorrect Default Permissions
M2: Insecure Data Storage
Files:
 kotlin/io/path/PathsKt__PathUtilsKt.java
kotlin/io/FilesKt__UtilsKt.java
d/w/w0.java
f/a/c0/h.java
f/f/d/u/p/c.java
Info
CVSS:0
This App uses SSL certificate pinning to detect or prevent MITM attacks in secure communication channel.
MASVS: MSTG-NETWORK-4
Files:
 n/h0/k/c.java
b/a/a/a/b/a/c.java
f/i/a/a/l.java
n/h0/k/g.java
n/h0/k/h.java
n/h0/k/d.java
Info
CVSS:0
This App may have root detection capabilities.
MASVS: MSTG-RESILIENCE-1
Files:
 f/f/d/m/d/h/h.java
f/f/a/e/a/e/n.java
High
CVSS:5.5
App can read/write to External Storage. Any App can read data written to External Storage.
MASVS: MSTG-STORAGE-2
CWE-276 Incorrect Default Permissions
M2: Insecure Data Storage
Files:
 f/f/a/e/a/b/r1.java
b/a/a/a/b/t.java
f/d/x/q.java
d/j/f/a.java
Low
CVSS:3.9
App can write to App Directory. Sensitive Information should be encrypted.
MASVS: MSTG-STORAGE-14
CWE-276 Incorrect Default Permissions
Files:
 f/a/e0/a/f.java
f/a/e0/a/a.java
com/plaid/internal/a3.java
com/plaid/core/crashreporting/internal/CrashUploadWorker.java
com/plaid/core/analytics/batch/AnalyticsBatchUploadWorker.java
Medium
CVSS:4.3
IP Address disclosure
MASVS: MSTG-CODE-2
CWE-200 Information Exposure
Files:
 f/e/p/x/g.java
f/a/x/a.java
High
CVSS:5.9
The App uses ECB mode in Cryptographic encryption algorithm. ECB mode is known to be weak as it results in the same ciphertext for identical blocks of plaintext.
MASVS: MSTG-CRYPTO-2
CWE-327 Use of a Broken or Risky Cryptographic Algorithm
M5: Insufficient Cryptography
Files:
 f/a/f/a.java
Pygal Australia: 200 Czech Republic: 1100 Germany: 600 Ireland: 200 United States: 3700

Map computed by Pithus.

Network analysis

Information computed with MobSF.

High Base config is insecurely configured to permit clear text traffic to all domains.
Scope: ['*']

Domains analysis

Information computed with MobSF.

mobile-service.segment.com
US tracking-widget.fillr.com 18.66.112.75
US google.github.io 185.199.111.153
US analytics.plaid.com 3.226.123.45
api.s.onfido.com
US api2.branch.io 18.66.97.129
US app.igodigital.com 18.214.59.235
US production.plaid.com 54.161.194.137
CZ api.branch.io 13.32.121.92
DE psdev.de 5.9.31.240
CZ api-cf.affirm.com 13.32.121.6
US www.affirm.com 18.66.112.46
- 10.0.2.2 10.0.2.2
US s3.amazonaws.com 52.216.79.46
CZ assets.onfido.com 13.32.121.8
US developer.android.com 142.250.185.78
US cdn-assets.affirm.com 151.101.2.133
US affirm.com 18.66.112.114
US xmlpull.org 74.50.62.60
US stage.app.igodigital.com 52.4.240.192
graph-video.s
reports.crashlytics.com
US www.google.com 142.250.184.196
US api.segment.io 52.37.21.144
DE cache.fillr.com 18.197.186.224
US sandbox.fillr.com 54.190.101.216
CZ www.fdic.gov 13.32.121.116
US maps.googleapis.com 142.250.185.234
graph.s
US sandbox.plaid.com 3.220.87.153
DE api.fillr.com 18.192.160.224
CZ schema.fillr.com 13.32.121.9
US cdn.branch.io 18.66.97.23
CZ widget.fillr.com 13.32.121.113
US update.crashlytics.com 142.250.185.195
IE mobile.confsettings.com 54.216.48.107
CZ api.onfido.com 13.32.121.13
schemas.android.com
CZ cart-scraper.fillr.com 13.32.121.81
CZ secure.plaid.com 13.32.121.78
US www.fillr.com 198.49.23.145
US salesforce-marketingcloud.github.io 185.199.110.153
US cdn1.affirm.com 151.101.66.133
US firebase.google.com 142.250.185.78
US www.joda.org 185.199.108.153
DE developers.facebook.com 31.13.92.10
US firebase-settings.crashlytics.com 142.250.186.35
US www.example.com 93.184.216.34
US issuetracker.google.com 142.250.185.206
CZ ds2tttggd6zy8.cloudfront.net 13.32.118.63
DE facebook.com 31.13.92.36
AU fillr.com 52.95.134.137
US www.w3.org 128.30.52.100
US bnc.lt 18.66.112.50
DE www.walmart.com 104.111.248.223
US play.google.com 142.250.74.206
mock.base.url
US development.plaid.com 35.170.240.37
.facebook.com
US fir-affirm.firebaseio.com 35.201.97.85
AU letspop.com 54.66.131.188
US mc0c2f-k3kbr2qxw2kmy1vg97z0q.device.marketingcloudapis.com 13.111.67.60
US square.github.io 185.199.111.153
IE analytics-sdk.onfido.com 52.208.251.181
US github.com 140.82.121.4
CZ tracker.affirm.com 13.32.121.69
US cdn-settings.segment.com 18.66.110.125

URL analysis

Information computed with MobSF.

https://github.com/ReactiveX/RxJava/wiki/Plugins
Defined in io/reactivex/Flowable.java
https://github.com/ReactiveX/RxJava/wiki/Plugins
Defined in io/reactivex/Completable.java
https://github.com/ReactiveX/RxJava/wiki/Plugins
Defined in io/reactivex/Observable.java
https://github.com/ReactiveX/RxJava/wiki/Plugins
Defined in io/reactivex/Single.java
https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling
Defined in io/reactivex/exceptions/UndeliverableException.java
https://github.com/ReactiveX/RxJava/wiki/Error-Handling
Defined in io/reactivex/exceptions/OnErrorNotImplementedException.java
https://github.com/ReactiveX/RxJava/wiki/Plugins
Defined in i/c/f.java
https://cdn.branch.io/
https://api2.branch.io/
https://api.branch.io/
Defined in i/a/b/b0.java
https://bnc.lt/a/
Defined in i/a/b/e0.java
https://issuetracker.google.com/issues/new?component=413107&template=1096568
Defined in d/w/y.java
http://schemas.android.com/apk/res/android
Defined in d/j/f/c/g.java
https://mobile-service.segment.com/v1/attribution
https://cdn-settings.segment.com/v1/projects/
https://api.segment.io/v1/import
Defined in f/i/c/a/f.java
https://api.onfido.com/v3/
Defined in f/i/a/a/y/b/c/b.java
https://api.onfido.com/v3/
https://api.%s.onfido.com/v3/
Defined in f/i/a/a/y/a/c.java
https://graph.%s
https://graph-video.%s
Defined in f/d/x/o.java
https://developers.facebook.com/docs/android/getting-started
Defined in f/d/x/r.java
https://facebook.com
https://.facebook.com
Defined in f/d/x/q.java
https://firebase.google.com/support/privacy/init-options.
Defined in f/f/d/u/f.java
https://%s/%s/%s
Defined in f/f/d/u/q/c.java
https://update.crashlytics.com/spi/v1/platforms/android/apps
https://update.crashlytics.com/spi/v1/platforms/android/apps/%s
https://reports.crashlytics.com/spi/v1/platforms/android/apps/%s/reports
https://reports.crashlytics.com/sdk-api/v1/platforms/android/apps/%s/minidumps
Defined in f/f/d/m/d/p/h.java
https://firebase-settings.crashlytics.com/spi/v2/platforms/android/gmp/%s/settings
Defined in f/f/d/m/d/p/d.java
http://schemas.android.com/apk/res-auto
Defined in f/f/a/d/v/a.java
https://developer.android.com/reference/com/google/android/play/core/install/model/InstallErrorCode#
Defined in f/f/a/e/a/d/b/a.java
https://developer.android.com/reference/com/google/android/play/core/assetpacks/model/AssetPackErrorCode.html#
Defined in f/f/a/e/a/b/k2/a.java
http://www.w3.org/2000/xmlns/
Defined in f/e/j.java
http://www.w3.org/2001/XMLSchema
Defined in f/e/k1.java
http://www.w3.org/XML/1998/namespace
http://www.w3.org/2000/xmlns/
Defined in f/e/e.java
http://www.w3.org/2001/XMLSchema
Defined in f/e/o1.java
http://www.w3.org/2001/XMLSchema
http://www.w3.org/1999/XMLSchema
http://letspop.com/schema
http://www.w3.org/2000/xmlns/
Defined in f/e/m.java
https://api.fillr.com/track?ip=1
https://api.fillr.com/track
https://api.fillr.com/decide
Defined in f/e/g/d/c.java
https://sandbox.fillr.com
https://api.fillr.com
Defined in f/e/l/e.java
https://api.fillr.com
Defined in f/e/l/d.java
file://*
Defined in f/e/l/e0/c0.java
https://tracking-widget.fillr.com/abandonment-tracking/fillr-abandonment-tracking.js.gz
https://cart-scraper.fillr.com/widget/cart-information-extraction/FillrCartScraperWidget.js.gz
https://widget.fillr.com/widget/android/sdk/FillrWidget-Android.js.gz
Defined in f/e/l/e0/x.java
http://ds2tttggd6zy8.cloudfront.net
https://schema.fillr.com
Defined in f/e/p/j.java
https://maps.googleapis.com/maps/api
https://api.fillr.com
https://cache.fillr.com
https://sandbox.fillr.com
Defined in f/e/p/h.java
www.fillr.com
Defined in f/e/p/b0/c.java
https://s3.amazonaws.com
Defined in f/a/c/l/r1.java
https://api-cf.affirm.com/
https://www.affirm.com/
https://cdn1.affirm.com/android/switchgate/switchgate.json
https://tracker.affirm.com/collect
https://www.affirm.com/api/chrono/v1/collect2
https://affirm.com/support/helpcenter
Defined in f/a/c/k/a.java
http://play.google.com/store/apps/details?id=
Defined in f/a/a0/d.java
http://play.google.com/store/apps/details?id=
Defined in f/a/c0/a.java
http://10.0.2.2:3000
Defined in f/a/x/a.java
https://github.com/ReactiveX/RxJava
https://github.com/ReactiveX/RxAndroid
http://google.github.io/dagger/
http://www.joda.org/joda-money/
http://square.github.io/okhttp/
https://github.com/Zhuinden/simple-stack
https://square.github.io/retrofit/
https://github.com/JakeWharton/timber
Defined in f/a/b0/w2/a.java
data:image/jpeg;base64,
Defined in f/a/d/d/j1.java
data:image/jpeg;base64,
Defined in f/a/d/d/r2.java
data:image/jpeg;base64,
Defined in f/a/d/d/n2.java
data:image/jpeg;base64,
Defined in f/a/d/d/y2/w.java
https://www.walmart.com/cp/free-returns/1231920
Defined in f/a/p/r/i/f0/f1.java
data:image/jpeg;base64,
Defined in f/a/p/r/a/s.java
https://play.google.com/store/apps/details?id=com.google.android.apps.walletnfcrel
Defined in com/affirm/monolith/flow/guarantee/VcnDisplayPage.java
https://cdn-assets.affirm.com/omnichannel_checkout/
Defined in com/affirm/monolith/flow/loan/details/MciLoanMakeReturnPage.java
data:image/jpeg;base64,
Defined in com/affirm/monolith/flow/loan/payment/VerifyPaymentPage.java
javascript:window.location.reload(
Defined in com/affirm/monolith/flow/browser/BrowserPage.java
https://www.fdic.gov/regulations/resources/rates
Defined in com/affirm/monolith/flow/savings/onboarding/SavingsIntroPage.java
data:image/jpeg;base64,
Defined in com/affirm/monolith/flow/payment/autopay/AutopayPage.java
data::class.java,
Defined in com/affirm/network/request/MfaRequestData_SmsLinkRequestDataJsonAdapter.java
data::class.java,
Defined in com/affirm/network/models/savings/PlaidLinkOnExitDataJsonAdapter.java
data::class.java,
Defined in com/affirm/network/models/savings/PlaidLinkOnEventDataJsonAdapter.java
https://assets.onfido.com/mobile-sdk-assets/android/v2/
https://analytics-sdk.onfido.com
Defined in com/onfido/android/sdk/capture/BuildConfig.java
https://mock.base.url/
Defined in com/onfido/android/sdk/capture/common/di/network/NetworkConstants.java
https://assets.onfido.com/mobile-sdk-assets/android/v2/index.json
Defined in com/onfido/android/sdk/capture/ui/camera/liveness/intro/LivenessIntroVideoUrlProvider.java
https://production.plaid.com/
https://development.plaid.com/
https://sandbox.plaid.com/
Defined in com/plaid/internal/t3.java
https://analytics.plaid.com/v1/
Defined in com/plaid/internal/v.java
https://secure.plaid.com/link/v2/stable/link.html
Defined in com/plaid/internal/j4.java
https://analytics.plaid.com/sentry/api/563/
Defined in com/plaid/internal/b1.java
http://salesforce-marketingcloud.github.io/MarketingCloudSDK-Android
https://app.igodigital.com/api/v1/collect/process_batch
Defined in com/salesforce/marketingcloud/MarketingCloudConfig.java
https://stage.app.igodigital.com/api/v1/collect/qa/qa1s1/process_batch
https://stage.app.igodigital.com/api/v1/collect/qa/qa3s1/process_batch
https://app.igodigital.com/api/v1/collect/process_batch
Defined in com/salesforce/marketingcloud/analytics/b/i.java
ftp://www.example.com/
http://www.example.com/
https://www.example.com/
Defined in b/a/a/a/b/p.java
http://psdev.de/LicensesDialog
Defined in h/a/a/e.java
http://xmlpull.org/v1/doc/features.html#process-namespaces
Defined in h/a/a/g.java
www.affirm.com
http://fillr.com/about
https://mobile.confsettings.com/
https://fir-affirm.firebaseio.com
https://www.fillr.com/privacy-policy
https://mc0c2f-k3kbr2qxw2kmy1vg97z0q.device.marketingcloudapis.com/
https://cdn-assets.affirm.com/omnichannel_checkout/%s/logo/logo.png
https://cdn-assets.affirm.com/omnichannel_checkout/%s/card/white_logo.png
http://fillr.com/privacy-policy-embedded-app
https://www.affirm.com/api/v2/disclosures/static_disclosures/referral_tos/lCCnJQr2rIUL6rU.kUh_NRCuO03LFap6.html
https://www.google.com/android/devicemanager
http://fillr.com/terms-of-use-embedded-app
Defined in Android String Resource

Permissions analysis

Information computed with MobSF.

High android.permission.CAMERA take pictures and videos
Allows application to take pictures and videos with the camera. This allows the application to collect images that the camera is seeing at any time.
High android.permission.RECORD_AUDIO record audio
Allows application to access the audio record path.
Low android.permission.INTERNET full Internet access
Allows an application to create network sockets.
Low android.permission.USE_FINGERPRINT allow use of fingerprint
This constant was deprecated in API level 28. Applications should request USE_BIOMETRIC instead
Low android.permission.ACCESS_NETWORK_STATE view network status
Allows an application to view the status of all networks.
Low android.permission.WAKE_LOCK prevent phone from sleeping
Allows an application to prevent the phone from going to sleep.
Low android.permission.VIBRATE control vibrator
Allows the application to control the vibrator.
Low android.permission.ACCESS_WIFI_STATE view Wi-Fi status
Allows an application to view the information about the status of Wi-Fi.
Low android.permission.USE_BIOMETRIC Allows an app to use device supported biometric modalities.
Low android.permission.RECEIVE_BOOT_COMPLETED automatically start at boot
Allows an application to start itself as soon as the system has finished booting. This can make it take longer to start the phone and allow the application to slow down the overall phone by always running.
Low android.permission.FOREGROUND_SERVICE Allows a regular application to use Service.startForeground
Medium com.google.android.c2dm.permission.RECEIVE C2DM permissions
Permission for cloud to device messaging.
com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE Unknown permission
Unknown permission from android reference

Tracking analysis