必须将javascript.options.wasm和dom.webassembly.enabled均设为false,清除cache2缓存目录,并验证typeof WebAssembly返回"undefined",否则Wasm仍可被Worker线程加载或通过接口暴露。

当您需要在火狐浏览器中彻底禁用WebAssembly以规避已知的二进制漏洞利用、WASI权限逃逸或恶意wasm模块静默执行等安全风险时,必须关闭其运行时引擎、阻止模块加载、清除残留编译缓存,并验证宿主环境不再暴露Wasm能力标识——仅禁用部分选项无法阻止攻击者通过fallback路径绕过。
全局禁用WebAssembly执行引擎
这一步直接切断火狐对.wasm文件的解析与实例化能力,所有import()、WebAssembly.compile()、WebAssembly.instantiate()调用将抛出TypeError且无法捕获恢复。
1、地址栏输入about:config并回车→点击“接受风险并继续”。
2、搜索javascript.options.wasm→双击将其值由true改为false。
3、搜索dom.webassembly.enabled→若存在此项,双击设为false;该参数是Firefox 102+新增的硬性开关,【漏改将导致wasm仍可被Worker线程加载】。
4、重启火狐浏览器,确保新配置载入主进程与所有子进程。
清除已预编译的Wasm模块缓存
即使禁用引擎,旧版火狐可能仍将已编译的wasm字节码缓存在磁盘中,重启后首次访问含wasm的页面仍会触发短暂加载尝试,存在侧信道泄露风险。
1、完全退出火狐,打开任务管理器确认无firefox.exe残留进程。
2、进入火狐配置目录,定位到cache2子文件夹(Windows路径示例:%APPDATA%\Mozilla\Firefox\Profiles\*.default-release\cache2)。
3、删除整个cache2文件夹——不要仅清空内容,因部分wasm缓存条目嵌套在entries子目录的二进制文件中,手动筛选极易遗漏。
4、重新启动火狐,此时about:cache页面中将不再显示任何application/wasm类型缓存条目。
验证Wasm能力是否彻底消失
方法一:控制台检测
1、打开新标签页,按Ctrl+Shift+K唤出Web控制台。
2、输入typeof WebAssembly并回车——返回结果必须为"undefined",若为"object"说明禁用失败。
方法二:网页实测
访问https://webassembly.github.io/demo/→点击“Run”按钮→页面应立即报错且不渲染任何图形;若出现方块动画或控制台输出“Compiled!”则需回溯检查dom.webassembly.enabled是否被其他扩展动态重写。
方法三:服务端指纹验证
打开about:config→搜索dom.webapi.enabled→确认该值不存在或未被设为true;【若此参数被设为true,将强制向网页暴露WebAssembly接口,覆盖wasm引擎禁用效果】。


















