CVE-2025-54070 in openzeppelin-contractsinformação

Sumário

de VulDB • 25/05/2026

O OpenZeppelin Contracts é uma biblioteca para o desenvolvimento seguro de smart contracts. A partir da versão 5.2.0 e até a versão 5.4.0, a função `lastIndexOf(bytes,byte,uint256)` da biblioteca `Bytes.sol` pode acessar memória não inicializada quando as duas condições a seguir são atendidas: 1) o comprimento do buffer fornecido é vazio (ou seja, `buffer.length == 0`) e a posição não é `2**256 - 1` (ou seja, `pos != type(uint256).max`). O argumento `pos` poderia ser usado para acessar dados arbitrários fora dos limites do buffer. Isso poderia levar a operação a ficar sem gás (out of gas) ou retornar um índice inválido (fora do buffer vazio). O processamento deste resultado inválido para acessar o `buffer` causaria um revert (reversão) em condições normais. Quando acionada, a função lê a memória no deslocamento `buffer + 0x20 + pos`. Se a memória nessa localização (fora do `buffer`) corresponder ao padrão de busca, a função retornaria um índice fora dos limites em vez do esperado `type(uint256).max`. Isso cria um comportamento inesperado onde os chamadores recebem um índice com aparência válida que aponta para fora dos limites do buffer. Acessos subsequentes à memória que não verificam os limites e usam o índice retornado devem revisar cuidadosamente o impacto potencial dependendo de sua configuração. O código que depende desta função retornando `type(uint256).max` para buffers vazios ou que usa o índice retornado sem verificação de limites pode exibir comportamento indefinido. Os usuários devem atualizar para a versão 5.4.0 para receber o patch.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsável

GitHub M

Reservar

16/07/2025

Divulgação

17/07/2025

Moderação

aceite

Entrada

VDB-316817

CPE

pronto

EPSS

0.00334

KEV

não

Atividades

muito baixo

Fontes

Want to know what is going to be exploited?

We predict KEV entries!