O erro mais caro que vejo em programas Solana: overflow não verificado em Rust
Descubra como a falta de checagem de overflow pode drenar dezenas de milhares de dólares e como corrigir em até 3 linhas de código.
Mais de 40 % dos exploits em Solana em 2025 foram causados por overflow não detectado em Rust.
**Problema** Fundadores e CTOs que lidam com projetos acima de R$ 30 mil por contrato veem o risco de perdas inesperadas quando cálculos de token ultrapassam o limite de `u64`. A auditoria pré‑launch costuma apontar o ponto, mas a correção costuma ser adiada por questões de prazo, expondo o programa a ataques de overflow que podem queimar todo o pool de liquidez.
**Insight** Nossa equipe adota três práticas que evitam esse ponto fraco: 1. Substituímos todas as operações aritméticas por métodos *checked* (`checked_add`, `checked_sub`, `checked_mul`). 2. Integramos o lint `cargo-audit` com regras customizadas que falham a compilação ao detectar uso de operadores `+`, `-`, `*` sem verificação. 3. No Anchor, criamos um macro `safe_math!` que encapsula a lógica de verificação e gera um erro `ProgramError::Custom(0xDEAD)` caso o overflow ocorra, garantindo que a transação seja revertida antes de qualquer estado ser gravado.
**Código vulnerável** // Vulnerável: soma sem checagem let new_balance = user.balance + amount; // overflow possível **Correção em 2 linhas** let new_balance = user.balance.checked_add(amount).ok_or(ProgramError::Custom(0xDEAD))?; A mudança elimina a possibilidade de overflow e mantém a lógica de negócios intacta.
**Evidência** Em um audit anônimo de um protocolo de staking, identificamos um overflow que teria drenado US$ 210 k. A correção acima foi aplicada em 3 linhas e o relatório final confirmou a remoção total da vulnerabilidade.
**CTA** ⚠ Precisa garantir que seu programa Solana esteja livre de overflow antes do launch? Converse com nossa equipe: https://drexbrasil.com/contato