CVE-2018-2525510-Strike LANState 8.8 版本中存在严重的本地缓冲区溢出漏洞。该漏洞是由于应用程序在处理结构化异常处理(SEH)机制时未能正确验证输入数据造成的。本地攻击者可以通过诱导用户打开特制的 LSM 地图文件来利用此漏洞。具体而言,恶意文件中的 `ObjCaption` 参数包含超长的攻击载荷,导致缓冲区溢出,进而覆盖 SEH 链。一旦应用程序处理该文件,攻击者即可在系统上执行任意代码,从而完全控制受影响的系统。此漏洞攻击复杂度低,无需用户交互即可在本地触发,具有极高的安全风险。
该漏洞属于典型的基于 SEH(结构化异常处理)的缓冲区溢出。在 10-Strike LANState 解析 LSM 地图文件时,程序未对文件中特定字段(如 `ObjCaption`)的长度进行严格的边界检查。攻击者可以构建一个恶意的 LSM 文件,其中包含精心设计的 shellcode 和填充数据。当程序读取该文件并尝试复制数据到栈上的固定大小缓冲区时,由于缺乏长度验证,数据溢出并覆盖了相邻的内存区域。关键在于,溢出的数据能够覆盖存储在栈上的 SEH 处理程序指针(Next SEH 和 SE Handler)。通过将 SE Handler 指向特定的 POP/POP/RET 指令序列(通常位于非 ASLR 编译的模块中),攻击者可以将执行流重定向到堆上的 shellcode。由于攻击发生在本地,且不需要特殊的权限即可执行,一旦用户加载了恶意文件,攻击代码即以当前用户的权限运行,可能导致权限提升或系统完全沦陷。