PT-2022-28259 · Openzeppelin · Openzeppelin Contracts+1
Publicado
2022-01-13
·
Atualizado
2022-01-13
Nenhuma
Não há classificações de severidade ou métricas disponíveis. Quando houver, atualizaremos as informações correspondentes na página.
Nome do software vulnerável e versões afetadas
Versões do @openzeppelin/contracts anteriores à v4.4.2
Versões do @openzeppelin/contracts-upgradeable anteriores à v4.4.2
Descrição
O problema decorre do módulo
GovernorCompatibilityBravo, que pode levar à criação de propostas de governança que executam chamadas de função com argumentos incorretos devido a uma codificação ABI incorreta. Isso ocorre quando uma proposta é criada usando assinaturas de função explícitas. Por exemplo, uma proposta para invocar a função foo(uint256) criada como propose([target],[0],[“foo(uint256)”],[“0x00..01”]) é vulnerável. No entanto, se o seletor de função for fornecido como parte dos dados codificados da proposta, o problema não ocorre. Nenhuma ocorrência desse bug foi encontrada no passado, e a criação de propostas por meio do Tally ou do OpenZeppelin Defender não é afetada. O contrato principal Governor, por si só, também não é afetado.Recomendações
Para versões do @openzeppelin/contracts anteriores à v4.4.2, atualize para a versão v4.4.2 ou posterior.
Para versões do @openzeppelin/contracts-upgradeable anteriores à v4.4.2, atualize para a versão v4.4.2 ou posterior.
Como solução alternativa temporária, não crie propostas usando assinaturas de função explícitas. Em vez disso, use a função
propose sem o argumento signatures e crie a proposta usando a chamada de função totalmente codificada em ABI, incluindo o seletor de função no argumento calldatas. Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Openzeppelin Contracts
@Openzeppelin/Contracts-Upgradeable