1 week
that APT29 controlled Plerdy's web analytics CDN, silently delivering exploit chains to unpatched iOS and Android visitors
6+
CVEs chained to achieve full mobile device compromise, including CVE-2026-3910 (browser execution) and CVE-2025-27038 (Qualcomm Adreno GPU sandbox escape)
2.3 MB
of dead AngularJS obfuscation code hiding APT29's UltimateFingerprinter JavaScript tool inside the compromised Plerdy analytics script
3
concurrent delivery vectors used: direct website JS injection, AiTM proxy domains, and the Plerdy analytics supply chain compromise

Reach 50,000+ security professionals

Sponsor a newsletter slot and put your brand in front of CISOs, engineers, and IT decision-makers.

Summarize with:

Most urgent if: your organization has employees using unpatched iOS or Android mobile devices, or your websites load Plerdy analytics. If your MDM enforces current OS patch levels and no Plerdy integration is in use, your exposure is low.

APT29, the Russian SVR-linked threat group also known as Midnight Blizzard and Cozy Bear, spent one week in mid-October 2026 controlling the Plerdy web analytics content delivery network, silently pushing n-day mobile exploit chains to every unpatched iPhone and Android device that visited any website loading the compromised script. Sekoia Threat Intelligence published its "Poisoned Source" attribution report on November 4, linking the campaign to APT29 with moderate-to-high confidence based on structural overlaps with the group's 2024 Mongolian government watering hole operation.

The technical delivery used three vectors in parallel: direct JavaScript injection on compromised websites, adversary-in-the-middle proxy infrastructure operating under look-alike domains, and the Plerdy analytics supply chain compromise that weaponized a trusted CDN used by thousands of websites. The injected payload is a tool Sekoia named "UltimateFingerprinter," a device and browser profiling script hidden behind roughly 2.3 megabytes of dead AngularJS code designed to slow manual analysis. Once the script confirms the visitor's platform and OS version, it delivers the matching exploit chain: CVE-2026-3910 targets iOS for in-browser code execution, while CVE-2025-27038, a Qualcomm Adreno GPU driver vulnerability, enables Android sandbox escape. Successful exploitation silently exfiltrates data to APT29-controlled infrastructure.

The threat is relevant to any organization with employees using unpatched mobile devices and to any web team running Plerdy analytics on their properties. Users running fully patched iOS and Android operating systems are safe from this specific exploit chain. Organizations with websites that loaded Plerdy during the compromise window should treat those sites as potential watering holes and audit their analytics integrations immediately.

How Does APT29's Watering Hole Exploit Chain Work?

A watering hole attack compromises a site the target regularly visits rather than attacking the target directly. APT29's November 2026 campaign operated on three simultaneous delivery channels, each serving the same UltimateFingerprinter JavaScript payload.

Supply chain channel (Plerdy CDN): APT29 obtained credentials sufficient to push malicious JavaScript through Plerdy's CDN infrastructure. Every website with a standard Plerdy analytics snippet began serving the backdoored script automatically, without any action from the website operator. This channel gave APT29 broad, passive reach across Plerdy's customer base for approximately one week in mid-October.

Direct injection channel: On a subset of target-relevant websites, APT29 injected the UltimateFingerprinter script directly into page source, independent of the Plerdy channel. This provided coverage even for sites that do not use Plerdy.

AiTM infrastructure channel: Adversary-in-the-middle proxy domains impersonated legitimate resources, enabling script delivery to visitors even when navigating through HTTPS connections that the group could observe through its proxy infrastructure.

Once loaded, UltimateFingerprinter collects platform data, browser version, OS version, installed fonts, and canvas fingerprint before transmitting to APT29's staging infrastructure. The staging layer evaluates the fingerprint against a targeting ruleset, then delivers the platform-specific exploit chain or returns a benign stub for non-target profiles.

