CVE-2016-20042TRN 3.6-23版本中存在栈缓冲区溢出漏洞。攻击者可利用超长参数导致程序崩溃或执行任意代码。由于无需认证和用户交互,本地攻击者可轻易利用该漏洞覆盖返回地址,以用户权限运行恶意Shellcode,威胁系统机密性、完整性和可用性。
该漏洞属于典型的基于栈的缓冲区溢出。在TRN 3.6-23版本中,应用程序在处理用户提供的命令行参数时,缺乏必要的边界检查机制。攻击者可以向应用程序传递一个精心构造的超长字符串作为参数。该字符串的前156字节用于填充缓冲区,直到覆盖栈上的基址指针(EBP)和返回地址。紧随其后的是攻击者控制的返回地址,该地址指向注入的Shellcode或ROP链。当受影响的函数尝试返回时,CPU会从栈中弹出被篡改的返回地址并跳转执行,从而赋予攻击者本地代码执行权限。由于CVSS评分显示无需用户交互且无需认证,一旦攻击者获得本地系统的访问权限(如通过低权限账户),即可利用此漏洞提升权限或执行恶意操作,完全控制受影响主机。