O PraisonAI armazena decisões de aprovação de ferramentas em cache utilizando apenas o nome da ferramenta, o que permite a reutilização de uma aprovação inicial para chamadas subsequentes com argumentos arbitrários. Um invasor pode obter aprovação para uma operação benigna e, em seguida, executar operações perigosas, como gravações de arquivos, com parâmetros não revisados na mesma sessão. Isso ocorre porque a função `ApprovalRegistry.is already approved()` retorna `True` se o nome da ferramenta estiver presente no conjunto de contexto por execução, independentemente dos argumentos utilizados. As funções `approve sync()` e `approve async()` interrompem o processo com base nesse cache antes de consultar o backend de aprovação. Embora ferramentas de nível crítico, como `execute command()` e `execute code()`, estejam isentas, ferramentas de alto risco, como `write file()`, são afetadas.