On iOS, CVE-2026-3910 provides initial in-browser code execution. The chain then escalates through additional bugs to achieve sandbox escape and persistent access to the device's credential store and cookie database. On Android devices with Qualcomm silicon, CVE-2025-27038, a heap overflow in the Adreno GPU kernel driver, enables sandbox escape from the browser's restricted context.

Blast radius: CVE-2026-3910 and CVE-2025-27038 require no user authentication, no file download, and no click — only an unpatched device visiting any website serving the compromised Plerdy script. Successful exploitation gives APT29 silent access to all browser session cookies, stored Wi-Fi credentials, and the device's full credential database with no interaction beyond the page load.

Devices running fully patched iOS or Android are not vulnerable to this specific chain. The targeting evidence clusters around Ukraine-focused sites, suggesting primary intelligence collection objectives, though the watering hole approach means any visitor to a compromised site was profiled and potentially exploited.

1

Supply Chain Compromise

T1195.002

APT29 uses stolen credentials to inject UltimateFingerprinter JavaScript into Plerdy's CDN, weaponizing the analytics scripts served by thousands of websites.

2

Device Fingerprinting

T1082

UltimateFingerprinter (hidden inside 2.3 MB of dead AngularJS code) collects platform, OS version, browser, and canvas fingerprint, then beacons to APT29 staging infrastructure.

3

Platform-Specific Exploit Delivery

T1189

Staging infrastructure evaluates the fingerprint and delivers CVE-2026-3910 for iOS or the CVE-2025-27038 Qualcomm Adreno GPU chain for Android to unpatched target devices.

4

In-Browser Code Execution

T1203

The exploit achieves initial code execution within the browser's renderer process, then chains additional n-day bugs for privilege escalation and sandbox escape.

5

Credential and Cookie Exfiltration

T1555.003

Post-exploitation code accesses the device's browser cookie database, stored Wi-Fi network credentials, and additional sensitive data, exfiltrating everything to APT29 C2 infrastructure.

TTPs Mapped to MITRE ATT&CK

APT29's Poisoned Source campaign uses a TTP stack that is consistent with the group's established tradecraft, with the mobile-focused delivery representing a tactical evolution from their more commonly reported Windows-focused operations.

ATT&CK IDTechniqueHow APT29 Used It
T1189Drive-by CompromiseWatering hole delivery via compromised websites and Plerdy CDN
T1195.002Supply Chain Compromise: Software Supply ChainPlerdy CDN compromise to distribute exploit-laden analytics script
T1203Exploitation for Client ExecutionCVE-2026-3910 (iOS) and CVE-2025-27038 (Android/Qualcomm) n-day chains
T1082System Information DiscoveryUltimateFingerprinter OS and browser profiling before exploit delivery
T1555.003Credentials from Web BrowsersPost-exploitation access to cookie database and stored site credentials
T1555Credentials from Password StoresExfiltration of stored Wi-Fi network credentials
T1041Exfiltration Over C2 ChannelStolen credentials and device data transmitted to APT29 staging infrastructure

SOC detection priority: T1189 and T1195.002 are the highest-value detection opportunities for defenders. Web proxy logs that capture unusual JavaScript payloads from known analytics CDN endpoints, particularly those with anomalous size or content that includes AngularJS libraries alongside minified obfuscation layers, are the clearest pre-exploitation signal available.

T1082 (fingerprinting beacon) generates a distinctive outbound HTTP request with specific header combinations and body structure. Organizations with full-packet capture on their web proxy can write detection rules against the specific fingerprinting request format documented in Sekoia's Poisoned Source report.

Subscribe to unlock Indicators of Compromise

Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.

Free daily briefing

Briefings like this, every morning before 9am.

Threat intel, active CVEs, and campaign alerts, distilled for practitioners. 50,000+ subscribers. No noise.

Sigma Detection Rules for APT29 Watering Hole Activity

These rules target the two highest-confidence detection opportunities: anomalous analytics CDN script delivery and post-exploitation cookie database access patterns on mobile endpoints managed through enterprise MDM. Both carry experimental status; validate against your environment's log format before enabling automatic blocking.

