CVE-2019-25604DVDXPlayer Pro 5.5版本存在严重的本地缓冲区溢出漏洞。该漏洞源于程序未能正确处理结构化异常处理(SEH)链。本地攻击者可诱导用户打开精心构造的.plf播放列表文件,触发缓冲区溢出并覆盖SEH记录。这允许攻击者劫持控制流并执行任意代码。成功利用此漏洞可能导致攻击者获取应用程序权限,完全控制受影响系统,威胁极高。
该漏洞属于典型的基于Windows结构化异常处理(SEH)机制的缓冲区溢出。在DVDXPlayer Pro 5.5解析.plf播放列表文件时,软件未对文件中的特定字段进行有效的边界检查。攻击者可以构造一个超长的恶意文件,其数据结构通常包含三部分:用于填充缓冲区直至覆盖SEH记录的垃圾数据、用于跳转定位的空操作指令以及最终执行的恶意载荷。
当程序尝试加载该文件时,数据溢出栈空间并覆盖了栈上的异常处理链表(SEH Chain)。其中,SEH结构的“Next SEH”指针和“Handler”指针被篡改。攻击者通常将Handler指针指向系统DLL中包含的“POP POP RET”指令地址。当程序触发异常时,系统执行该指令序列,使栈顶指针(ESP)指向“Next SEH”区域。攻击者在“Next SEH”位置放置一段跳转指令,使控制流跳回NOP Sleds区域,最终滑入并执行Shellcode。利用此方式,攻击者可绕过部分安全防护,在本地系统权限下执行任意代码。