CVE-2016-20046zFTP Client 20061220+dfsg3-4.1版本存在严重的缓冲区溢出漏洞。漏洞产生于程序处理FTP连接NAME参数时未正确校验数据长度。本地攻击者可利用该缺陷,通过构造超过80字节的超长NAME值覆盖指令指针,导致应用程序崩溃或以当前用户权限执行任意恶意代码,严重威胁主机安全。
该漏洞属于典型的栈缓冲区溢出。zFTP Client在处理FTP连接的NAME参数时,使用了不安全的内存拷贝操作。程序在栈上分配了一个固定大小的缓冲区(80字节)用于存储NAME值,但在接收数据前未进行严格的长度校验。当本地攻击者传入一个超过80字节的超长字符串时,数据将溢出缓冲区边界,覆盖栈帧中的关键信息,如返回地址或指令指针。由于无需认证和用户交互,攻击者可以精心构造包含恶意Shellcode的载荷,通过覆盖返回地址使其指向Shellcode在内存中的位置,从而劫持程序的执行流程,以当前用户的权限执行任意代码,实现权限提升或系统控制。