Subscribe to unlock Sigma Detection Rules

Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.

Subscribe to unlock Sigma Hunt Queries

Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.

Subscribe to unlock WAF Detection Rules

Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.

Detection and Hunting: Finding APT29 Activity

The highest-value detection opportunity for most organizations is in web proxy logs during the mid-October 2026 compromise window. Standard Plerdy analytics scripts are measured in kilobytes. Any proxy log entry from plerdy.com in that window warrants investigation — use the exposure filter in the IR guidance block below to scope and triage.

For organizations with endpoint detection on managed mobile devices, look for browser processes initiating file access to cookie databases or credential stores outside of normal browser engine operations. APT29's post-exploitation module directly accesses the iOS cookie store and the Android /proc/net/arp interface as early steps in its credential harvesting sequence.

Browser-side indicators: Organizations running custom browser extensions or Content Security Policy (CSP) reporting endpoints may have CSP violation reports from that period if the injected script attempted to load resources from non-whitelisted origins. Review CSP violation logs from mid-October for any unexpected script-src violations tied to analytics CDN loads.

Subscribe to unlock Incident Response guidance

Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.

Subscribe to unlock Remediation & Mitigation steps

Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.

Immediate Remediation Steps

Defenders can close the exposure from this campaign by patching mobile operating systems and auditing any websites that loaded Plerdy analytics during the compromise window. Organizations with evidence of exposure should treat affected devices as potentially compromised and initiate their mobile device incident response procedures.

Subscribe to unlock Remediation & Mitigation steps

Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.

The Plerdy Analytics Supply Chain Compromise

Plerdy is a legitimate web analytics and conversion optimization platform used by website owners to record user sessions, track heatmaps, and monitor conversion funnels. Its standard integration method is a small JavaScript snippet loaded from Plerdy's CDN, which means every site using Plerdy automatically loaded APT29's modified script during the compromise window.

The compromise ran for approximately one week before discovery and remediation. During this window, APT29 had passive, automatic delivery capability to every unpatched mobile visitor across Plerdy's entire customer base. This mirrors the structure of the Brevo supply chain attack in which attackers abused a trusted SaaS platform as a delivery mechanism.

What organizations using Plerdy should check:

Review your Content Security Policy logs and web server access logs for the mid-October 2026 window. Look for any unusual requests to Plerdy CDN endpoints with anomalous response sizes. Standard analytics scripts are measured in kilobytes; the compromise window payload was orders of magnitude larger.

Compare the hash of any cached or locally stored Plerdy script files from that period against Plerdy's published clean hashes. Organizations with endpoint detection on managed devices should check for browser-initiated network connections to unfamiliar IP ranges immediately following visits to Plerdy-enabled sites during the compromise window.

Plerdy has since remediated the CDN compromise and pushed clean scripts to all distribution endpoints. Organizations can re-enable the integration after verifying the current script integrity. Any website that loaded Plerdy during the compromise window should be treated as a potential watering hole and disclosed to affected users if warranted by your incident response policy.

“The delivery infrastructure simultaneously ran three distinct channels: direct JavaScript injection, AiTM-style proxy domains, and the Plerdy supply chain, maximizing coverage across target populations.”

Sekoia Threat Intelligence, 'Poisoned Source' Report, November 4, 2026

APT29: Origin, Attribution, and Current Targeting Priorities

APT29 is assessed with high confidence to be an offensive cyber unit of Russia's SVR foreign intelligence service. The group has operated continuously since at least 2008, targeting diplomatic, government, defense, and technology organizations across NATO member states and neighboring countries, with persistent focus on Ukraine following the February 2022 invasion.

Who is APT29? APT29 is a Russian state-sponsored advanced persistent threat group operating under the direction of Russia's SVR foreign intelligence service. The group is responsible for the 2020 SolarWinds supply chain compromise, the 2021 Microsoft Exchange server attacks against research institutions, and persistent targeting of EU and NATO foreign ministries. It is tracked across industry under multiple names including Midnight Blizzard (Microsoft), Cozy Bear (CrowdStrike), and The Dukes (F-Secure).

