CVE-2026-72018: como o agente de IA da XBOW obteve root no Linux escrevendo 16 bytes zero

Pesquisadores da XBOW descobriram CVE-2026-72018 no kernel do Linux e desenvolveram um exploit funcional de escalada de privilégios local (LPE). O agente de IA realizou a maior parte da pesquisa e do desenvolvimento do exploit, mas a intervenção humana foi necessária em três pontos críticos.
A vulnerabilidade afeta o driver dibs_loopback, que permite ao SMC-D (Shared Memory Communications – Direct), uma tecnologia de comunicação por memória compartilhada originalmente associada aos mainframes IBM Z, operar sobre loopback em sistemas Linux x86 comuns.
Durante o estabelecimento da conexão, smcd_conn_save_peer_info() lê dmbe_idx e dmbe_size de uma mensagem CLC controlada pelo par e calcula o deslocamento de transmissão: tx_off = bufsize peer_rmbe_idx O deslocamento passa por smcd_tx_ism_write() e smc_ism_write() até dibs_lo_move_data(), onde memcpy() escreve em cpu_addr + offset sem verificar os limites do buffer de destino.
Como o loopback do SMC-D normalmente envia dmbe_idx = 0, a XBOW usou nftables NFQUEUE e libnetfilter_queue para interceptar e modificar mensagens CLC Accept/Confirm, incluindo os checksums de pacote necessários. Isso acionou uma escrita fora dos limites de um cabeçalho CDC de 32 bytes (struct smcd_cdc_msg). Em uma conexão somente de envio, seus 16 bytes finais são confiavelmente zero, dando ao atacante uma primitiva restrita de escrita de zeros em deslocamentos alinhados a 16 KiB. Por meio de heap grooming, a XBOW posicionou estruturas cred do kernel no caminho de sobrescrita. A escrita de 16 bytes zerou suid, sgid, euid e egid, fazendo o kernel tratar o processo afetado como root. O exploit então usou setresuid(0, 0, 0) para obter um shell root. Nenhuma divulgação de memória adicional ou vulnerabilidade de suporte foi necessária.
O ataque local demonstrado requer CAP_NET_ADMIN para registrar o UEID necessário para SMC-D e instalar a regra nftables NFQUEUE. Um usuário comum sem privilégios e sem essa capacidade não pode reproduzir o exploit demonstrado conforme descrito. O exploit teve sucesso em 22 de 100 inicializações separadas do sistema no Ubuntu 24.04 com Linux 7.1.0-rc6 (x86-64). O experimento foi conduzido com todas as mitigações do kernel desabilitadas, portanto essa taxa de sucesso não foi estabelecida para sistemas padrão endurecidos.
Qual foi o papel do agente de IA? A XBOW descobriu e validou independentemente a vulnerabilidade e realizou a maior parte do desenvolvimento do exploit, mas os pesquisadores intervieram três vezes. Primeiro, o agente abandonou prematuramente a interceptação de pacotes por considerá-la cara demais e concluiu que a exploração local era impossível. Um pesquisador humano o direcionou de volta à abordagem MITM. Segundo, a XBOW confundiu repetidamente a primitiva restrita de escrita de zeros de 16 bytes do exploit local com uma primitiva de escrita arbitrária mais poderosa de um modelo de ameaça VM-para-VM anterior. O pesquisador insistiu em verificar experimentalmente a primitiva real. Terceiro, o agente focou em criar uma primitiva mais forte por meio de corrupção de contagem de referências e um possível use-after-free. O pesquisador instruiu-o a buscar LPE usando apenas a escrita de zeros existente; a XBOW então identificou independentemente cred como alvo e completou o exploit funcional.
A vulnerabilidade foi relatada aos desenvolvedores do kernel em 19 de junho de 2026, o patch foi aprovado em 7 de julho e o CVE foi publicado em 17 de agosto.
Vulnerabilidades
Fornecedor
Produto
Mais