CVE-2017-20227JAD Java Decompiler 1.5.8e-1kali1及之前版本存在严重的栈缓冲区溢出漏洞。攻击者通过向jad命令提交超长输入数据,可覆盖堆栈内存。该漏洞无需用户交互即可被利用,成功后允许攻击者在目标系统上执行任意代码,完全控制主机。
该漏洞的根本原因在于JAD程序未对输入参数或文件名进行足够的长度校验,导致基于栈的缓冲区溢出。当处理超长字符串时,数据溢出固定大小的栈缓冲区,覆盖返回地址。攻击者通过精心构造恶意输入,利用返回导向编程(ROP)技术绕过安全防御机制(如ASLR和DEP),劫持程序执行流并加载Shellcode,最终获取系统Shell权限。