👤
User Profile
👤
Sarah Chen
Webull Member since 2021
GeoComply Core™ — 270M+ masked IPs scanned
📋
Evidence Report
Transaction IDTXN-20260420-0937
Timestamp2026-04-20 09:37:12 CST
GPS Coordinates30.2672° N, 97.7431° W
Device Fingerprintd8f2a1...c903
Session Hashsha256:9b1e...4f7d
Dispute Ready✓ Yes
🎯
Real-Time Risk Assessment
Allowed
Decision
Low Risk — Auto-Approved
Long-time user on recognized device and home network. All geolocation checks passed.
🔒
GeoComply Verification Pipeline
Wi-Fi Environment Emulation Detected
Network layer forensics by GeoComply Core™
What GeoComply Found
The device is broadcasting fabricated Wi-Fi access point data to trick location services into believing it is near a legitimate U.S. residential network. GeoComply's SDK detected that the reported BSSID/SSID pairs do not exist in any known Wi-Fi mapping database — they were synthetically generated to simulate a home network in Miami, FL.
Forensic Evidence
| Reported SSID | "ATT-FIBER-Martinez-5G" |
| Reported BSSID | 5C:E9:1E:A4:00:3F (fabricated) |
| Wi-Fi DB Match | ✕ No match — BSSID unregistered globally |
| Signal Strength | -22 dBm (impossibly strong for real AP) |
| Nearby APs Detected | 0 (real environments show 5-30 APs) |
| RF Fingerprint | No multipath, no noise floor variation |
| Tool Signature | Matches "WiFi-Faker Pro v3.2" toolkit |
How The Attack Works
The fraudster is using a Wi-Fi location emulator — software that feeds fake access point scan results to the OS location stack. Normally, a device scans nearby Wi-Fi routers and cross-references their MAC addresses with mapping databases (Apple's, Google's) to triangulate position. The emulator injects phantom APs with MAC addresses chosen to map to a target zip code, making the device appear to be in Miami while it is physically overseas. GeoComply catches this because: (1) the reported APs don't exist in any crowdsourced radio map, (2) the signal profile is impossibly clean with no RF noise or multipath reflections, and (3) zero neighboring APs are visible — a physical impossibility in any populated area.
Cloned Application Binary Detected
App integrity analysis by GeoComply SDK
What GeoComply Found
The Webull application running on this device is not the authentic App Store build. It is a repackaged clone with modified code signatures and injected dynamic libraries that intercept GeoComply SDK calls, feeding back falsified location and device data.
Forensic Evidence
| Bundle Identifier | com.webull.investment (name matches) |
| Code Signature | ✕ INVALID — not signed by Apple cert |
| Binary Hash (SHA-256) | a41f...e092 ≠ expected c7d3...b418 |
| Injected Dylibs | 3 found: libLocFake.dylib, libSSLBypass.dylib, libHookKit.dylib |
| Install Source | Sideloaded via TrollStore (not App Store) |
| App Version Claimed | v12.8.0 (current) — version string spoofed |
| SDK Integrity | GeoComply SDK tampered — response hooks active |
How The Attack Works
The attacker obtained the legitimate Webull IPA, decompiled and repackaged it with three malicious dynamic libraries injected into the app bundle:
libLocFake.dylib — Hooks into CoreLocation to return spoofed GPS coordinates for Miami, FL.
libSSLBypass.dylib — Disables certificate pinning so the attacker can intercept and modify API traffic between the app and Webull servers (MITM).
libHookKit.dylib — Intercepts GeoComply SDK attestation responses before they reach the server, replacing the real device/location data with fabricated "clean" results.
GeoComply detects this because its SDK performs binary self-attestation at runtime — it hashes its own code segment and compares it against the known-good build. The mismatch triggers an immediate integrity failure.
libLocFake.dylib — Hooks into CoreLocation to return spoofed GPS coordinates for Miami, FL.
libSSLBypass.dylib — Disables certificate pinning so the attacker can intercept and modify API traffic between the app and Webull servers (MITM).
libHookKit.dylib — Intercepts GeoComply SDK attestation responses before they reach the server, replacing the real device/location data with fabricated "clean" results.
GeoComply detects this because its SDK performs binary self-attestation at runtime — it hashes its own code segment and compares it against the known-good build. The mismatch triggers an immediate integrity failure.
Jailbreak Exploit Chain Detected
Device integrity deep scan by GeoComply
What GeoComply Found
This device has been jailbroken using a kernel-level exploit chain, giving the attacker root filesystem access and the ability to inject code into any running process — including the Webull app and GeoComply SDK. The jailbreak actively hides itself using concealment tweaks, but GeoComply's multi-layered integrity checks identify it through behavioral and environmental anomalies.
Jailbreak Exploit Chain — Step by Step
1
Initial Exploit — Kernel Vulnerability
Attacker used
CVE-2025-31201 (CoreMedia out-of-bounds write) to gain arbitrary kernel read/write. This zero-day targets iOS 17.x–18.x, bypassing KTRR and PAC protections to achieve a persistent kernel task port.2
Kernel Patch — Disable Code Signing
With kernel access, the attacker patched
AMFI (Apple Mobile File Integrity) to allow unsigned code execution. This lets the injected dylibs (libLocFake, libSSLBypass, libHookKit) load into any app process without a valid Apple signature.3
Root Filesystem Remount
System partition remounted as read-write via
mount -uw /. Attacker installed Substitute (code injection framework) and PreferenceLoader to hook into SpringBoard and all running applications.4
Anti-Detection — "Shadow" Concealment Tweak
Installed
Shadow v4.1 to hide jailbreak artifacts: removes Cydia/Sileo from the process list, spoofs stat() calls on /var/jb and /usr/bin/ssh, blocks sysctl() queries that reveal injected libraries, and hides environment variables like DYLD_INSERT_LIBRARIES from naive detection.5
Payload Deployment — Location & SDK Hooks
Final stage:
libLocFake.dylib hooks into CLLocationManager to feed spoofed GPS. libHookKit.dylib intercepts GeoComply SDK attestation calls and replaces real results with fabricated "clean" data. libSSLBypass.dylib strips certificate pinning for full MITM capability on Webull API traffic.How GeoComply Detected It (Despite Concealment)
| Kernel Integrity | KTRR violation — kernel text region modified |
| Sandbox Escape Test | App can read /var/jb — sandbox broken |
| Dyld Image List | 3 unsigned images in process space |
| Syscall Timing Analysis | stat() on /usr/bin/ssh: 0.3ms (hooked) vs 0.01ms expected |
| Env Variable Leak | DYLD_INSERT_LIBRARIES present despite Shadow |
| Secure Enclave (SEP) | SEP attestation mismatch — device state altered post-boot |
| Code Page Hash | GeoComply SDK code hash ≠ signed build hash |
| Verdict | JAILBROKEN — Root access + active hooking confirmed |
Geohash Density Model — Fraud Cluster Detected
ML-powered location profiling by GeoComply
What GeoComply Found
GeoComply's ML density model divides geography into geohash grid cells and tracks the concentration of new account sign-ups and high-value transactions per cell. This transaction originates from a geohash cell showing abnormal density — 61 new accounts in the past 72 hours, a 14× spike over the baseline. This pattern is a strong indicator of a coordinated fraud ring operating from a single location using synthetic identities.
Density Heatmap — Geohash Region
Low
High
User count per geohash
61
New accounts at this geohash cell in 72 hours — 14× above baseline
Geohash: u33dc0 (Bucharest, Romania)
58 of 61 accounts created with synthetic IDs
All 61 used Tor/VPN to mask true location
43 attempted ACH transfers within 1 hour of creation
Total attempted drain: $1.47M across 61 accounts
How The Density Model Works
GeoComply's ML model continuously monitors account creation and transaction patterns across geohash grid cells worldwide. When a cell exceeds its historical baseline density, it triggers a risk escalation. This catches coordinated fraud operations that IP geolocation alone misses — because the attackers use different VPN exit nodes and different synthetic identities, but their true physical location clusters in the same geohash cell. The model also powers deduplication logic to detect multi-accounting, promo abuse, and rapid account creation rings. Deliverable via GeoComply's RiskGuard reporting format.
Account Takeover — Credential Compromise Detected
Identity & device correlation by GeoComply
What Happened
A nefarious actor obtained legitimate login credentials for a real Webull customer (Marcus Thompson, WB-7741923) — likely through a credential stuffing attack or phishing campaign. The attacker successfully logged into the account using the correct email and password, and immediately attempted to initiate an ACH transfer of $14,750 to drain the linked bank account. Despite having valid credentials, GeoComply detected the takeover because the device, location, and behavioral profile are completely inconsistent with the real account holder.
Real Account Holder vs. Attacker — Side by Side
| Account Owner | Marcus Thompson — member since 2020 |
| Owner's Trusted Device | iPhone 15, iOS 18.2, device ID: d9a1...f821 |
| Owner's Home Location | Denver, CO (39.74° N, 104.99° W) |
| Owner's Usual Network | Comcast Xfinity Home — seen 1,247 sessions |
| Attacker's Device | Samsung Galaxy A14 — NEVER seen on this account |
| Attacker's True Location | Lagos, Nigeria (6.52° N, 3.38° E) — 6,800 mi from Denver |
| Attacker's Network | NordVPN exit node (Dallas, TX) masking true IP |
| Login Method | Credentials valid — likely from data breach dump |
How The Attacker Got In
The attacker used credentials sourced from a third-party data breach (Marcus reused his password across services). They logged in via a VPN to appear as if they were in the U.S. While the username and password were correct, everything else about the session is wrong — wrong device, wrong continent, wrong behavioral pattern. Traditional authentication (email + password) alone would have let this through. GeoComply's geolocation layer caught what passwords could not.
True Location Unmasked — VPN Stripped by GeoComply Core™
IP intelligence & geolocation forensics
GeoComply Core™ Analysis
The attacker connected through NordVPN to mask their real IP address, presenting an exit node in Dallas, TX to appear domestic. GeoComply Core's database of 270M+ known masking IPs immediately flagged this address as a commercial VPN endpoint. With the VPN layer stripped, GeoComply's multi-signal triangulation revealed the true origin.
Location Layer Analysis
| Presented IP | 104.153.xx.xx — NordVPN Dallas exit |
| GeoComply Core™ Verdict | ✕ Known VPN — NordVPN server #4218 |
| True IP (unmasked) | 102.89.xx.xx — MTN Nigeria, Lagos |
| GPS from Device | Disabled — attacker turned off location services |
| Wi-Fi Triangulation | APs match MTN cell towers in Victoria Island, Lagos |
| Cell Tower Data | Connected to MCC 621 / MNC 30 (MTN Nigeria) |
| Timezone / Locale | Device timezone: WAT (UTC+1), locale: en_NG |
| True Location | Lagos, Nigeria — 6,800 mi from account holder's home |
Why This Matters
The attacker had the correct password, but GeoComply doesn't trust passwords — it trusts physics. The device's Wi-Fi scan returned access points geolocated to Lagos. The cell radio was connected to Nigerian carrier infrastructure. The system timezone and locale were set to West Africa. Even with GPS disabled and a VPN active, the true location was undeniable. Marcus Thompson's account has never been accessed from outside Colorado. A login from Lagos attempting a $14,750 ACH drain is an unambiguous account takeover.
Device & Behavioral Profile — Total Mismatch
Behavioral biometrics & device intelligence
Device Intelligence
Marcus Thompson has exclusively used an iPhone 15 for all 1,247 prior sessions on Webull. This session originates from a Samsung Galaxy A14 — a device that has never been associated with this account. GeoComply maintains a device trust graph for every user; this device has zero history and zero trust score.
Behavioral Biometrics Comparison
| Device Trust Score | 0 / 100 — never seen on this account |
| Device Model Match | ✕ Samsung Galaxy A14 ≠ iPhone 15 |
| OS Platform | ✕ Android 13 ≠ iOS 18.2 |
| Screen Resolution | ✕ 1080×2408 ≠ 1179×2556 |
| Typing Cadence | 0% match — completely different rhythm |
| Touch Pressure Profile | N/A — different biometric signature |
| Navigation Pattern | Attacker went straight to ACH transfer — skipped all usual screens |
| Session Duration Before ACH | 47 seconds — Marcus averages 12 min before transfers |
| Time of Access | 3:17 AM Denver time — Marcus never trades before 7 AM |
Attack Timeline
1
03:17:04 AM — Login with Stolen Credentials
Attacker logs in with Marcus's email and password from an unrecognized Samsung device in Lagos, Nigeria. VPN masks IP to appear as Dallas, TX.
2
03:17:22 AM — Navigates Directly to ACH Transfer
Skips portfolio view, watchlist, and all typical screens. Goes straight to
Transfers → Withdraw → ACH in 18 seconds — indicating pre-planned extraction.3
03:17:51 AM — Initiates $14,750 ACH Withdrawal
Attempts to drain the full available cash balance to the linked Chase account. Total time from login to transfer attempt:
47 seconds.4
03:17:51 AM — GeoComply SDK Fires
GeoComply runs full geolocation check at transaction time. Detects: unknown device, VPN masking, true location Lagos, behavioral mismatch, anomalous timing.
Decision: DENY✕
03:17:52 AM — Transaction Blocked, Account Frozen
ACH transfer denied. Webull's fraud team notified. Account temporarily frozen pending owner verification. Marcus receives push notification on his real iPhone in Denver.
Geohash Density Model — ATO Cluster Identified
ML-powered location profiling by GeoComply
What GeoComply Found
After unmasking the attacker's true location as Lagos, Nigeria, GeoComply's density model flagged this geohash cell as a known ATO hotspot. In the past 30 days, 47 account takeover attempts have originated from this same geohash — all following the same pattern: stolen U.S. credentials, VPN masking, immediate ACH drain attempts. This is not an isolated incident — it is a coordinated fraud operation.
Density Heatmap — Lagos Region
Low
High
ATO attempts per geohash
47
ATO attempts from this geohash cell in 30 days — known fraud cluster
Geohash: s1z0gs (Victoria Island, Lagos, NG)
47 ATO attempts targeting U.S. brokerage accounts
All used NordVPN/ExpressVPN with U.S. exit nodes
Credentials sourced from 3 different breach databases
GeoComply blocked 100% — $3.2M in losses prevented
Why Geohashing Catches What IP Cannot
Each of the 47 ATO attempts used a different VPN exit node — IPs in Dallas, Chicago, Miami, Atlanta, and Seattle. To an IP-only system, these look like 47 unrelated sessions from 47 different U.S. cities. But GeoComply strips the VPN layer and resolves the true physical location, revealing that all 47 cluster in the same geohash cell in Lagos. The density model connects the dots, turning 47 "isolated incidents" into a single coordinated operation — enabling Webull to block the entire ring, not just one attempt at a time.