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
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.
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.
O essencial da IA — uma vez por semana
Sete histórias que realmente importaram, escolhidas a dedo. Sem ruído nem releases.
Pronto! Verifique seu e-mail para a confirmação.