CVE-2025-43529: Mobile attacks use patched Safari flaw
Sekoia found mobile attacks using CVE-2025-43529, a Safari use-after-free flaw affecting versions before 26.2, alongside other patched flaws to steal cookies and device data. Safari 26.2 fixes this flaw, but OS and browser updates are needed for the other flaws; none of the recovered chains worked on fully updated devices.
Summary written with AI from this article, and checked against it.

Affected systems and impact
| Flaw | Affected systems | Impact |
|---|---|---|
| CVE-2025-43529Use after free | Safari before 26.2 | Initial iOS entry point in chains that stole cookies, credentials and other device data |
| CVE-2025-14174Out-of-bounds write | Chrome before 143.0.7499.109 or 143.0.7499.110; also identified in the observed iOS 18.5 chain | Used in the iOS chain that gained kernel read/write access and stole messaging databases, credentials, location data and photos |
| CVE-2026-20700Improper restriction of operations within a memory buffer | iPadOS before 26.3; also identified in the observed iOS 18.5 chain | Used in the iOS chain that gained kernel read/write access and stole messaging databases, credentials, location data and photos |
| CVE-2024-27834Insecure inherited permissions | Safari before 17.5 | Used with CVE-2025-43529 in the chain targeting cookies, including Safari cookies |
| CVE-2026-3910Not stated | Observed delivery profile: Android Chrome 139 through 145, excluding 143; not a complete affected-version matrix | Used in the Android chain that stole Chrome cookies, saved logins, browsing history and Wi-Fi credentials |
| CVE-2025-27038Not stated | Observed delivery profile: Android Chrome 139 through 145, excluding 143; not a complete affected-version matrix | Used in the Android chain that stole Chrome cookies, saved logins, browsing history and Wi-Fi credentials |
At a glanceCVE-2025-43529
CVE-2025-43529 has a CVSS 3.1 base score of 8.8 (High) from CISA. It is fixed in Apple safari 26.2. Ubuntu 24.04 fixed it in webkit2gtk 2.50.4-0ubuntu0.24.04.1. Debian bookworm fixed it in webkit2gtk 2.50.6-1~deb12u2.
| Severity | 8.8 High (CVSS 3.1, CISA) |
|---|---|
| Fixed in | Apple safari 26.2 |
| Affected | Apple safari before 26.2 |
| Exploited | Yes: in CISA's Known Exploited Vulnerabilities catalog since December 15, 2025 |
| EPSS | 26% chance of exploitation in the next 30 days (FIRST, November 3, 2026) |
| Public exploit | 7 GitHub repositories name it: proofs of concept, scanners, detections. Unverified: some are fake or malicious. |
| Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| Weakness | CWE-416 Use After Free |
| Ubuntu | 24.04 noble webkit2gtk: Fixed (2.50.4-0ubuntu0.24.04.1) · 22.04 jammy webkit2gtk: Fixed (2.50.4-0ubuntu0.22.04.1) · 20.04 focal webkit2gtk: Won't be fixed · 18.04 bionic webkitgtk: Won't be fixed · 18.04 bionic webkit2gtk: Won't be fixed · 18.04 bionic qtwebkit-source: Won't be fixed |
| Debian | bookworm webkit2gtk: Fixed (2.50.6-1~deb12u2) · trixie webkit2gtk: Fixed (2.52.6-1~deb13u1) · forky webkit2gtk: Fixed (2.52.6-1) · sid webkit2gtk: Fixed (2.54.2-2) · bookworm wpewebkit: Vulnerable · trixie wpewebkit: Vulnerable |
| Red Hat | Fixed: RHEL 7 Extended Lifecycle Support (RHSA-2025:23975), RHEL 8 (RHSA-2025:23663), RHEL 8.2 Advanced Update Support (RHSA-2025:23969), RHEL 8.4 Advanced Mission Critical Update Support (RHSA-2025:23967) · RHEL 6: Out of support scope, RHEL 6: Out of support scope, RHEL 7: Will not fix |
| Also in | Apple ipados, Apple iphone os, Apple macos, Apple tvos, Apple visionos, Apple watchos |
Is there a public exploit for CVE-2025-43529?
Yes: CVE-2025-43529 is exploited in the wild. CISA added it to its Known Exploited Vulnerabilities catalog on December 15, 2025. 7 public GitHub repositories name it: proofs of concept, scanners and detections. None of it is verified: some such repositories are fake or carry malware, so read the code before running it, and only against systems you own. FIRST's EPSS puts the chance of exploitation in the next 30 days at 26%, higher than 97.9% of scored CVEs.
From NVD, Ubuntu, Debian, Red Hat · checked November 4, 2026
None of the three exploit chains Sekoia recovered worked on fully updated devices, but a compromised webpage could launch them automatically after a visit. CVE-2025-43529 was the iOS entry point; NVD lists Safari versions before 26.2 as affected. Here's how to check mobile versions, deploy the available fixes, and investigate potentially exposed accounts—and why rebooting is only a temporary interruption.
If your team's phones hold work credentials, the risk is data theft — cookies, messaging databases, saved logins. BleepingComputer's report, drawing on Sekoia's investigation, spells out what the payloads collected. Prioritize phones with sensitive work accounts instead of waiting for a suspicious prompt report. The recovered chains needed zero interaction after the site visit. The original write-up on bleepingcomputer.com has the full details.
Check Safari versions for CVE-2025-43529
Start by recording each phone's OS version and browser version separately. The Safari fix NVD lists isn't an instruction to install an identically numbered iOS release — keep those fields distinct. For Android, note Chrome's version alongside the device's OS update status.
Manually compare the Safari version against the NVD fix floor for CVE-2025-43529.
(function () {
const recordedSafari = { major: 26, minor: 1 };
const belowFix = recordedSafari.major < 26 ||
(recordedSafari.major === 26 && recordedSafari.minor < 2);
return JSON.stringify({
browser: "Safari",
recordedVersion: recordedSafari,
vulnerability: "CVE-2025-43529",
assessment: belowFix
? "Below the Safari 26.2 fix floor"
: "At or above the Safari 26.2 fix floor"
});
})();
Swap in the Safari major and minor numbers you verified. This is a manual comparison helper, not a device scanner, and it doesn't cover the other flaws in the campaign.

