漏洞总结:NEMU 中 vsetvli/vsetivli/vsetvl 解码掩码错误 漏洞概述 在 NEMU 模拟器中, 、 和 指令的解码逻辑存在错误。根据 RISC-V 向量扩展规范,这些指令的 字段(位于指令的 bits 14-12)必须为 。然而,NEMU 当前的解码逻辑使用了 (即忽略该字段),导致任何 opcode 为 的指令都会被错误地解码为 指令,从而引发非法指令异常。 影响范围 受影响指令: 、 、 。 触发条件:当程序执行 opcode 为 且 不为 的指令时,NEMU 会将其误判为向量配置指令,导致模拟行为与真实硬件不符。 错误表现:在测试中表现为 异常(如截图中的 异常)。 修复方案 开发者 指出,问题根源在于 的解码逻辑。 根本原因: 指令被错误地解码为 ( )而不是 ( )。 修复代码:在 文件中,修正 的解码表,确保 字段正确匹配。 修复代码块: POC / 复现代码 用户 提供了用于复现该问题的汇编代码片段: