CVE-2018-25217PDF Explorer 1.5.66.2版本存在严重的结构化异常处理(SEH)溢出漏洞。由于软件在处理“自定义字段设置”对话框中的Label字段输入时缺乏足够的边界检查,本地攻击者可以构造特殊的恶意数据覆盖SEH记录,进而触发缓冲区溢出,最终导致系统执行任意恶意代码,完全控制受影响的主机。
该漏洞属于典型的SEH(结构化异常处理)覆盖漏洞。攻击原理基于PDF Explorer在处理“自定义字段设置”对话框中Label字段的输入时,未对数据长度进行严格校验,导致基于栈的缓冲区溢出。攻击者通过精心构造的Payload,首先用特定字符填充缓冲区直至覆盖异常处理链表中的记录。在Payload中,攻击者将Next SEH字段替换为跳转指令(如\xEB\x06\x90\x90),将SE Handler字段替换为指向程序内存中可用的POP/POP/RET指令序列的地址(ROP Gadget)。当程序触发异常时,系统执行异常处理例程,首先执行POP/POP/RET返回到Next SEH,进而通过跳转指令滑入并执行放置在堆栈上的Shellcode。由于攻击向量为本地且无需用户交互,一旦攻击者获得系统访问权限,即可利用此漏洞提升权限或维持持久化访问。