Cabeçalho penumbroso

Chrome 2025 Zero-Days: A cadeia de mortes ANGLE, V8 e Mojo

O cenário da exploração de navegadores mudou fundamentalmente em 2025. Durante anos, a narrativa foi dominada por bugs "Use-After-Free" (UAF) no DOM (Document Object Model). No entanto, com o amadurecimento da tecnologia MiraclePtr (um mecanismo de proteção de ponteiros brutos) e a aplicação generalizada do Sandbox V8Com a exploração bem-sucedida, o nível de exigência foi elevado a um patamar sem precedentes.

Os atacantes - especificamente os grupos APT avançados e os fornecedores de vigilância comercial - se adaptaram. As explorações de 2025 não eram simples colisões; eram cadeias de destruição elegantes e de vários estágios. Elas combinavam Confusão de tipos de V8 para comprometer o renderizador, aproveitou o ÂNGULO camada gráfica para obter acesso privilegiado à GPU e abusar da Mojo IPC lógica para escapar da caixa de areia.

Este artigo fornece uma análise técnica rigorosa desses vetores, com foco em CVE-2025-14174 (ÂNGULO), CVE-2025-13223 (V8) e o escape da sandbox lógica CVE-2025-2783e, ao mesmo tempo, explorar como a exploração automatizada orientada por IA está se tornando a única maneira de detectar essas cadeias complexas antes que elas cheguem à natureza.

A nova superfície de ataque: ANGLE e CVE-2025-14174

Vulnerabilidade: Gravação fora dos limites no backend do Metal

Componente: ANGLE (mecanismo de camada gráfica quase nativo)

Impacto: Execução de código de processo de GPU

Embora o V8 ganhe as manchetes, a pilha de gráficos se tornou o ponto fraco da segurança do navegador. CVE-2025-14174divulgada em dezembro de 2025, tinha como alvo a camada de abstração do ANGLE-Chrome que traduz as chamadas WebGL/WebGPU em APIs de sistema nativas (DirectX, OpenGL, Metal, Vulkan).

A mecânica técnica

A vulnerabilidade residia especificamente na tradução do ANGLE das chamadas WebGL para o Metal API. Quando uma página da Web inicia uma texImage2D o ANGLE deve calcular o stride e o padding da memória para mapear a textura no espaço de memória da GPU.

No CVE-2025-14174, o cálculo para pixelsDepthPitch (usado em texturas 3D) sofria de um estouro de inteiro quando parâmetros específicos de alinhamento de empacotamento (GL_UNPACK_ALIGNMENT) foram combinados com dimensões extremas de textura.

O primitivo de exploração:

  1. Heap Feng Shui: O invasor pulveriza o heap do processo da GPU com Memória compartilhada para alinhar os blocos de memória.
  2. Gatilho: Uma chamada específica de desenho WebGL aciona o estouro, gravando dados de textura controlados pelo invasor além dos limites do buffer alocado.
  3. Corrupção: O estouro substitui o tabela ponteiro de um objeto C++ que reside no bloco de heap adjacente.
  4. Execução: Quando o processo da GPU tenta destruir ou usar esse objeto, ele chama um ponteiro de função agora controlado pelo invasor.

Por que isso é importante:

O processo da GPU é um alvo privilegiado. Ao contrário do processo do Renderer, que é altamente restrito, o processo da GPU interage diretamente com drivers e sistemas de janelas no nível do kernel. A obtenção de RCE aqui geralmente ignora várias camadas de atenuação do sistema operacional.

O clássico evoluiu: Confusão de tipo V8 (CVE-2025-13223)

Vulnerabilidade: Falha de otimização JIT

Componente: Motor V8 (TurboFan)

Impacto: RCE do renderizador (dentro da área restrita do V8)

Apesar de o Sandbox V8 tentar isolar o heap, Confusão de tipos de V8 continua sendo o principal método para obter primitivas iniciais de leitura/gravação. CVE-2025-13223 destaca uma falha no pipeline de otimização do TurboFan.

A falha do CheckMaps

O TurboFan otimiza o JavaScript fazendo suposições sobre tipos de objetos (Maps). Se o código acessar uma matriz de inteiros repetidamente, o TurboFan compilará o código de máquina otimizado para inteiros. Para garantir a segurança, ele insere CheckMaps nós.

O CVE-2025-13223 foi um Eliminação de redundância erro. O otimizador determinou incorretamente que um CheckMaps era redundante e o removeu, mesmo que um efeito colateral em uma chamada de função anterior pudesse alterar o Map do objeto.

A exploração conceitual:

JavaScript

`function vulnerable_opt(arr, trigger_obj) { // 1. TurboFan vê que arr é uma matriz de Doubles. let x = arr[0];

// 2. efeito colateral: Essa função altera 'arr' para um array de Objetos.
// Entretanto, o TurboFan removeu a verificação do Map após essa chamada devido ao bug.
trigger_obj.toString();

// 3. confusão de tipos: O TurboFan escreve um float, mas a memória agora é de ponteiros de objetos.
// Escrevemos um valor float controlado (0x4141...) que é interpretado como um ponteiro.
arr[1] = 1.337e-308; 

}`

Derrotando o Sandbox V8

