CVE-2025-65570CVE-2025-65570是jsish 2.0版本中的一个严重类型混淆漏洞,CVSS评分高达9.8(严重级别)。该漏洞源于JavaScript引擎在执行OP_NEXT操作码时的控制流错误,当在for-in循环中使用instanceof表达式且左操作数为数组元素访问时,OP_INSTANCEOF指令的实现会在栈上留下额外的数组引用而不是正确消费它。攻击者可利用此漏洞诱使OP_NEXT将数组误认为迭代器对象,并从无效内存结构中读取iterCmd函数指针,最终可能导致服务崩溃或实现远程代码执行。此漏洞无需认证即可远程利用,对系统机密性、完整性和可用性均造成严重影响。
该漏洞的根本原因在于jsish 2.0 JavaScript引擎的指令执行逻辑存在缺陷。在特定代码模式下,当执行instanceof操作时,如果左操作数是数组元素访问(如arr[i] instanceof SomeType),OP_INSTANCEOF指令的实现未能正确清理栈上的数组引用。这个未被消费的数组引用残留在栈上,随后被OP_NEXT指令错误地解释为迭代器对象。OP_NEXT尝试从该数组对象中读取iterCmd函数指针时,访问了无效的内存结构,导致内存破坏。根据堆布局情况,攻击者可能通过精心构造的堆喷射技术控制函数指针指向的地址,从而实现任意代码执行。此漏洞的技术难点在于需要精确控制JavaScript代码的执行顺序和内存布局,以触发类型混淆条件并实现代码执行。