荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: bstone (???????????????????????????????????????), 信区: Hacker
标  题: LINUX KNFSD 拒绝服务攻击
发信站: BBS 荔园晨风站 (Sun May 28 23:01:01 2000), 转信

【 以下文字转载自 bstone 的信箱 】
【 原文由 bstone 所发表 】

  Linux knfsd 拒绝服务攻击

发布日期: 2000-5-3

更新日期: 2000-5-3
受影响的系统:  Linux kernel 2.3.x
Linux kernel 2.2.x
   + RedHat Linux 6.2 sparc
   + RedHat Linux 6.2 i386
   + RedHat Linux 6.2 alpha
Linux kernel 2.1.x
不受影响系统:  Linux kernel 2.3.99-pre7
Linux kernel 2.3.99-pre6
Linux kernel 2.3.99-pre5
Linux kernel 2.3.99-pre4
Linux kernel 2.3.99-pre3
Linux kernel 2.3.99-pre2
Linux kernel 2.3.99-pre1
Linux kernel 2.2.15pre20

描述:
------------------------------------------------------------------------
--------

在低于2.3.99pre7-pre1和2.2.15pre20 [1]的Linux内核代码中存在一个错误,没
有正确检查
变量的类型.可能导致远程攻击knfsd.

The faulty code is in kernel/net/sunrpc/svcauth.c, svcauth_unix()
错误代码在kernel/net/sunrpc/svcauth.c中的svcauth_unix()

int slen;
...
        slen = ntohl(*bufp++); /* gids length */
        if (slen > 16 || (len -= slen + 2) < 0)
                goto badcred;
...
        bufp += (slen - i);

这里并没有检查slen为负数的情况,因此当slen=-1时,就变成了一个很大的无符
号整数,
可能使指针移动超出正常范围,导致程序错误。



<* 来源: Chris Evans (chris@FERRET.LMH.OX.AC.UK) *>


测试程序:
------------------------------------------------------------------------
--------

警 告

以下程序(方法)可能带有攻击性,仅供安全?
升级到2.3.99pre1-pre7 或者2.2.15pre20 [1]

补丁代码:
--- net/sunrpc/svcauth.c.old Tue Apr 18 05:13:47 2000
+++ net/sunrpc/svcauth.c Tue Apr 18 06:36:20 2000
@@ -4,6 +4,9 @@
  * The generic interface for RPC authentication on the server side.
  *
  * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
+ *
+ * CHANGES
+ * 19-Apr-2000 Chris Evans - Security fix
  */


#include <linux/types.h>
@@ -117,7 +120,8 @@
         struct svc_buf *resp = &rqstp->rq_resbuf;
         struct svc_cred *cred = &rqstp->rq_cred;
         u32 *bufp = argp->buf;
- int len = argp->len, slen, i;
+ int len = argp->len;
+ u32 slen, i;


         if ((len -= 3) < 0) {
                 *statp = rpc_garbage_args;
@@ -127,7 +131,7 @@
         bufp++; /* length */
         bufp++; /* time stamp */
         slen = (ntohl(*bufp++) + 3) >> 2; /* machname length */
- if (slen > 64 || (len -= slen) < 0)
+ if (slen > 64 || (len -= slen + 3) < 0)
                 goto badcred;
         bufp += slen; /* skip machname */



------------------------------------------------------------------------
--------
建议:
暂无



绿色兵团翻译整理,未经许可,不得转载
欢迎访问我们的站点http://www.isbase.com/
绿色兵团给您安全的保障

--
 Welcome to http://192.168.28.98


※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.28.106]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.28.98]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店