Em 2025, obter addrOf e fakeObj não é mais suficiente devido ao Sandbox V8. Esse mecanismo de segurança "enjaula" o heap do V8, o que significa que um invasor só pode corromper a memória dentro a caixa de areia. Eles não podem sobrescrever endereços de retorno na pilha nem modificar alocadores de partição fora da gaiola.

Para transformar o CVE-2025-13223 em arma, os invasores o usaram para corromper um arquivo WasmInstanceObject. Ao modificar a tabela de saltos de uma instância do WebAssembly (que reside dentro da sandbox), eles podiam redirecionar a execução para um shellcode arbitrário compilado via JIT, obtendo efetivamente a execução arbitrária do código dentro das restrições do renderizador.

Chrome 2025 Zero-Days: A cadeia de mortes da ANGLE, V8 e Mojo Penligent

The Escape: Bugs de lógica de IPC do Mojo (CVE-2025-2783)

Vulnerabilidade: Validação inadequada de permissões

Componente: Mojo IPC (Comunicação entre processos)

Impacto: Fuga da caixa de areia (comprometimento total do sistema)

Com o renderizador comprometido, o invasor ainda está preso na sandbox. É aqui que o Mojo IPC entra em cena. O Mojo é o sistema IPC de alto desempenho que o Chrome usa para a comunicação entre o renderizador não confiável e o processo privilegiado do navegador.

CVE-2025-2783 não era um bug de corrupção de memória; era uma falha lógica na implementação do FileSystemAccess interface.

A falha na linguagem de definição de interface (IDL)

O Chrome define interfaces IPC usando .mojom arquivos. A vulnerabilidade existia em um método destinado a conceder acesso de leitura a arquivos temporários.

C++

// Lógica vulnerável no processo do navegador void OnRequestFileAccess(int32 render_frame_id, String file_path) { // FALHA: o navegador verificou se o caminho era "seguro" (por exemplo, sem ../) // MAS não verificou se o renderizador era *proprietário* do file_path. // Um invasor poderia solicitar acesso a dados de perfil ou cookies. GrantAccess(file_path); }

A cadeia de exploração:

  1. Renderizador de compromisso: Use o CVE-2025-13223 para executar código nativo.
  2. Hook Mojo: Localize as tabelas de despacho do Mojo na memória.
  3. Forjar mensagem: Construa uma mensagem Mojo bruta chamando OnRequestFileAccess com um caminho que aponta para dados confidenciais do usuário (por exemplo, Dados de login SQLite DB).
  4. Exfiltrar: Como o processo do navegador executa a leitura do arquivo com privilégios elevados, ele retorna o identificador do arquivo para o renderizador, ignorando as permissões de arquivo do sistema operacional.

Isso representa a "Era Lógica" da exploração de navegadores: usar recursos válidos de forma inválida para ultrapassar os limites de segurança.

Chrome 2025 Zero-Days The ANGLE, V8 e Mojo Kill Chain

O futuro da detecção: Síntese primitiva orientada por IA

A complexidade dessas cadeias - especificamente o salto de uma corrupção de heap V8 para uma primitiva estável e depois para um abuso de lógica Mojo - está superando a análise manual humana. Os fuzzers são bons em encontrar falhas, não bugs de lógica.

Esse é o domínio operacional de Penligent.ai.

Geração automatizada de explorações (AEG)

A Penligent muda o paradigma da "varredura de vulnerabilidades" para a "geração automatizada de explorações".

  1. Síntese de layout de pilha: Para vulnerabilidades como a CVE-2025-14174 (ANGLE), os agentes de IA da Penligent analisam o comportamento do alocador de heap para determinar automaticamente a sequência precisa de alocações (Spraying) necessárias para colocar um objeto-alvo próximo ao buffer de estouro. Ele resolve matematicamente o quebra-cabeça "Heap Feng Shui".
  2. Raciocínio lógico IDL: Para explorações do Mojo (CVE-2025-2783), a Penligent analisa toda a base de código do Chrome .mojom definições. Ele cria um gráfico de dependência de chamadas IPC e usa o Reinforcement Learning (RL) para identificar sequências de mensagens válidas que resultam em alterações de estado privilegiadas.

Ao automatizar a construção de toda a cadeia de eliminação, da primitiva à fuga, a Penligent fornece a única maneira confiável de validar se um patch realmente interrompe o caminho da exploração ou apenas corrige o sintoma.

Conclusão e estratégias de mitigação

O cenário de dia zero do Chrome em 2025 nos ensina que a era do "endurecimento" funciona, mas empurra os invasores para bugs lógicos e abuso de subsistema.

Estratégia de defesa hardcore:

  1. Isolamento rigoroso do local: Garantir Isolamento de origem estrita está ativado para evitar vazamentos de dados entre origens, mesmo que o renderizador esteja comprometido.
  2. Desativar WebGL/WebGPU em zonas críticas: Para portais internos de alta segurança, use políticas corporativas para desativar a aceleração de hardware, neutralizando efetivamente a superfície de ataque do ANGLE (CVE-2025-14174).
  3. Monitoramento de IPC: As equipes de defesa devem começar a monitorar o tráfego interno de IPC. Os EDRs raramente examinam as mensagens Mojo, mas é exatamente aí que ocorre a fuga.

A batalha passou da pilha e do heap para as portas lógicas da arquitetura do navegador. Os engenheiros de segurança devem adaptar suas ferramentas e sua mentalidade de acordo com isso.

Referências confiáveis

Compartilhe a postagem:
Publicações relacionadas