GNU Screen转义序列缓冲区溢出漏洞

漏洞信息详情

GNU Screen转义序列缓冲区溢出漏洞

漏洞简介

Screen是一款免费开放源代码的终端管理软件,由Free Software Foundation分发和维护,可使用在多种Unix和Linux操作系统下。
Screen不正确处理转义序列字符,本地或者远程攻击者可以利用这个漏洞进行缓冲区溢出攻击,精心构建提交数据可能以进程权限在系统上执行任意指令。
问题存在于ansi.c代码中:
ansi.c:
case \’\’0\’\’: case \’\’1\’\’: case \’\’2\’\’: case \’\’3\’\’: case \’\’4\’\’:
case \’\’5\’\’: case \’\’6\’\’: case \’\’7\’\’: case \’\’8\’\’: case \’\’9\’\’:
if (curr->w_NumArgs < MAXARGS)
{
if (curr->w_args[curr->w_NumArgs] < 100000000)
curr->w_args[curr->w_NumArgs] =
10 * curr->w_args[curr->w_NumArgs] + (c – \’\’0\’\’);
}
break;
case \’\’;\’\’:
case \’\’:\’\’:
curr->w_NumArgs++;
break;
w_NumArgs是一个符号整数,在转义字符中发送2GB\’\’;\’\’字符,会引起内部变量变为负值,这样就使能成功绕过< MAXARGS的保护检查,而后续的采用此负值的操作可导致破坏内存信息,可能以进程权限在系统上执行任意指令。
由于转义序列可源自使用SSH,telnet,或其他网络工具的远程网络会话,因此此漏洞也可能被远程利用。

漏洞公告

临时解决方法:
如果您不能立刻安装补丁或者升级,CNNVD建议您采取以下措施以降低威胁:

* 第三方补丁下载:

— ansi.c.old 2003-11-15 18:04:12.000000000 +0200

+++ ansi.c 2003-11-15 18:04:51.000000000 +0200

@@ -559,7 +559,7 @@

{

case ‘0’: case ‘1’: case ‘2’: case ‘3’: case ‘4’:

case ‘5’: case ‘6’: case ‘7’: case ‘8’: case ‘9’:

– if (curr->w_NumArgs < MAXARGS)

+ if (curr->w_NumArgs >= 0 && curr->w_NumArgs < MAXARGS)

{

if (curr->w_args[curr->w_NumArgs] < 100000000)

curr->w_args[curr->w_NumArgs] =
厂商补丁:
GNU

目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.gnu.org” target=”_blank”>
http://www.gnu.org

参考网址

来源: DEBIAN
名称: DSA-408
链接:http://www.debian.org/security/2004/dsa-408

来源: groups.yahoo.com
链接:http://groups.yahoo.com/group/gnu-screen/message/3118

来源: MANDRAKE
名称: MDKSA-2003:113
链接:http://www.mandriva.com/security/advisories?name=MDKSA-2003:113

来源: SECUNIA
名称: 10539
链接:http://secunia.com/advisories/10539

来源: BUGTRAQ
名称: 20031127 GNU screen buffer overflow
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=106995837813873&w=2

来源: CONECTIVA
名称: CLA-2004:809
链接:http://distro.conectiva.com.br/atualizacoes/?id=a&anuncio=000809

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享