CVE-2019-25631AIDA64 Business 5.99.4900版本存在严重的结构化异常处理(SEH)缓冲区溢出漏洞。该漏洞允许本地攻击者在无需认证和用户交互的情况下,通过覆盖SEH指针来执行任意代码。攻击者可以利用应用程序偏好设置或报告向导中的SMTP显示名称字段,注入包含Egg Hunter shellcode的恶意数据。成功触发该漏洞后,攻击者可获得应用程序级别的权限,导致系统机密性、完整性和可用性受到严重破坏。
该漏洞的核心机制是结构化异常处理(SEH)指针覆盖,属于基于栈的缓冲区溢出。AIDA64 Business在解析用户输入的SMTP显示名称时,缺乏必要的长度验证机制。攻击者通过向该字段输入超长数据,可以淹没缓冲区并覆盖栈上的异常处理程序注册地址。由于直接将完整的Shellcode放入缓冲区可能受到空间大小或“坏字符”限制,攻击者采用了Egg Hunter技术。利用流程如下:首先在内存中放置带有特定标记(Egg)的核心Shellcode;然后在溢出缓冲区中放置体积较小的搜索代码(Hunter)以及用于控制执行流的POP POP RET指令地址。当程序触发异常时,系统执行被覆盖的SEH处理程序,跳转到Hunter代码。Hunter代码遍历内存寻找Egg标记,找到后跳转执行核心Shellcode,从而在本地系统中以应用程序权限执行任意代码。