Plerdy Tracker Hack: How APT29 Turned an Analytics Script Into a Watering Hole, and How to Check the Third-Party Scripts on Your Website
For one week, attackers changed the Plerdy analytics script so websites using it checked every visitor's phone and served exploits to out-of-date ones. Here is what is confirmed and how to check the outside scripts on your own site.
Where Ukraine, United States, Bulgaria, United Kingdom, Australia · Europe, Northern Europe, Eastern Europe, North America, United States & Canada, Oceania, Australia & New Zealand
On this page 8 sections
For one week this summer, someone changed a website analytics script used by thousands of sites. Every visitor's phone was quietly checked, and out-of-date ones could be attacked. Researchers at Sekoia say the work was done by APT29, a Russian state hacking group. The lesson for any business with a website is simple: every outside script on your pages has the same power as your own code, so if that vendor is breached, the attack comes from your site.
The phone side of this campaign is in our earlier post on the zero-click watering hole attacks. This post covers the website side: how the Plerdy script was used, who carried the risk, and what to check on your own site this week.
What happened to the Plerdy tracker
Sekoia published its report, "Poisoned Source", on November 4, 2026, and says its team found the campaign in mid-October. Plerdy is a Ukrainian website analytics service. Its tracking script loads from a.plerdy[.]com.
Sekoia found that between August 27 and September 3, 2026, attackers changed the tracker's main.js file. Visitors to any site using Plerdy loaded the normal tracker and also a hidden fingerprinting script. That script collected browser and device details and sent them to an attacker server, which then chose one of three exploit chains for the visitor's phone.
Sekoia says the tracker is loaded by thousands of websites, most of them Ukrainian, including army, special forces and military equipment sites.
What is confirmed, what is claimed, and what is not known
| Detail | |
|---|---|
| Confirmed in Sekoia's technical analysis | The one-week change to the Plerdy script, the three exploit chains, the data each one stole, and that all of them use known, already-patched flaws. None of the chains stays on the phone after a restart. |
| Sekoia's assessment | APT29 (also called Midnight Blizzard, Cozy Bear and The Dukes, and linked to Russia's SVR intelligence service) ran the campaign. Sekoia rates this "moderate to high" confidence, based on overlaps with earlier APT29 watering holes, including a 2024 campaign Google's Threat Analysis Group documented. |
| Not known | How the attackers got into Plerdy. How many visitors were actually attacked. Whether they picked specific visitors or hit everyone they could, which Sekoia says is unclear. Where the exploits came from: Sekoia suggests a third party, possibly a commercial surveillance vendor. |
| Not found | We found no public statement from Plerdy as of November 10, 2026. |
Was Plerdy the only way in?
No. Sekoia describes three routes:
- Code injected straight into websites, including those of a Ukrainian gas production company, a major US chemical industry trade association, a Bulgarian military-related site and an Australian medical clinic.
- Lookalike sites that showed a real site's content and added the attack script. Copies of America250.org and a London hotel's site were both used.
- The Plerdy supply chain compromise.
Website owners should study the Plerdy route most closely. The sites that loaded it were not hacked themselves. Their only mistake was trusting a vendor's script.
Which phones were at risk
Sekoia's report lists three exploit chains:
| Device | Targeted versions (per Sekoia) | What was stolen |
|---|---|---|
| iPhone | iOS 16.7 (Sekoia says the exploits may work on 16.0 to 17.4) | Browser cookies |
| iPhone | iOS 18.5 | Messages, mail, saved passwords and tokens, contacts, photos, location, Health data, Wi-Fi passwords |
| Android | Chrome 139 to 145 (not 143), with a Qualcomm Adreno graphics driver flaw | Chrome cookies, saved logins, history, Wi-Fi passwords |
Sekoia states that "a user running an up-to-date operating system is safe from these attacks." Apple's iOS 18.7.3 security notes, released December 12, 2025, list the fix for CVE-2025-43529. That WebKit flaw is the first step in both iPhone chains, and Apple noted at the time that it may have been exploited. For Android, Sekoia does not give a fixed Chrome version and we have not confirmed one ourselves. The safe instruction is to install the latest Chrome from Google Play and the latest system update.
Why a hacked analytics script matters for a business website
- An outside script has full control of the page. It can read what visitors type, change what they see and load more code. The browser treats it the same as your own code.
- Your site becomes the delivery point. Visitors came because they trust your name, and the attack uses that trust.
- You may never notice. The change happened on the vendor's server, so your own files and logs show nothing new.
- Nobody owns these scripts. Heatmap, chat, analytics and testing tags are often added by marketing staff or an agency years ago, and nobody reviews them. That is the same gap we wrote about in who is patching the software that runs your business.
If your site runs on a plugin-heavy platform, every plugin that adds a script is part of this chain too. See why WordPress sites get hacked.
How to check the third-party scripts on your website this week
| Step | How to do it | Why |
|---|---|---|
| 1. List every outside script | Open your site in Chrome, press F12, go to the Network tab, filter by JS and reload. Also check your tag manager. | You cannot protect what you have not listed. |
| 2. Remove what nobody uses | Delete old trackers, heatmaps and abandoned test tools. | Every script you remove is one less vendor who could be breached. |
| 3. If you used Plerdy | Check whether your site loaded a.plerdy[.]com between August 27 and September 3, 2026. Ask Plerdy what they found. |
Your visitors may have received the fingerprinting script in that window. |
| 4. Check company network logs | Search DNS or firewall logs for the domains Sekoia published: ad.starx-net[.]com, static.flux-telemetry[.]com and edge-ord.clouds-stacks[.]com. |
A hit means a company device reached the attack servers. |
| 5. Pin fixed files with Subresource Integrity | Add an integrity hash and crossorigin to scripts that never change, such as a specific library version. |
The browser refuses to run the file if its contents change. |
| 6. Add a Content Security Policy | Start with Content-Security-Policy-Report-Only to see what loads, then enforce it. MDN recommends nonce or hash based policies over long domain lists. |
Limits where scripts can load from. |
| 7. Keep company phones current | Use your device management tool to require the latest iOS, Android and Chrome. | Sekoia says up-to-date devices are safe from these chains. |
Two limits to know. Subresource Integrity breaks whenever the file changes, including legitimate updates. For a tracker the vendor updates in place, you would have to host and pin your own copy. A Content Security Policy cannot stop bad code served from a domain you have already allowed.
Plerdy and APT29 questions people are asking
Was Plerdy hacked?
Sekoia says the Plerdy tracker at a.plerdy[.]com was compromised for one week, August 27 to September 3, 2026. We found no public statement from Plerdy.
Is the attack still running?
Sekoia says it is working with national computer emergency teams to identify victims and disrupt the infrastructure. It does not say the whole campaign has stopped. It notes that the London hotel lookalike is offline.
Can a website infect a phone without a click?
On the vulnerable versions, yes. Visiting the page was enough. Sekoia says fully updated phones are safe.
Does my website have to be hacked to be used in an attack like this?
No. Sites that loaded the Plerdy script were not breached themselves. The vendor's file was changed.
Would Subresource Integrity have stopped it?
Only for a site that loaded a fixed, hashed copy of the script. The browser blocks any file whose hash does not match, so the changed file would not have run.
What is APT29?
A Russian state hacking group that Sekoia links to the SVR intelligence service. It is also known as Midnight Blizzard, Cozy Bear and The Dukes.
The bigger lesson
Every script on your site that you did not write depends on someone else's security. That is fine as long as you know which scripts they are, why each one is there, and what limits stop them from loading anything else. Keep the list short, pin what you can, and treat each new marketing tag as a change that needs approval.
For help reviewing and locking down your site, see security hardening or get a quote.
Get security alerts like this by email, with our free checklist, at security alerts.
Sources: Sekoia, Poisoned Source: APT29 watering holes target mobile devices with n-day exploits; Apple, About the security content of iOS 18.7.3; MDN, Subresource Integrity; MDN, Content Security Policy.
Have a question about this article?
Ask it here and we will answer you directly by email. Questions are private, never posted.
Security alerts by email
Hear about the next one first.
When attackers start using a flaw in software businesses run on, we email what it is, whether it touches you and what to do that week, with a round-up of our latest security writing. Free, one-click unsubscribe. You get the checklist straight away: 12 things to secure this week.
Want a result like this?
Security alerts, breaches and the technology a business runs on: what happened, who it affects and what to do.
Get a Tech QuoteKeep reading
React Server Components Vulnerability GHSA-xqc2-xf4c-x3h3: Critical Code Execution Flaw Hits Next.js 16 Cache Components, and the Fixed Versions to Install
A critical React Server Components flaw can let attackers with no login run code on a web server in rare app p...
Nx Console VS Code Malware (CVE-2026-48027): How a Poisoned Extension Update Reached GitHub's Internal Code, and What to Check on Developer Machines Now
A poisoned Nx Console 18.95.0 update for VS Code stole developer credentials on May 18, 2026, and led to the t...
ModSecurity Vulnerability CVE-2026-104269: WAF File Upload Bypass, an XML Worker Flaw, and the Versions to Install
ModSecurity 3.0.17 fixes two high-severity flaws. One lets attackers upload a file under a name the WAF never...