LLMs falham em unsafe Rust: seis meses de testes revelaram erros críticos

Durante seis meses, o autor fez LLMs escreverem código unsafe Rust em projetos reais e analisou os resultados com Miri. Os modelos erram de forma consistente: aliasing, provenance, layout no gerenciamento de memória, ManuallyDrop esquecido, condições de corrida em FFI, Send/Sync incorretos e memória não inicializada. Cada erro pode ser reproduzido e corrigido.

Processado por IA de Habr AI; editado por Hamidun News
LLMs falham em unsafe Rust: seis meses de testes revelaram erros críticos
Fonte: Habr AI. Colagem: Hamidun News.
Ouvir artigo
Ficha técnica e números-chave
ParâmetroDados
Fonte originalHabr AI ↗
Editor-chefe
Dado-chave #1Aliasing — violação da regra de referências não sobrepostas
Dado-chave #2Provenance — tentativas de usar ponteiros obtidos incorretamente
Dado-chave #3Layout em alloc/dealloc — incompatibilidade de tamanho/alinhamento durante alocação e desalocação

O autor teve LLM escrever código unsafe Rust em projetos em produção por seis meses e verificou cada bloco com Miri e sanitizadores. O resultado foi decepcionante: os modelos cometeram os mesmos erros de forma previsível e consistente.

Sete categorias de erros do LLM em unsafe Rust

Os modelos cometem erros consistentemente nos mesmos locais:

  • Aliasing — violação da regra de referências não sobrepostas
  • Provenance — tentativas de usar ponteiros obtidos incorretamente
  • Layout em alloc/dealloc — incompatibilidade de tamanho/alinhamento durante alocação e desalocação
  • ManuallyDrop — esquecem de chamar drop ou acessam o objeto após drop
  • Corridas em callbacks FFI — condições de corrida ao chamar funções C de threads
  • Manual Send/Sync — implementam incorretamente traits de segurança de threads
  • Memória Uninit — tratam dados não inicializados como inicializados

Por que Miri revelou os problemas

Miri é um interpretador Rust que rastreia comportamento indefinido. Quando LLM gera código com violações sutis à primeira vista (por exemplo, um ponteiro temporário com proveniência incorreta), o compilador regular o ignora, mas Miri o detecta. Sob sanitizadores (AddressSanitizer, ThreadSanitizer), foram descobertos race conditions e use-after-free, que podem não aparecer em testes regulares.

"Cada categoria vem com um exemplo mínimo e uma correção" — o autor

mostra que não são apenas observações, mas padrões de erro reproduzíveis.

O que isso significa

LLMs ainda não estão prontos para escrever unsafe Rust sem supervisão humana. Geram bem sintaxe e lógica geral, mas cometem erros sistematicamente em gerenciamento de memória e multithreading. Para código crítico (software de sistema, bibliotecas de sistema), o unsafe Rust dos modelos deve ser verificado com Miri.

Perguntas frequentes sobre a notícia

O que se sabe sobre Sete categorias de erros do LLM em unsafe Rust?

Os modelos cometem erros consistentemente nos mesmos locais: Aliasing — violação da regra de referências não sobrepostas Provenance — tentativas de usar ponteiros obtidos incorretamente Layout em alloc/dealloc — incompatibilidade de tamanho/alinhamento durante alocação e desalocação ManuallyDrop — esquecem de chamar drop ou acessam o objeto após drop Corridas em callbacks FFI — condições de corrida ao chamar funções C de threads Manual Send/Sync — implementam incorretamente traits de segurança de threads Memória Uninit — tratam dados não inicializados como inicializados

Por que Miri revelou os problemas?

Miri é um interpretador Rust que rastreia comportamento indefinido. Quando LLM gera código com violações sutis à primeira vista (por exemplo, um ponteiro temporário com proveniência incorreta), o compilador regular o ignora, mas Miri o detecta. Sob sanitizadores (AddressSanitizer, ThreadSanitizer), foram descobertos race conditions e use-after-free, que podem não aparecer em testes regulares. "Cada categoria vem com um exemplo mínimo e uma correção" — o autor mostra que não são apenas observações, mas padrões de erro reproduzíveis.

O que isso significa?

LLMs ainda não estão prontos para escrever unsafe Rust sem supervisão humana. Geram bem sintaxe e lógica geral, mas cometem erros sistematicamente em gerenciamento de memória e multithreading. Para código crítico (software de sistema, bibliotecas de sistema), o unsafe Rust dos modelos deve ser verificado com Miri.

ZK
Zhemal Khamidun — CPO da Alpina Digital, gerente de produto do AlpinaGPT. Cria produtos de IA desde 2019. O Hamidun News é um projeto pessoal que virou um agregador em produção com mais de 6.000 leitores.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
O que você acha?
Carregando comentários…