Current targeting priorities: The November 2026 campaign victim profile centers on Ukraine-linked organizations and the websites they visit regularly, consistent with SVR's strategic intelligence collection mandate. However, the watering hole delivery method provides coverage against any visitor to a compromised site, including government officials, defense contractors, journalists, and researchers in Western countries who happen to visit targeted websites.

Has APT29 been sanctioned? The US Department of the Treasury sanctioned multiple SVR officers linked to APT29 in April 2021 following the SolarWinds compromise attribution. The European Union issued sanctions against named SVR officers in October 2020. Despite sanctions, the group remains operational.

Notable campaigns:

YearCampaignTargetMethod
2020SolarWinds SUNBURSTUS Government agencies, Microsoft, FireEyeSoftware supply chain
2024ANDROSNATCHMongolian government websitesMobile watering hole
2026 Q4Poisoned SourceUkraine-centered web propertiesAnalytics CDN supply chain

The credential and cookie theft focus of this campaign resembles the Fortibleed credential harvesting campaign, though APT29 targets mobile device credential stores rather than perimeter network appliances.

The bottom line

APT29's Poisoned Source campaign demonstrates that fully compromising a device now requires only that the target visits a legitimate website during the window an analytics vendor's CDN is under attacker control. The APT29 watering hole reached any unpatched iPhone or Android that loaded the compromised Plerdy script: no click, no download, no phishing email required. Defenders must treat third-party analytics scripts as a supply chain trust decision, not a convenience. Patch iOS and Android devices to close CVE-2026-3910 and CVE-2025-27038 today, audit all websites your organization operates for Plerdy integration, and enforce MDM-driven OS currency requirements before this weekend.

This analysis is generic. create a free account to score threats like this against your own stack.

Frequently asked questions

What is APT29?

APT29 is a Russian state-sponsored advanced persistent threat group attributed with high confidence to Russia's SVR foreign intelligence service (Sluzhba Vneshney Razvedki). Active since at least 2008, the group conducts long-duration espionage operations targeting government, diplomatic, defense, and technology organizations. It is tracked under multiple names including Midnight Blizzard by Microsoft, Cozy Bear by CrowdStrike, and The Dukes by F-Secure. APT29 is responsible for the 2020 SolarWinds SUNBURST supply chain compromise and persistent targeting of NATO foreign ministries.

What is a watering hole attack?

A watering hole attack is a technique where an attacker compromises a website that the intended target regularly visits, rather than targeting the victim directly. When the target visits the compromised site, malicious code executes in their browser. APT29's November 2026 campaign amplified this by additionally compromising a web analytics CDN, turning every Plerdy-integrated website into a potential delivery mechanism without requiring the attacker to access each site individually.

How did APT29 use Plerdy analytics to deliver mobile exploits?

APT29 obtained credentials sufficient to push malicious JavaScript through Plerdy's content delivery network. The attacker-controlled script replaced or supplemented the legitimate Plerdy analytics code with UltimateFingerprinter, hidden behind 2.3 megabytes of dead AngularJS obfuscation code. When a site visitor loaded any Plerdy-enabled page, their browser automatically downloaded and executed the malicious script. If the visitor's device matched the targeting profile (unpatched iOS or Android), the script delivered platform-specific n-day exploit chains that could compromise the device without any further user interaction.

Which devices are at risk from the APT29 Poisoned Source campaign?

iPhone and Android devices running operating systems that have not received patches for CVE-2026-3910 (iOS browser execution) and CVE-2025-27038 (Qualcomm Adreno GPU sandbox escape for Android) are at risk. Sekoia confirmed that devices running fully patched iOS or Android are not vulnerable to this specific exploit chain. The targeting evidence centers on users visiting Ukraine-focused websites, but the watering hole delivery method means any visitor to a Plerdy-enabled site during the compromise window was profiled and potentially exploited if their device was unpatched.

What TTPs does APT29 use in this campaign?

