Perdition是日本Horms Solutions公司的一款POP3和IMAP4代理服务器,它能够处理加密的纯文本和SSL/TLS连接,以及将用户重定向到访问的服务器。
Perdition IMAPD的一个IMAP输出字符串格式化函数中存在格式串漏洞,远程攻击者可能利用此漏洞控制服务器。
在某些情况下,未经验证便将IMAP标签(IMAP命令的最初部分)拷贝到了字符缓冲区,然后做为格式串将这个缓冲区传送给了vsnprintf()。在调用vsnprintf之前,执行了以下格式串验证以防范注入:
str.c:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
168: static const char *__str_vwrite(io_t * io, const flag_t flag,
169: const size_t nargs, const char *fmt, va_list ap,
170: int *bytes)
171: {
(...)
186: fmt_args = 0;
187: for (place = 0; fmt[place] != \'\'\0\'\'; place++) {
188: if (fmt[place] == \'\'\\%\'\')
189: fmt[place + 1] == \'\'\\%\'\' ? place++ : fmt_args++;
190: }
191: if (fmt_args != nargs) {
(...)
195: VANESSA_LOGGER_DEBUG_UNSAFE(\"nargs and fmt mismatch: \"
196: \"\\%d args requested, \\%d args in format\",
197: nargs, fmt_args);
198: return (NULL);
199: }
200:
201: *bytes = vsnprintf(__str_write_buf, STR_WRITE_BUF_LEN - 2, fmt,
ap);
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
在187-191行,将格式标识符的实际数目与nargs参数中所给出的预期数目做了比较,但可以在IMAP标签的末尾注入空字节来绕过这个检查,空字节会截断字符串的剩余部分,因此可以在IMAP标签中注入nargs任意格式标识符。实际上攻击者仅可以控制单个格式标识符,但仍可以通过写入全局函数指针上的多个连续单字节控制指令指针,导致执行任意代码。
目前厂商已经发布了升级补丁以修复这个安全问题,补丁下载链接:
http://www.vergenet.net/linux/perdition/download/1.17.1/
http://www.vergenet.net/linux/perdition/download/latest/
来源: FULLDISC
名称: 20071031 SEC Consult SA-20071031-0 :: Perdition IMAP Proxy Format String Vulnerability
链接:http://archives.neohapsis.com/archives/fulldisclosure/2007-10/0889.html
来源: XF
名称: perdition-imap-strvwrite-format-string(38184)
链接:http://xforce.iss.net/xforce/xfdb/38184
来源: www.vergenet.net
链接:http://www.vergenet.net/linux/perdition/ChangeLog.shtml
来源: SECTRACK
名称: 1018883
链接:http://www.securitytracker.com/id?1018883
来源: BID
名称: 26270
链接:http://www.securityfocus.com/bid/26270
来源: BUGTRAQ
名称: 20071031 SEC Consult SA-20071031-0 :: Perdition IMAP Proxy Format StringVulnerability
链接:http://www.securityfocus.com/archive/1/archive/1/483034/100/0/threaded
来源: MISC
链接:http://www.sec-consult.com/300.html
来源: VUPEN
名称: ADV-2007-3677
链接:http://www.frsirt.com/english/advisories/2007/3677
来源: DEBIAN
名称: DSA-1398
链接:http://www.debian.org/security/2007/dsa-1398
来源: SECUNIA
名称: 27520
链接:http://secunia.com/advisories/27520
来源: SECUNIA
名称: 27458
链接:http://secunia.com/advisories/27458
暂无