CVE-2016-20049JAD Java反编译器1.5.8e-1kali1及更早版本中存在严重的栈缓冲区溢出漏洞。由于对输入长度缺乏有效验证,攻击者可诱骗用户处理特制的超大文件(超过8150字节),触发堆栈破坏并覆盖返回地址,最终导致应用程序崩溃或在系统上下文中执行任意恶意代码。
该漏洞主要归因于JAD在解析特定输入数据时缺乏必要的边界检查机制。当程序处理超过8150字节的超长输入字符串时,会触发基于栈的缓冲区溢出。攻击者能够利用这一缺陷,通过精心设计的恶意数据流覆盖栈帧中的关键区域,特别是函数返回地址。一旦返回地址被劫持,程序流程将被重定向至攻击者植入的Shellcode。由于此漏洞通过网络向量传播,且不需要任何身份验证或用户交互,攻击者可远程实现代码执行,完全控制受影响的主机。