CVE-2025-54070 in openzeppelin-contractsИнформация

Сводка

по VulDB • 25.05.2026

OpenZeppelin Contracts — это библиотека для безопасной разработки смарт-контрактов. Начиная с версии 5.2.0 и вплоть до версии 5.4.0 (включительно), функция `lastIndexOf(bytes,byte,uint256)` библиотеки `Bytes.sol` может обращаться к неинициализированной памяти при соблюдении следующих двух условий: 1) длина предоставленного буфера пуста (т. е. `buffer.length == 0`), а позиция не равна `2**256 - 1` (т. е. `pos != type(uint256).max`). Аргумент `pos` может быть использован для доступа к произвольным данным за пределами границ буфера. Это может привести к исчерпанию газа (out of gas) или возврату недействительного индекса (за пределами пустого буфера). Обработка этого недействительного результата при доступе к `buffer` в нормальных условиях вызывает откат транзакции (revert). При срабатывании функция читает память по смещению `buffer + 0x20 + pos`. Если память по этому адресу (вне `buffer`) совпадает с шаблоном поиска, функция возвращает индекс за пределами допустимых границ вместо ожидаемого значения `type(uint256).max`. Это создает непредвиденное поведение, при котором вызывающие стороны получают индекс, который выглядит корректно, но указывает на данные за пределами границ буфера. Последующие обращения к памяти, которые не проверяют границы и используют возвращенный индекс, должны тщательно оценивать потенциальное влияние в зависимости от их конфигурации. Код, полагающийся на то, что эта функция возвращает `type(uint256).max` для пустых буферов, или использующий возвращенный индекс без проверки границ, может демонстрировать неопределенное поведение. Пользователям следует обновиться до версии 5.4.0, чтобы получить исправление.

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

Ответственный

GitHub M

Резервировать

16.07.2025

Раскрытие

17.07.2025

Модерация

принято

Вход

VDB-316817

EPSS

0.00334

KEV

Нет

Деятельности

Очень низкий

Источники

Do you know our Splunk app?

Download it now for free!