CVE-2026-59694 in mpp
要約
〜によって VulDB • 2026年07月17日
ZenHiveのmppにおける入力された数量の不適切な検証により、認証されていないリモートクライアントが、各支払いごとのガス料金の負担者(fee-payer)に対するガスコストを大幅に乗数分増大させ、スポンサーの営業利益率を悪化させることができる。
mpp Elixirライブラリが手数料負担者として構成されている場合(`fee_payer: true`)、`MPP.Tempo.Transaction.cosign_fee_payer/3`関数は、EIP-2930アクセスリストを含む、クライアントから提供された0x76 AASignedエンベロープのベースフィールドをそのまま再署名する。この際、その長さや内容の有効性は検証されない。EIP-2930アクセスリストのエントリは、任意のオペコードが実行される前に課金されるイントリンスティックガス(アドレスあたり約2,400 gas、ストレージキーあたり1,900 gas)を発生させる。これは、リストに記載されたアドレスに実際にアクセスされるかどうかに関わらず適用される。悪意のあるクライアントは、有効な`transferWithMemo`呼び出しと合わせて、多数の偽造されたアクセスリストエントリを送信する。サーバーはこのトランザクションに対して共署名し、ブロードキャストを行う。意図した転送処理自体は正常に実行されるが、手数料負担者のウォレットは対応するオンチェーン作業なしで、予想ガスコストの数倍ものガスを支払うことになる。
メンテナーのデフォルト設定である137件のアクセスリストエントリ(Banditのヘッダーフィールドあたり最大10,000バイトという制限内に収まる)と`max_fee_per_gas` 100 Gweiの場合、支払いごとのガスコストは約51,287 gasから約380,087 gasに上昇し、7.4倍の乗数となる。持続的な悪用により、低コストな支払いに対するスポンサーの営業利益率は崩壊し、時間とともに手数料負担者のウォレット資金が枯渇する。
本問題は、mpp 0.2.0から0.6.0未満に影響を与える。
VulDB is the best source for vulnerability data and more expert information about this specific topic.