APT29's Poisoned Source campaign uses T1189 (Drive-by Compromise) for the watering hole delivery, T1195.002 (Supply Chain Compromise: Software Supply Chain) for the Plerdy CDN compromise, T1203 (Exploitation for Client Execution) for the n-day exploit chains, T1082 (System Information Discovery) for the UltimateFingerprinter device profiling, T1555.003 (Credentials from Web Browsers) for cookie database theft, and T1041 (Exfiltration Over C2 Channel) for data exfiltration. The combination of supply chain compromise with platform-specific mobile exploit chains reflects a tactical evolution of APT29's established tradecraft.

Was my organization's website part of the Plerdy compromise?

If your website used the Plerdy analytics JavaScript integration and loaded the script from Plerdy's CDN during mid-October 2026, your site was an unwitting delivery mechanism for APT29's exploit payload during the compromise window. This does not mean your website was directly compromised or that any of your visitor data was breached. However, any visitor to your site during that period who was running an unpatched iOS or Android device may have had their device targeted. Review your web analytics configuration history and CSP violation logs for that period.

How do I detect APT29 watering hole activity in my environment?

Query web proxy logs for responses from plerdy.com or cdn.plerdy.com with JavaScript MIME type and content length above 2 megabytes from mid-October 2026. That anomalous size is the clearest exposure indicator available without full-packet capture. For endpoint detection on managed mobile devices, hunt for browser processes initiating access to cookie database paths or Wi-Fi credential store locations outside of normal browser operations. Organizations with CSP reporting enabled can review October violation logs for unexpected analytics CDN entries.

How do I protect employees from drive-by mobile exploit attacks?

Four controls together reduce drive-by mobile exploit risk significantly: enforce OS currency requirements via MDM (minimum iOS and Android patch levels), enable browser automatic updates on managed devices, deploy strict Content Security Policy headers on all organizational web properties to limit third-party script execution, and require certificate pinning or script integrity enforcement on analytics integrations. Regularly audit the list of third-party JavaScript CDNs your websites load, since any external CDN represents a supply chain trust decision that could be weaponized like the Plerdy compromise.

Sources & references

  1. Sekoia Threat Intelligence: Poisoned Source - APT29 Watering Holes Target Mobile Devices with N-Day Exploits
  2. Help Net Security: Russian hackers target iOS and Android users with n-day exploits
  3. The Hacker News: APT29-Linked Hackers Hijack Web Analytics Script to Deliver iOS and Android Exploits
  4. Infosecurity Magazine: APT29 Watering Holes Target Unpatched iPhones and Android Devices
  5. Apple iOS Security Updates
  6. MITRE ATT&CK: Drive-by Compromise (T1189)
Summarize with:

Free resources

25
Free download

Critical CVE Reference Card 2025–2026

25 actively exploited vulnerabilities with CVSS scores, exploit status, and patch availability. Print it, pin it, share it with your SOC team.

No spam. Unsubscribe anytime.

Free download

Ransomware Incident Response Playbook

Step-by-step 24-hour IR checklist covering detection, containment, eradication, and recovery. Built for SOC teams, IR leads, and CISOs.

No spam. Unsubscribe anytime.

Follow Decryption Digest

Daily briefings + Google Top Stories in one step.

Enter your email and we'll subscribe you to the daily briefing and add Decryption Digest to your Google Search feed at the same time.

Free. Unsubscribe anytime. Google popup confirms the Top Stories add.

Eric Bang
Author

Founder & Cybersecurity Evangelist, Decryption Digest

Cybersecurity professional with expertise in threat intelligence, vulnerability research, and enterprise security. Covers zero-days, ransomware, and nation-state operations for 50,000+ security professionals every morning.

Daily Briefing

Get briefings like this every morning

Actionable threat intelligence for working practitioners. Free. No spam. Trusted by 50,000+ SOC analysts, CISOs, and security engineers.

Unsubscribe anytime.

Mythos Brief

Anthropic's AI finds zero-days your scanners miss.