Mobile Banking App Security Report 2025
Findings from more than 500 mobile banking apps: which protections are in place and where the gaps are. Includes a PDF report.
Research
Mobile and banking security studies, vulnerabilities we disclosed, what our AI agents found, and the open-source tools we maintain. Every item links to the full write-up or code, so your team can check the details.
Items shown: 38
Studies of mobile banking apps, vulnerabilities we found and reported, and threat research on banking malware.
Banking report series
Two editions of our study of mobile banking apps. Read them together to see how protections and common weaknesses evolve.
Findings from more than 500 mobile banking apps: which protections are in place and where the gaps are. Includes a PDF report.
The earlier edition, on banking apps in North America, for a point of comparison.
Uncaught std::length_error exception in ggml-rpc's recv_msg() terminates the server process via std::terminate when an oversized message length header exceeding vector max_size() is received.
CVE records
Stack-based buffer overflow in ggml-rpc's RDMA transport allows unauthenticated remote attackers to achieve code execution or denial of service via oversized verbs work completions in rdma_recv().
CVE records
Integer overflow in Assimp's MD2Importer::ValidateHeader() allows attackers to bypass frame table bounds checks via crafted numFrames and numVertices values, causing a heap out-of-bounds read.
CVE records
Four CVEs identified in LibreSSL covering CRLF injection in libcrypto and ocspcheck, cleartext transmission of OCSP requests over unencrypted HTTP, and memory exhaustion from unbounded responder responses.
Integer wraparound identified in OpenImageIO's Cineon codec scanline allocation, resulting in heap under-allocation and an out-of-bounds read during decompression.
CVE records
Confused-deputy file overwrite in VLC for Android: a zero-permission app can spoof the K-9 Mail attachment provider and make VLC overwrite files in the shared Download folder when VLC holds All files access.
CVE records
Stored XSS in Chatwoot's Help Center video embed rendering: angle-bracket link destinations with double quotes break out of the unescaped iframe src in render_embed_from_match, running script for public visitors and exposing widget tokens.
CVE records
Two CVEs identified in HarfBuzz covering an out-of-bounds write and a NULL pointer dereference DoS in the WebAssembly shaper.
Stored XSS identified in Keycloak's login theme rendering: the fixURLs() post-processor re-activates character references neutralized by kcSanitize, running script on the pre-authentication login page for every user of the realm.
CVE records
Stack-based buffer overflow identified in Poppler's Decrypt::revision6Hash, allowing memory corruption when opening AESV3/R6 encrypted PDFs.
CVE records
Five CVEs identified in GoPhish across SSRF, XSS, rate-limit bypass, and object takeover using Ostorlab Agentic Deep Scan.
Five CVEs in ZIP libraries used by iOS and Flutter apps: a dependency risk your own apps can inherit.
A chain from Signal down to the Android SDK. Signal acknowledged the report in 3 hours and fixed it; no CVE was assigned.
Five production banking apps tested against four commercial shielding products, showing where detection works but enforcement does not.
Static analysis of a multi-stage Android banking malware platform, the kind of threat your customers' phones face.
Custom URL scheme hijacking that leads to account takeover, a pattern that applies to mobile banking login flows.
From remote compromise to data leaks in an app with more than 100 million installs.
Vulnerabilities found by our AI engine during agentic penetration testing, in mobile apps first, then in the APIs behind them.
Our AI engine found a WebView JavaScript bridge in an Android app that could be reached through deep links.
The AI engine found vulnerability classes it was not told to look for, including a WebView Safe Browsing bypass.
How the AI engine found an Android intent redirection and proved it with a working proof of concept.
A broken access control in the GraphQL subscriptions of a backend API: the servers behind your mobile app.
An account takeover through a password reset flow still exposed on an older API version.
Practical write-ups for mobile security practitioners: obfuscation, instrumentation, reverse engineering and pinning.
How to recover readable code from obfuscated Android apps with signature matching and LLM rewrites.
Hands-on dynamic instrumentation of Swift code in iOS apps.
How to reverse engineer and assess apps built with Flutter.
A universal SSL pinning bypass with LLDB, from theory to a working proof of concept.
Security testing of iOS apps on non-jailbroken devices, from a Linux workstation.
A detection approach for dependency confusion that uses source map files.
Neutron’s verified exploitation results on UC Berkeley’s CyberGym, alongside open benchmarks and deliberately vulnerable apps your team can use to evaluate security tools.
Neutron achieved 97.1% verified exploitation on UC Berkeley’s CyberGym: 1,463 of 1,507 tasks involving known vulnerabilities in open-source C/C++ projects. Read our technical write-up for the run setup, methodology and results.
An open test dataset of 93 vulnerable mobile apps based on real CVEs and bug bounty findings. Use these reproducible targets to evaluate mobile security tools.
Repositories
Deliberately vulnerable apps that anyone can run as test targets.
Deliberately vulnerable Flutter apps for learning and for testing tools.
Tools we build and maintain in the open.
Our open-source security scanning orchestrator: more than 15,000 PyPI downloads a month and 113 releases in the last 12 months.
One command to detect known exploited vulnerabilities, using CISA KEV, Tsunami and Asteroid.
The remote vulnerability detection agent behind KEV.
Scan every release from GitHub Actions, Azure DevOps or GitLab CI.
Plus more than 30 open-source agents, including Nmap, ZAP, Nuclei, Tsunami, OpenVAS, Semgrep and TruffleHog.Browse the agents (opens in a new tab)
Ostorlab's agentic penetration testing builds on this research to test every release of your mobile app.