首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第4期->最新漏洞
期刊号: 类型: 关键词:
qpopper缓冲溢出

日期: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



版权所有,未经许可,不得转载