Reentrância (Solana)
Segurança · Profundo
No contexto da Solana, reentrância refere-se a um cenário durante uma chamada CPI onde o programa chamado invoca de volta o programa chamador (reentrância direta) ou uma conta mutável compartilhada via um terceiro programa (reentrância indireta), potencialmente fazendo o programa chamador re-executar lógica com estado parcialmente modificado pelo CPI intermediário. O runtime Solana previne reentrância direta no mesmo programa no nível da VM — um programa não pode fazer CPI em si mesmo — mas reentrância indireta através de contas mutáveis compartilhadas é possível e pode causar vulnerabilidades de recarregamento de conta onde dados cacheados de conta do programa se tornam obsoletos. Programas devem recarregar estado de conta após cada CPI que possa ter modificado contas compartilhadas e evitar assumir que invariantes pré-CPI se mantêm após.