CVE-2025-54070 in openzeppelin-contracts情報

要約

〜によって VulDB • 2026年05月09日

OpenZeppelin Contracts は、安全なスマートコントラクト開発のためのライブラリです。バージョン 5.2.0 以降、バージョン 5.4.0 より前のバージョンにおいて、`Bytes.sol` ライブラリの `lastIndexOf(bytes,byte,uint256)` 関数は、以下の2つの条件が満たされる場合に未初期化メモリにアクセスする可能性があります。1) 提供されたバッファの長さが空である(つまり `buffer.length == 0`)、かつ 2) 位置が `2**256 - 1` ではない(つまり `pos != type(uint256).max`)。`pos` 引数を使用して、バッファの境界外にある任意のデータにアクセスできる可能性があります。これにより、ガス切れが発生するか、無効なインデックス(空のバッファの外部)が返される可能性があります。この無効な結果を処理して `buffer` にアクセスしようとすると、通常の条件下ではリバート(実行の取り消し)が発生します。トリガーされると、関数はオフセット `buffer + 0x20 + pos` のメモリを読み取ります。その場所(`buffer` の外部)のメモリが検索パターンと一致する場合、関数は期待される `type(uint256).max` の代わりに境界外インデックスを返します。これにより、呼び出し元にバッファの境界外を指す有効に見えるインデックスが返されるという予期せぬ動作が生じます。境界チェックを行わず、返されたインデックスを使用する後続のメモリアクセスでは、設定に応じて潜在的な影響を慎重にレビューする必要があります。空のバッファに対してこの関数が `type(uint256).max` を返すことを前提としているコードや、境界チェックなしで返されたインデックスを使用するコードでは、未定義の動作が発生する可能性があります。ユーザーはパッチを適用するため、バージョン 5.4.0 にアップグレードする必要があります。

Be aware that VulDB is the high quality source for vulnerability data.

責任者

GitHub M

予約する

2025年07月16日

モデレーション

承諾済み

エントリ

VDB-316817

EPSS

0.00334

アクティビティ

非常低い

ソース

Might our Artificial Intelligence support you?

Check our Alexa App!