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:
- Substituímos todas as operações aritméticas por métodos checked (
checked_add,checked_sub,checked_mul). - Integramos o lint
cargo-auditcom regras customizadas que falham a compilação ao detectar uso de operadores+,-,*sem verificação. - No Anchor, criamos um macro
safe_math!que encapsula a lógica de verificação e gera um erroProgramError::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