
테이블 인덱스 혼동을 통한 치명적인 WebAssembly OOB 읽기/쓰기를 시연하여 호스트 메모리를 누출하고 WASM 런타임에서 코드 실행을 잠재적으로 가능하게 합니다.
WebAssembly 모듈은 배열 인덱스에 대한 경계 검사가 없는 가져온(imported) 함수를 사용합니다. 공격자는 범위를 벗어난 인덱스를 제공하여 선형 메모리 외부를 읽거나 쓸 수 있으며, 호스트 기밀 정보를 유출하거나 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
출력은 배열 외부의 메모리 값을 보여줍니다.