首页 -> 安全研究
安全研究
绿盟月刊
绿盟安全月刊->第4期->最新漏洞
日期:1999-12-14
qpopper缓冲溢出
发布日期: 99-11-30
更新日期: 99-11-30
受影响的系统: Qualcomm qpopper 3.0b20
Qualcomm qpopper 3.0
不受影响的系统:
Qualcomm qpopper 2.53.0
Qualcomm qpopper 2.52.0
Qualcomm qpopper 2.4.0
描述:
Qualcomm popper (3.x)版本发现存在缓存溢出问题。因为这些进程以root身份执行,
因此可以让远程攻击者危及运行qpopper的主机安全,问题出在 pop_msg.c的68行左右,
vsprintf() 或 sprintf()没有进行边界检查。
建议:
--------------------------------------------------------------------------------
以下是一个 Mixter公布的临时补丁。
# apply this in the qpopper3.0b20/popper/ directory with patch < qp3b20.patch
--- pop_msg.c.old Mon Nov 29 23:42:03 1999
+++ pop_msg.c Mon Nov 29 23:52:08 1999
@@ -65,7 +65,7 @@
/* Append the message (formatted, if necessary) */
if (format) {
#ifdef HAVE_VPRINTF
- vsprintf(mp,format,ap);
+ vsnprintf(mp,MAXLINELEN - 100, format,ap);
#else
# ifdef PYRAMID
arg1 = va_arg(ap, char *);
@@ -74,9 +74,9 @@
arg4 = va_arg(ap, char *);
arg5 = va_arg(ap, char *);
arg6 = va_arg(ap, char *);
- (void)sprintf(mp,format, arg1, arg2, arg3, arg4, arg5, arg6);
+ (void)sprintf(mp,MAXLINELEN - 100, format, arg1, arg2, arg3, arg4, arg5, arg6);
# else
- (void)sprintf(mp,format,((int *)ap)[0],((int *)ap)[1],((int *)ap)[2],
+ (void)sprintf(mp,MAXLINELEN - 100, format,((int *)ap)[0],((int *)ap)[1],((int *)ap)[2],
((int *)ap)[3],((int *)ap)[4]);
# endif
#endif
版权所有,未经许可,不得转载