Mitos 'Descobriu' uma CVE Já Presente em Seus Dados de Treinamento, Mas Ainda Assim é Preocupante

Mitos 'Descobriu' uma CVE Já Presente em Seus Dados de Treinamento, Mas Ainda Assim é Preocupante

Um novo relatório alega que o modelo de IA Mythos da Anthropic descobriu e explorou uma vulnerabilidade de segurança. No entanto, a análise revela que a CVE explorada já estava presente nos dados de treinamento do modelo, levantando questões sobre a verdadeira natureza da descoberta de vulnerabilidades por IA.

MundiX News·14 de maio de 2026·9 min de leitura·👁 3 views

PatientZero 16 minutos atrás Mithos 'Descobriu' uma CVE Já Presente em Seus Dados de Treinamento, Mas Ainda Assim é Preocupante 9 min 521 Segurança da Informação * Inteligência Artificial Tradução Autor original: Jake Feiglin A Anthropic chamou a atenção da mídia ao afirmar que Claude Mythos criou o "primeiro exploit de kernel remoto descoberto e usado por IA". Decidimos investigar como isso foi possível e encontramos um bug de 20 anos de idade escondido à vista de todos. Vamos analisar o que acreditamos que Mythos fez e o que isso significa para a segurança cibernética. O que Claude encontrou? No primeiro post da Anthropic sobre Claude Mythos, a empresa fala sobre uma variedade de vulnerabilidades diferentes que Mythos conseguiu descobrir e explorar. A vulnerabilidade sobre a qual sabemos mais (incluindo a CVE e uma descrição técnica completa) é a CVE-2026-4747: a possibilidade de execução remota de código no sistema de arquivos de rede FreeBSD. Esses sistemas de arquivos de rede são usados em milhares de sistemas de armazenamento de rede em centros corporativos e de pesquisa científica. Embora esse exploit tenha sido uma prova de uma conquista de engenharia impressionante, ninguém que acompanha o desenvolvimento da IA ficará surpreso com a capacidade de um agente escrever código; pessoalmente, estávamos mais curiosos para entender como a IA descobriu a vulnerabilidade em primeiro lugar. O artigo sobre a vulnerabilidade diz que ela é "como de um livro didático" - um estouro de buffer clássico, ainda mais simplificado pelo fato de que o FreeBSD não tem proteções de segurança padrão compiladas (KASLR/Stack Canaries): Em sys/rpc/rpcsec_gss/svc_rpcsec_gss.c a função svc_rpc_gss_validate() reconstrói o cabeçalho RPC em um buffer de 128 bytes na pilha ( rpchdr[] ) para verificar a assinatura GSS-API. Primeiro, ela grava 32 bytes de campos fixos do cabeçalho RPC e, em seguida, copia todo o corpo das credenciais RPCSEC_GSS ( oa_length bytes) no espaço restante, não verificando se oa_length cabe lá. static bool_t svc_rpc_gss_validate(struct svc_rpc_gss_client *client, struct rpc_msg *msg, gss_qop_t *qop, rpc_gss_proc_t gcproc) { int32_t rpchdr[128 / sizeof(int32_t)]; // 128 bytes na pilha int32_t *buf;

memset(rpchdr, 0, sizeof(rpchdr));

// Gravação de 8 campos RPC de tamanho fixo (totalizando 32 bytes) buf = rpchdr; IXDR_PUT_LONG(buf, msg->rm_xid); IXDR_PUT_ENUM(buf, msg->rm_direction); IXDR_PUT_LONG(buf, msg->rm_call.cb_rpcvers); IXDR_PUT_LONG(buf, msg->rm_call.cb_prog); IXDR_PUT_LONG(buf, msg->rm_call.cb_vers); IXDR_PUT_LONG(buf, msg->rm_call.cb_proc); oa = &msg->rm_call.cb_cred; IXDR_PUT_ENUM(buf, oa->oa_flavor); IXDR_PUT_LONG(buf, oa->oa_length);

if (oa->oa_length) { // BUG: ausência de verificação de limites de oa_length! // Após 32 bytes do cabeçalho, apenas 96 bytes restam em rpchdr. // Se oa_length > 96, esses dados transbordam para fora de rpchdr: // em variáveis locais → registradores salvos pela função chamada → endereço de retorno memcpy((caddr_t)buf, oa->oa_base, oa->oa_length); buf += RNDUP(oa->oa_length) / sizeof(int32_t); }

// gss_verify_mic() é chamado mais tarde, mas o estouro já ocorreu } Há apenas 128 - 32 = 96 bytes sob o corpo das credenciais no buffer. Quaisquer credenciais maiores que 96 bytes transbordarão o buffer na pilha. Correção (14.4-RELEASE-p1) O patch adiciona uma verificação de limites antes da cópia: oa = &msg->rm_call.cb_cred; if (oa->oa_length > sizeof(rpchdr) - 8 * BYTES_PER_XDR_UNIT) { rpc_gss_log_debug("auth length %d exceeds maximum", oa->oa_length); client->cl_state = CLIENT_STALE; return (FALSE); } Uau! Uma descoberta assustadora: quem sabe quantos outros bugs profundos no kernel não foram notados por ninguém? Bem, como se descobriu, a afirmação do "primeiro exploit de kernel descoberto por IA" pode ser verdadeira, mas com certeza não é toda a história. Um pouco de história: o que é svc_rpc_gss_validate? O código vulnerável tem suas raízes no sistema Open Network Computing Remote Procedure Call (ONC RPC) da Sun Microsystem e seu Network File System (NFS), desenvolvido em 1984 e lançado em 1985. Quando as redes de pequenos ambientes confiáveis se transformaram em sistemas enormes na década de 1990, os protocolos NFS e RPC da Sun se tornaram o padrão de fato. Em abril de 1995, a Sun transferiu o controle do ONC RPC para a IETF para que fosse mantido como um padrão aberto ( RFC 1790 ). Para desenvolver esse padrão, a IETF organizou um grupo de trabalho que publicou o protocolo RPCSEC_GSS em 1997 ( RFC 2203 ). A maior parte do trabalho de código aberto na implementação do NFSv4, RPCSEC_GSS e os componentes de nível de kernel necessários correspondentes foi financiada e desenvolvida pelo Center for Information Technology Integration (CITI) da Universidade de Michigan. A Universidade de Michigan ainda é mencionada nos cabeçalhos da implementação Kerberos do MIT (o que os desenvolvedores ao vivo estão acostumados a ver, mas não notam), bem como em arquivos quase idênticos copiados para a implementação do FreeBSD. Copyright (c) 2000 The Regents of the University of Michigan. All rights reserved.

Copyright (c) 2000 Dug Song dugsong@UMICH.EDU. All rights reserved, all wrongs reversed.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. Espere um minuto, "copiados"? O FreeBSD armazena todo o sistema operacional básico - o kernel, os drivers e os utilitários do sistema necessários - em um único e enorme repositório. Ele também inclui a funcionalidade RPCSEC_GSS, que é quase idêntica ao código Kerberos MIT e é usado em quase todas as distribuições Linux para implementar operações seguras com NFS. Ou seja, deve-se esperar que a CVE Mythos se aplique à implementação do MIT também? Talvez tenhamos encontrado um problema ainda mais sério? Por favor, dê as boas-vindas à boa e velha CVE-2007-3999! No NVD NIST, essa vulnerabilidade é descrita da seguinte forma: estouro de buffer de pilha na função svcauth_gss_validate do arquivo lib/rpc/svc_auth_gss.c da biblioteca RPCSEC_GSS RPC ( librpcsecgss ) no MIT Kerberos 5 (krb5) versões de 1.4 a 1.6.2, usado pelo daemon administrativo Kerberos ( kadmind ), bem como por alguns aplicativos de terceiros que usam krb5; permite que os invasores causem uma negação de serviço (falha do daemon) e, provavelmente, a execução de código arbitrário usando uma longa string na mensagem RPC. Essa CVE foi corrigida em 2007. Mas algo nessa descrição parece terrivelmente familiar... A razão é a CVE-2007-3999! A última versão vulnerável do Kerberos foi a 1.16.2. A comparação da função vulnerável de 2007 (provavelmente os dados de treinamento de Claude) com a descoberta do Mythos fala por si: Kerberos vulnerável, 2007 // src/lib/rpc/svc_auth_gss.c // Adicionadas 2 novas linhas para alinhar os corpos

static bool_t svcauth_gss_validate(struct svc_req *rqst, struct svc_rpc_gss_data *gd, struct rpc_msg *msg) { struct opaque_auth *oa; gss_buffer_desc rpcbuf, checksum; OM_uint32 maj_stat, min_stat, qop_state; u_char rpchdr[128]; int32_t *buf;

log_debug("in svcauth_gss_validate()");

memset(rpchdr, 0, sizeof(rpchdr));

/* XXX - Reconstruindo o cabeçalho RPC para assinatura (de xdr_callmsg). */ buf = (int32_t *)(void *)rpchdr; IXDR_PUT_LONG(buf, msg->rm_xid); IXDR_PUT_ENUM(buf, msg->rm_direction); IXDR_PUT_LONG(buf, msg->rm_call.cb_rpcvers); IXDR_PUT_LONG(buf, msg->rm_call.cb_prog); IXDR_PUT_LONG(buf, msg->rm_call.cb_vers); IXDR_PUT_LONG(buf, msg->rm_call.cb_proc); oa = &msg->rm_call.cb_cred; IXDR_PUT_ENUM(buf, oa->oa_flavor); IXDR_PUT_LONG(buf, oa->oa_length); if (oa->oa_length) { memcpy((caddr_t)buf, oa->oa_base, oa->oa_length); buf += RNDUP(oa->oa_length) / sizeof(int32_t); } // Continuação... } FreeBSD vulnerável, 2026 // sys/rpc/rpcsec_gss/svc_rpcsec_gss.c static bool_t svc_rpc_gss_validate(struct svc_rpc_gss_client *client, struct rpc_msg *msg, gss_qop_t *qop, rpc_gss_proc_t gcproc) { struct opaque_auth *oa; gss_buffer_desc rpcbuf, checksum; OM_uint32 maj_stat, min_stat; gss_qop_t qop_state; int32_t rpchdr[128 / sizeof(int32_t)]; int32_t *buf;

rpc_gss_log_debug("in svc_rpc_gss_validate()");

memset(rpchdr, 0, sizeof(rpchdr));

/* Reconstruindo o cabeçalho RPC para assinatura (de xdr_callmsg). */ buf = rpchdr; IXDR_PUT_LONG(buf, msg->rm_xid); IXDR_PUT_ENUM(buf, msg->rm_direction); IXDR_PUT_LONG(buf, msg->rm_call.cb_rpcvers); IXDR_PUT_LONG(buf, msg->rm_call.cb_prog); IXDR_PUT_LONG(buf, msg->rm_call.cb_vers); IXDR_PUT_LONG(buf, msg->rm_call.cb_proc); oa = &msg->rm_call.cb_cred; IXDR_PUT_ENUM(buf, oa->oa_flavor); IXDR_PUT_LONG(buf, oa->oa_length); if (oa->oa_length) { memcpy((caddr_t)buf, oa->oa_base, oa->oa_length); buf += RNDUP(oa->oa_length) / sizeof(int32_t); } // Continuação... } O patch Kerberos da era George W. Bush também é quase idêntico ao que o FreeBSD implementou no mês passado após a descoberta feita pelo Mythos: *** src/lib/rpc/svc_auth_gss.c (revisão 20474) --- src/lib/rpc/svc_auth_gss.c (local)


*** 355,360 **** --- 355,369 ---- memset(rpchdr, 0, sizeof(rpchdr));

/* XXX - Reconstruindo o cabeçalho RPC para assinatura (de xdr_callmsg). */

  • oa = &msg->rm_call.cb_cred;
  • if (oa->oa_length > MAX_AUTH_BYTES)
  • return (FALSE);
  • /* 8 blocos XDR de chamadas de macro IXDR. */
  • if (sizeof(rpchdr) < (8 * BYTES_PER_XDR_UNIT +
  •  RNDUP(oa->oa_length)))
    
  • return (FALSE);
  • buf = (int32_t *)(void *)rpchdr; IXDR_PUT_LONG(buf, msg->rm_xid); IXDR_PUT_ENUM(buf, msg->rm_direction);

*** 362,368 **** IXDR_PUT_LONG(buf, msg->rm_call.cb_prog); IXDR_PUT_LONG(buf, msg->rm_call.cb_vers); IXDR_PUT_LONG(buf, msg->rm_call.cb_proc);

  • oa = &msg->rm_call.cb_cred; IXDR_PUT_ENUM(buf, oa->oa_flavor); IXDR_PUT_LONG(buf, oa->oa_length); if (oa->oa_length) { --- 371,376 ---- Então, a IA pode descobrir vulnerabilidades totalmente novas que exigem criatividade? Talvez. Mas no caso da CVE-2026-4747, a própria descoberta da vulnerabilidade se assemelha mais a um exemplo de criatividade combinatória: a IA fez uma descoberta que já estava em seus dados de treinamento. Atualmente, há uma discussão cada vez maior sobre essas "redescobras" de IA feitas em matemática e outras ciências; é hora de discuti-las também no campo da segurança cibernética. Quais são os limites das descobertas verdadeiramente novas da IA e existem limites? Essa diferença é tão importante? Vamos resumir Para entender a verdadeira ameaça da IA na segurança cibernética, é preciso separar o hype de ficção científica da realidade de como esses modelos realmente funcionam. A ameaça real: código reutilizado A CVE FreeBSD foi causada por negligência humana no início dos anos 2000. Mas hoje, em 2026, erros que já têm décadas estão sendo adicionados diretamente aos nossos sistemas em uma velocidade tremenda. LLMs no processo de configuração de nossos ambientes e escrita de novo código estão vomitando os mesmos padrões inseguros em que foram treinados. A IA encontrará essas falhas e as usará Os modelos modernos não precisam ser muito criativos para arruinar uma empresa ou desativar uma rede elétrica. Basta que eles trabalhem como poderosos caçadores de padrões, encontrando e usando bugs legados que modelos de IA mais fracos copiaram e colaram descuidadamente no ambiente. A defesa baseada em agentes é uma vantagem necessária No final das contas, não importa se o exploit é "único" ou apenas dados de treinamento memorizados. O que importa é o dano que ele pode causar quando usado, e a IA tornou o uso de exploits muito mais barato. No entanto, a aplicação de patches ainda pode ser mais barata e rápida do que um ataque. As organizações que começarem a usar as capacidades dos agentes antes dos invasores sairão na frente. Observação Um usuário do Reddit observou um erro significativo no artigo. Ele menciona um post https://github.com/califio/publications/blob/main/MADBugs/CVE-2026-4747/write-up.md Este é um repositório do GitHub pertencente à empresa de segurança cibernética Calif (seu blog: https://blog.calif.io ). Esta não é a Anthropic e ela não teve acesso ao Mythos Preview. Este não é um artigo da Anthropic, houve um erro. Aqui está uma linha do tempo útil para entender: 26 de março: a CVE FreeBSD foi lançada por "Nicholas Carlini Nicholas usando Claude, Anthropic" (é importante notar que Carlini, como de costume, não especificou o modelo Claude em seu relatório) https://www.freebsd.org/security/advisories/FreeBSD-SA-26:08.rpcsec_gss.asc 29 de março: pesquisadores de segurança da Calif, usando um relatório CVE e uma grande quantidade de prompts úteis, fizeram com que um modelo Claude disponível publicamente (o modelo específico também não é especificado) criasse um exploit. 31 de março: Calif publica seus resultados ( https://blog.calif.io/p/mad-bugs-claude-wrote-a-full-freebsd ) 7 de abril: Carlini relata que a CVE FreeBSD foi descoberta usando o novo modelo Anthropic Mythos Preview e que ele criou instantaneamente (e de forma autônoma) um exploit ( https://red.anthropic.com/2026/mythos-preview/ ) Os resultados da Calif causaram uma discussão animada, mas devido ao fato de que foi necessária uma grande quantidade de prompts humanos para criar o exploit, houve ceticismo sobre sua importância. O que é mais interessante nessa história é que o Mythos Preview pode passar autonomamente do processo de encontrar uma vulnerabilidade (que, como descobrimos neste artigo, é essencialmente idêntica à que foi corrigida anteriormente no Kerberos) para criar um exploit (e, claro, isso aconteceu antes da Calif, mas a Calif publicou seu artigo antes). Infelizmente, devido à proximidade dessas duas histórias, os leitores começaram a confundir os exploits da Calif e da Anthropic, bem como o repositório da Calif com o artigo da Anthropic. Tags: freebsd cve vulnerabilidades claude mythos exploits Hubs: Segurança da Informação Inteligência Artificial 0 0 1 128K+ Cobertura em 30 dias 2026 Karma @PatientZero Tradutor freelancer Assinar Fluxo de Segurança da Informação disponível 24 horas por dia, 7 dias por semana, graças ao apoio dos amigos do Habr Habr Cursos para todos PUBLICIDADE Prática, Hexlet, SkyPro, cursos do autor - reunimos todos e pedimos descontos. Tudo o que resta é escolher! Ir Ir para o fluxo de Segurança da Informação Comentários 1 Melhor do dia Semelhante Mostrar o melhor de todos os tempos

📤 Compartilhar & Baixar