Unsafe Deserialization

Segurança · Abismo

Uma vulnerabilidade onde dados de conta são deserializados em uma struct Rust sem validar que o comprimento dos dados, discriminador ou conteúdo corresponde às expectativas, potencialmente permitindo que um atacante construa bytes de conta maliciosamente estruturados que causem comportamento indefinido, pulem inicialização de campos ou sejam mal interpretados como um tipo de struct diferente. Em programas Solana, usar try_from_slice em dados menores que a struct esperada silenciosamente tem sucesso em algumas configurações (ou entra em panic em outras), deixando campos zerados ou corrompidos. O padrão seguro é sempre validar o prefixo discriminador, usar try_from_slice_unchecked apenas quando limites são independentemente garantidos e aproveitar a imposição automática de discriminador do Anchor na deserialização Account<'info, T>.

Termos relacionados