AppsFlyer SDK Exploited in New Supply Chain Crypto Attack
Between March 9 and March 11, 2026, attackers had a 48-hour window inside one of the most widely embedded JavaScript libraries on the internet. The AppsFlyer Web SDK — present in over 100,000 web and mobile applications — was quietly rewritten on AppsFlyer’s own CDN to steal cryptocurrency. No perimeter defense would have caught it. No WAF, no firewall, no endpoint agent. The attack lived entirely inside trusted third-party code running in your users’ browsers.
If you operate in fintech, e-commerce, crypto, or any vertical where users enter payment or wallet data, this one is worth your full attention.
AppsFlyer SDK Supply Chain Attack – What Happened?
Attackers injected malicious JavaScript into the AppsFlyer Web SDK hosted on AppsFlyer’s CDN — notably, not the mobile SDK. The compromised code intercepted cryptocurrency wallet addresses entered by end users, silently replacing them with attacker-controlled addresses while exfiltrating metadata: page URLs, timestamps, and user agents. The script continued to perform its legitimate analytics functions throughout, making it exceptionally difficult to detect through conventional means.
As of this writing, no stolen funds have been confirmed. But that’s not the point. The point is that for 48 hours, any business running this SDK was potentially serving malware to its own customers — and most had no way of knowing.
Why This Attack Is So Hard to Stop
This attack didn’t exploit a vulnerability in your code. It exploited your trust in someone else’s.
Developers embed the AppsFlyer SDK directly into their applications. Once integrated, it runs in the background with broad access to user activity and data flows — tracking installs, sign-ups, purchases, and campaign events. That access is what makes it valuable for analytics. It’s also what makes it a high-value target.
Traditional security controls failed here for a simple reason: the script source was already trusted. The malicious logic was heavily obfuscated within code your systems had been told was safe. Signature-based detection, SRI checks on a hash that was never flagged, allowlists — none of these catch an attack that originates from within the trusted source itself.
How Reflectiz Would Have Detected This
Reflectiz doesn’t ask “is this script allowed?” It asks: “Is this script behaving the way it should?”
Behavioral drift in a trusted SDK
The compromised AppsFlyer SDK kept doing its job while running additional malicious logic underneath. Reflectiz monitors runtime behavior continuously, so even when a script comes from a trusted source, it flags anomalies like:
- New or unusual outbound network connections
- External domains appearing for the first time
- Scripts executing logic outside their established behavioral baseline
Here’s what that looks like in practice: a Reflectiz customer running AppsFlyer would have seen an alert that the SDK had initiated connections to an unrecognized domain — something like analytics-appsflyr[.]com or a similarly disguised endpoint — within hours of the compromise. That alert would have been the earliest signal of something wrong, long before any vendor advisory.
Suspicious data flows on sensitive inputs
The injected code was designed specifically to intercept wallet addresses — a form of input that should never leave the page through a marketing SDK. Reflectiz maps data flows in real time and flags when sensitive user inputs are accessed or transmitted by scripts that have no business touching them. This shifts the detection model from access control to behavioral validation.
Hidden third-party dependencies
Supply-chain attacks routinely introduce secondary infrastructure — additional scripts, callbacks, or exfiltration endpoints — that weren’t part of the original integration. Reflectiz surfaces these by revealing which third parties an SDK is calling, whether new entities have appeared in the execution chain, and how far trust is being extended beyond your direct control. In this attack, that visibility would have exposed the malicious backend infrastructure operating behind AppsFlyer’s legitimate facade.
Script integrity monitoring
The simplest signal of all: the script changed. Reflectiz alerts on modifications to third-party scripts, behavioral differences between versions, and unexpected increases in code complexity or obfuscation. In a two-day attack window, real-time detection of a script change is often the difference between catching an incident and reading about it afterward.
The Broader Shift
The AppsFlyer incident follows a now-familiar pattern: Polyfill.io, Magecart, Ticketmaster/Inbenta. In each case, the attack vector wasn’t a misconfiguration or an unpatched CVE — it was trust. A trusted vendor, a trusted CDN, a trusted script.
The security perimeter has moved. It now extends to every third-party component running in your users’ browsers, and the only way to defend it is continuous monitoring of what those components actually do.
That’s what Reflectiz is built for.
If you’re unsure whether AppsFlyer or similar SDKs are running on your properties — and what they’re doing when they get there — request a free website scan.
FAQs
Between March 9 and March 11, 2026, attackers injected malicious JavaScript into the AppsFlyer Web SDK hosted on AppsFlyer’s CDN. The compromised code intercepted cryptocurrency wallet addresses entered by users and replaced them with attacker-controlled addresses, while continuing to perform its normal analytics functions to avoid detection.
Only the web SDK was compromised. The mobile SDK was not affected. Businesses running the AppsFlyer JavaScript library directly on their websites were the exposed population.
No stolen funds have been confirmed as of this writing. However, the absence of confirmed theft doesn’t reduce the severity — the malicious code was live and capable of redirecting payments for approximately 48 hours across a vast number of websites.
Because the attack originated from within a trusted source. WAFs, firewalls, endpoint agents, and allowlists are all predicated on identifying untrusted sources. When a script you’ve explicitly trusted is the one that’s been compromised, signature-based and perimeter-based controls have no basis on which to flag it.
A JavaScript supply chain attack occurs when an attacker compromises a third-party script or SDK that is widely embedded in other websites or applications. Rather than attacking a target directly, the attacker poisons a trusted dependency, effectively turning the vendor’s own infrastructure into a delivery mechanism for malicious code.
By monitoring the behavioral output of scripts rather than just their source or signature. This means tracking what network connections a script initiates, what user inputs it accesses, what domains it communicates with, and whether its behavior deviates from an established baseline. Solutions like Reflectiz do this continuously and in real time.
Any vertical where users enter sensitive data through a browser is exposed — fintech, cryptocurrency exchanges, e-commerce, healthcare, and online gaming are the highest-risk categories. These sectors tend to run the most third-party analytics and marketing SDKs, which expands their attack surface significantly.
Subresource Integrity (SRI) checks verify that a script matches a known cryptographic hash before it executes. They’re effective against unauthorized script substitution from external sources, but they fail when the compromise originates at the trusted source itself — as in the AppsFlyer case, where the CDN serving the script was the attack vector. Runtime behavioral monitoring operates after execution, flagging anomalous behavior regardless of where the script came from.
In the AppsFlyer case, behavioral monitoring would have surfaced the anomaly within hours of the compromise — likely through alerts on new outbound connections to unrecognized domains. The attack window was approximately 48 hours; early detection tools could have reduced exposure to a fraction of that.
All three follow the same attack pattern: compromise a trusted third-party component to deliver malicious code through legitimate channels. Magecart attacks target payment skimming; Polyfill.io involved a compromised open-source CDN affecting hundreds of thousands of sites; the AppsFlyer incident used a marketing SDK as the vector. The common thread is that trust in a vendor or CDN was weaponized against the businesses relying on them.
Subscribe to our newsletter
Stay updated with the latest news, articles, and insights from Reflectiz.
Related Articles
Your Website looks great!
But what’s happening behind the scenes?
Discover your website blind spots and vulnerabilities before it’s too late!