源自4.x BSD的FTP服务器实现包含一个严重漏洞,可以远程获取root权限。 在replydirname()函数中存在单字节缓冲区溢出,此时会覆盖修改被保存的EBP寄存器,当replydirname()函数返回的时候,主调函数中EBP寄存器值被设置成修改后的值。如果主调函数不受此影响并开始正常返回,由于EBP寄存器值已经是修改后的值,提取用于返回的EIP寄存器值的时候并不是从正常位置提取,如果相关栈区在攻击者控制下,程序流程发生变化,此时可以继续采用传统缓冲区溢出技术进一步获取root权限。 如果系统支持匿名可写目录,比如存在incoming目录,该漏洞很容易成功。缺省情况下溢出条件不满足。此外,OpenBSD缺省情况下FTP服务是关闭的。
源自4.x BSD的FTP服务器实现包含一个严重漏洞,可以远程获取root权限。 在replydirname()函数中存在单字节缓冲区溢出,此时会覆盖修改被保存的EBP寄存器,当replydirname()函数返回的时候,主调函数中EBP寄存器值被设置成修改后的值。如果主调函数不受此影响并开始正常返回,由于EBP寄存器值已经是修改后的值,提取用于返回的EIP寄存器值的时候并不是从正常位置提取,如果相关栈区在攻击者控制下,程序流程发生变化,此时可以继续采用传统缓冲区溢出技术进一步获取root权限。 如果系统支持匿名可写目录,比如存在incoming目录,该漏洞很容易成功。缺省情况下溢出条件不满足。此外,OpenBSD缺省情况下FTP服务是关闭的。