本文揭示了CosmWasm运行时的一个栈溢出漏洞,该漏洞源于write_to_contract函数在分配内存时会回调WASM合约的allocate函数,恶意合约可利用此机制进行递归调用,最终导致栈溢出。文章提供了PoC、修复建议以及事件时间线。
write_to_contract
allocate
该安全公告 CWA-2023-002 描述了 CosmWasm 中的一个栈溢出漏洞,攻击者可以通过构造恶意合约利用 Wasm 导入和导出之间的递归循环,导致虚拟机崩溃。已发布补丁以修复此问题,建议相关项目升级其 wasmvm 依赖。