CVE-2019-25634Base64 Decoder 1.1.2版本存在严重的栈缓冲区溢出漏洞。该漏洞允许本地攻击者通过构造特殊的输入文件来触发结构化异常处理(SEH)覆盖。攻击者利用输入数据溢出缓冲区,精确覆盖SEH链,并借助Egghunter技术在内存中定位并执行恶意Shellcode,最终成功实现本地任意代码执行,从而完全控制系统权限。
该漏洞源于Base64 Decoder在处理用户输入时未对数据长度进行严格校验,导致向栈缓冲区拷贝数据时发生溢出。攻击者可以精心构造恶意文件,利用溢出数据覆盖栈上的SEH(结构化异常处理)记录。攻击链首先通过填充数据覆盖至SEH处理程序位置,将SEH指针替换为指向特定"POP POP RET"指令的地址,从而在异常触发时劫持控制流。由于Shellcode可能不连续或空间受限,攻击者使用Egghunter payload在内存中搜索特定的标记(Egg),找到后跳转并执行后续的Shellcode,从而绕过部分空间限制,成功执行任意代码。