Irssi WALLOPS消息单字节堆溢出漏洞

受影响系统:

irssi irssi 0.8.13

描述:


BUGTRAQ  ID: 35399
CVE(CAN) ID: CVE-2009-1959

irssi是一款免费开放源代码的IRC客户端,可使用在Linux和Unix操作系统下。

irssi的fe-common/irc/fe-events.c文件的event_wallops函数中存在堆溢出漏洞:

2  fe-events.c : irssi
3
4     Copyright (C) 1999-2000 Timo Sirainen
      …
284 static void event_wallops(IRC_SERVER_REC *server, const char *data, const char *nick, const char *addr)
285 {
286         g_return_if_fail(data != NULL);
287
288         if (*data == ‘:’) data++;
289         if (ignore_check(SERVER(server), nick, addr, NULL, data, MSGLEVEL_WALLOPS))
290                 return;
291
292         if (g_ascii_strncasecmp(data, "01ACTION ", 8) != 0)
293                 printformat(server, NULL, MSGLEVEL_WALLOPS, IRCTXT_WALLOPS, nick, data);
294         else {
295                 /* Action in WALLOP */
296                 int len;
297                 char *tmp;
298
299                 tmp = g_strdup(data+8);
300                 len = strlen(tmp);
301                 if (tmp[len-1] == 1) tmp[len-1] = ”;
302                 printformat(server, NULL, MSGLEVEL_WALLOPS, IRCTXT_ACTION_WALLOPS, nick, tmp);
303                 g_free(tmp);
304         }
305 }

该函数用于处理WALLOPS IRC命令。用户可以在300行使用0长度的命令,导致在301行出现越界读取。如果在该行存在整数值1,由于会用空字节覆盖之前块的第一个整数,这可能导致单字节的下溢。

<*来源:nemo (nemo@felinemenace.org
  
  链接:http://bugs.irssi.org/index.php?do=details&task_id=662
        http://xorl.wordpress.com/2009/05/28/irssi-event_wallops-off-by-one-readwrite/
*>

测试方法:


警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

: WALLOPS \001ACTION

建议:


厂商补丁:

irssi
—–
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://real.irssi.org

发表评论?

0 条评论。

发表评论