How legitimate pages became exploit delivery points
Sekoia uncovered the operation in mid-October 2026. It started with injected JavaScript on a Ukrainian gas producer's site — code that loaded an external fingerprinting script after the page finished loading. Elsewhere, attackers modified existing JavaScript files instead of the page template, including on a Bulgarian military-related site.
Replace the empty string with a defanged script URL recorded from a page template to compare it with the first reported loader without loading the script.
(function () {
const recordedTemplateUrl = "";
const reportedTemplateUrl =
"hxxps://static.flux-telemetry[.]com/module/5b4c8fea5cbcee273e8d830f52-temfp.js";
return JSON.stringify({
recordedUrl: recordedTemplateUrl,
matchesReportedLoader: recordedTemplateUrl === reportedTemplateUrl
});
})();
For an existing JavaScript asset, replace the empty string with its recorded, defanged script URL to check the second reported loader.
(function () {
const recordedAssetUrl = "";
const reportedAssetUrl =
"hxxps://edge-ord.clouds-stacks[.]com/module/5b4c8fea5cbcee273e8d830f52-temfp.js";
return JSON.stringify({
recordedUrl: recordedAssetUrl,
matchesReportedLoader: recordedAssetUrl === reportedAssetUrl
});
})();
These helpers compare manually recorded strings; they do not inspect a live page or establish device compromise.
When direct compromise wasn't an option, the operators used lookalike domains as reverse proxies. These relayed real site content while injecting malicious JavaScript. Impersonated properties included America250 and Raffles London at The OWO. A page could look perfectly legitimate while serving attacker-controlled script.
The investigation also traced requests from seemingly unrelated sites to a shared dependency: Plerdy's analytics tracker. Sekoia says the tracker was compromised between August 27 and September 3, 2026. Thousands of sites — mostly Ukrainian — loaded it, and the modified tracker forced visitors to load the fingerprinting code alongside Plerdy's legitimate script.
The fingerprinting code posted its results to a delivery endpoint and then inserted the returned text into a script element.
Fill in the empty strings with a recorded request's URL, method and content type to compare it with that delivery request without contacting the endpoint or executing its response.
(function () {
const recordedRequest = {
url: "",
method: "",
headers: { "Content-Type": "" }
};
const reportedEndpoint =
"https://static.flux-telemetry.com/api/uGmlx2pmMHU1jq7wZU2QWgeC28vbXalf/v1";
return JSON.stringify({
matchesReportedEndpoint: recordedRequest.url === reportedEndpoint,
usesReportedMethod: recordedRequest.method === "POST",
usesReportedContentType:
recordedRequest.headers["Content-Type"] === "application/json"
});
})();
That dependency changes things for web teams. Checking only your own repo misses a remotely loaded tracker altered upstream. The review needs to cover the page template, existing JavaScript assets, and every third-party script loaded in visitors' browsers.
The recovered chains stole different categories of data
Sekoia retrieved three complete exploit chains and their final payloads by testing browser profiles against the delivery endpoint. The table below shows observed delivery profiles — not a complete affected-version matrix.
| Observed delivery profile | Chain identified by Sekoia | Data targeted |
|---|---|---|
| iOS 16.7 / 16.7.10 | CVE-2025-43529 and CVE-2024-27834 | Cookies, including Safari cookies |
| iOS 18.5 | CVE-2025-43529, CVE-2026-20700, CVE-2025-14174, CVE-2025-43510 and CVE-2025-43520 | Messaging databases, Keychain credentials, location data and photos |
| Android Chrome 139 through 145, excluding 143 | CVE-2026-3910 and CVE-2025-27038, followed by AndroSnitch | Chrome cookies, saved logins, browsing history and Wi-Fi credentials |
Enter the category, description, path and numeric size from a captured record to compare its metadata with the cookie-collection object shown in the recovered code, without including cookie contents or a device identifier.
(function () {
const recordedMetadata = {
category: "",
description: "",
path: "",
size: 0
};
return JSON.stringify({
matchesReportedCookieMetadata:
recordedMetadata.category === "only_cookies" &&
recordedMetadata.description === "only_cookies" &&
recordedMetadata.path === "only_cookies" &&
recordedMetadata.size === 2097152
});
})();
The distinction between browser execution and broader device access matters. Sekoia describes the fuller iOS chain moving from code execution in the web renderer through protection bypasses and sandbox escapes to kernel read/write access. A renderer compromise alone wasn't enough for comprehensive collection.
The Android chain similarly combined browser exploitation with an Adreno driver flaw. The final payload, dubbed AndroSnitch by Sekoia, collected Chrome data and saved Wi-Fi credentials — not just what the visitor typed on the compromised page.
Why an old Safari flaw still deserves patch priority
CVE-2025-43529 illustrates the core problem: a patch existing isn't the same as that patch reaching a phone. CISA rates it CVSS 3.1 8.8 (High) and added it to the Known Exploited Vulnerabilities catalog on December 15, 2025.
That catalog entry proves known exploitation — not attribution for every attack using CVE-2025-43529. Sekoia separately identified its role in the recovered iOS chains. Keep those findings distinct in any internal incident assessment.
“All three exploit chains rely entirely on known, already-patched vulnerabilities.”
— Sekoia's investigation
Sekoia says every vulnerability in those chains was fixed before the campaign started, and none of the recovered chains worked on fully updated devices. BleepingComputer confirms Apple and Google patched all targeted flaws, with fixes reaching older iOS releases.
The practical priority is deploying available updates, not waiting for a new emergency fix. NVD's Safari entry answers a specific version question — it doesn't replace verifying the OS and other browser components are current.
The investigation does not establish every visitor's exposure
Sekoia attributes the operation to APT29 (Midnight Blizzard) with moderate-to-high confidence, citing technical similarities to earlier watering-hole ops, infrastructure patterns, and a partner's assessment linking artifacts found on a compromised website to a 2025 APT29 campaign. That's an attribution assessment — not certainty about who operated every compromised page.
Plerdy's tracker reach isn't a count of compromised phones. Sekoia says it's unclear whether operators targeted specific visitors or collected broadly before filtering. A site loading the tracker and a device successfully running an exploit are different events.
A delivery profile isn't a universal vulnerability boundary. Researchers saw differences between the versions the server selected and the broader capabilities of some exploit code. Conversely, Sekoia says fully updated devices were outside the recovered chains' reach.
The term 'zero-click' needs context: these attacks still started with a website visit. The interaction-free part was the exploitation that followed. Nothing in the findings suggests an untouched, fully updated phone could be compromised just by being online.
Patch mobile fleets and review exposed sessions
Identify stale devices first. Collect OS and browser versions, then compare against the latest security updates for each device. Treat Safari 26.2 as the listed fix for CVE-2025-43529 — not a campaign-wide all-clear.
Update the OS and browser. Since the Android chain also used an Adreno driver flaw, I wouldn't mark an Android phone cleared just because Chrome updated. Check the device's available security updates too.
Use a restart as temporary containment where exposure is suspected. Sekoia found no persistence in the recovered payloads, so rebooting stops their activity. But visiting a compromised site again restarts the attack — apply updates before returning.
Investigate what may have already left the device. Given the reported theft of cookies and credentials, I'd review potentially exposed accounts, invalidate relevant sessions, and replace affected credentials where warranted. A restart doesn't mean stolen data or credentials are suddenly harmless.
For website owners, inspect templates and existing JavaScript files for unexpected inclusions, and review third-party tracker loading during the Plerdy compromise window. Sekoia identified static.flux-telemetry[.]com as a delivery host and ad.starx-net[.]com as an exfiltration destination — investigation leads, not an exhaustive inventory.
Fully updated devices don't need a campaign-specific workaround for the chains Sekoia analyzed. But rebooting an unpatched phone leaves the underlying route wide open.
Frequently asked questions
Did the extensive device fingerprint determine which exploit was delivered?
Sekoia says the script collected 394 fields through 61 collectors, but observed almost no effect on exploit delivery beyond basic device-plausibility checks. Implausible screen dimensions or navigator.maxTouchPoints set to 0 could produce an empty response. The researchers found no evidence that the remaining fingerprint data influenced delivery or was reused later in the infection chain.
Did every vulnerability embedded in the recovered code execute?
No. Sekoia identified CVE-2024-27808 and CVE-2024-27833 in unreachable code. It also found CVE-2025-31277 as an alternate initial-entry path and CVE-2025-24201 as an alternate escape, neither used in the analysed delivery.
Did the Android chain proceed on every device with a selected Chrome version?
No. Sekoia found a device check that stopped exploitation when SM-S938B was detected, identifying that model as the Samsung Galaxy S25 Ultra. The report does not explain why the operators included that exception.
Sources
Primary sources
- Write-upPoisoned Source: APT29 Watering Holes Targets Mobile Devices · sekoia.com
- Write-upEnterprise Email Security Assessment · adaptivesecurity.com
- CVE recordNVD and distribution data for CVE-2025-43529, CVE-2024-27834, CVE-2026-20700, CVE-2025-14174 (checked 2026-11-04) · nvd.nist.gov
Reports of the story
- News reportHackers use n-day exploits in zero-click attacks on iOS, Android devices · bleepingcomputer.com
How this article was made: drafted with AI from the sources above and fact-checked against them, then reviewed by Vishal on . How we write and check articles.
