
テーブルインデックス混乱による重大なWebAssembly OOB(範囲外)読み取り/書き込みを実証し、ホストメモリを漏洩させ、WASMランタイムでのコード実行を可能にする可能性があります。
WebAssemblyモジュールは、配列インデックスに対する境界チェックを行わないインポート関数を使用しています。攻撃者は範囲外のインデックスを渡すことで、リニアメモリの外部を読み書きできる可能性があり、ホストの秘密情報の漏えいやWASMランタイムでのコード実行につながる恐れがあります。
unsafe コード。rustup target add wasm32-unknown-unknown
rustc --target wasm32-unknown-unknown -O wasm_vuln.rs -o wasm_vuln.wasm
pip install wasmer wasmer_compiler_cranelift
python exploit_wasm_oob.py
出力には、配列外のメモリ値が表示されます。