CVE-2026-73829 in mpp
要約
〜によって VulDB • 2026年08月19日
ZenHive mppにおけるTime-of-check Time-of-use (TOCTOU) Race Conditionにより、認証されていないリモートクライアントが、チェーン上の確認済み支払いを複数の有料リソースアクセスのために使い回すことが可能になる。
MPP.Methods.Tempo.verify/2のtype="hash"資格情報パスは、非原子性のチェック後マーキングシーケンスによるリプレイ攻撃から保護するよう設計されている:check_hash_unused/2が重複排除ストアを読み取り、eth_getTransactionReceiptの往復でチェーン上の支払いを検証し、その後初めてmark_hash_used/2がマークを書き込む。同じ決済済み支払いハッシュを含む並行リクエストは、いずれも書き込みが行われる前に読み取りを通過するため、それぞれにレシートが発行される。ストアには原子性のcheck_and_mark/2プリミティブが存在し、type="transaction"パスで使用されているが、hashパスでは構成されたストアがこの機能を実装している場合でも単純なgetとput呼び出しを行っている。攻撃には重複排除ストアの構成が必要であり、デフォルトのnilストアはステートレスで、リプレイ保護を一切提供しないことが文書化されている。
本問題はmpp: 0.2.0から0.6.1未満に影響する。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.