
एक गंभीर WebAssembly OOB रीड/राइट को टेबल इंडेक्स कन्फ्यूज़न के माध्यम से प्रदर्शित करता है, जो होस्ट मेमोरी लीक करता है और WASM रनटाइम्स में कोड निष्पादन को संभावित रूप से सक्षम बनाता है।
एक WebAssembly मॉड्यूल एक आयातित फ़ंक्शन का उपयोग करता है जिसमें ऐरे इंडेक्स पर कोई बाउंड्स जाँच नहीं होती। एक हमलावर लीनियर मेमोरी के बाहर पढ़ने या लिखने के लिए आउट-ऑफ-बाउंड्स इंडेक्स प्रदान कर सकता है, जिससे संभावित रूप से होस्ट रहस्य लीक हो सकते हैं या WASM रनटाइम में कोड निष्पादन प्राप्त हो सकता है।
unsafe कोड जो इंडेक्स को ऐरे की लंबाई तक सीमित (clamp) किए बिना रॉ पॉइंटर को ऑफसेट करता है।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
आउटपुट ऐरे के बाहर से एक मेमोरी मान दिखाता है।