免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7121 | 回复: 21
打印 上一主题 下一主题

请补上漏洞,付¥5 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-06 16:35 |只看该作者 |倒序浏览
linux-2.6.20.7


  1. static int wanpipe_rcv(struct sk_buff *skb, struct net_device *dev,
  2.                        struct sock *sk)
  3. {
  4.         struct wan_sockaddr_ll * sll = (struct wan_sockaddr_ll *)skb->cb;
  5.         wanpipe_common_t * chan = dev->priv;
  6.         /*
  7.          * When we registered the protocol,
  8.          * we saved the socket in the data field for just this event.
  9.          */
  10.         skb->dev = dev;

  11.         sll->sll_family = AF_WANPIPE;
  12.         sll->sll_hatype = dev->type;
  13.         sll->sll_protocol = skb->protocol;
  14.         sll->sll_pkttype = skb->pkt_type;
  15.         sll->sll_ifindex = dev->ifindex;
  16.        
  17.         sll->sll_halen = 0;
  18.         if (dev->hard_header_parse)
  19.                 sll->sll_halen = dev->hard_header_parse(skb, sll->sll_addr);

  20.         /*
  21.          * WAN_PACKET_DATA : Data which should be passed up the receive queue.
  22.          * WAN_PACKET_ASYC : Asynchronous data like place call, which should
  23.          *                   be passed up the listening sock.
  24.          * WAN_PACKET_ERR  : Asynchronous data like clear call or restart
  25.          *                   which should go into an error queue.
  26.          */
  27.         switch (skb->pkt_type) {
  28.                 case WAN_PACKET_DATA:
  29.                         if (sock_queue_rcv_skb(sk, skb) < 0) {
  30.                                 return -ENOMEM;
  31.                         }
  32.                         break;
  33.                
  34.                 case WAN_PACKET_CMD:
  35.                         sk->sk_state = chan->state;
  36.                         /* Bug fix: update Mar6.
  37.                          * Do not set the sock lcn number here, since
  38.                           * cmd is not guaranteed to be executed on the
  39.                          * board, thus Lcn could be wrong
  40.                          */
  41.                         sk->sk_data_ready(sk, skb->len);
  42.                         kfree_skb(skb);
  43.                         break;
  44.                
  45.                 case WAN_PACKET_ERR:
  46.                         sk->sk_state = chan->state;
  47.                         if (sock_queue_err_skb(sk,skb)<0){
  48.                                 return -ENOMEM;
  49.                         }
  50.                         break;
  51.                
  52.                 default:
  53.                         //at this case 就在这儿,呵呵
  54.                         printk(KERN_INFO "wansock: BH Illegal Packet Type Dropping\n");
  55.                         kfree_skb(skb);
  56.                         break;
  57.         }
  58.         return 0;
  59. }
复制代码

[ 本帖最后由 sisi8408 于 2007-8-10 23:00 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-08-06 17:45 |只看该作者
kfree_skb(skb);位置不对?

论坛徽章:
0
3 [报告]
发表于 2007-08-06 19:56 |只看该作者
再看看,暂时不能得¥5

[ 本帖最后由 sisi8408 于 2007-8-6 20:41 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2007-08-06 20:38 |只看该作者
这个函数在2.6.22 中找不到了

不会是注释吧,

[ 本帖最后由 daemeon 于 2007-8-6 20:42 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-08-06 20:42 |只看该作者
不会是注释吧

no, of cough

[ 本帖最后由 sisi8408 于 2007-8-6 20:46 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2007-08-06 20:45 |只看该作者
"这个函数在2.6.22 中找不到了"
那么¥5付给谁?

论坛徽章:
0
7 [报告]
发表于 2007-08-06 20:46 |只看该作者

回复 #5 sisi8408 的帖子

pkt_type只有3bit, 而WAN_PACKET_ERR是10

论坛徽章:
0
8 [报告]
发表于 2007-08-06 20:48 |只看该作者
就事论事,漏洞与pkt_type无关,
但存在于贴出的代码中。

论坛徽章:
0
9 [报告]
发表于 2007-08-06 20:56 |只看该作者

回复 #8 sisi8408 的帖子

为什么在default处, 你的意思是该返回错误?

2.6.22中的定义:
#define WAN_PACKET_DATA         7
#define WAN_PACKET_CMD                 8
#define WAN_PACKET_ASYNC        9
#define WAN_PACKET_ERR               10

struct sk_buff {
....
        __u8               pkt_type:3,
                                fclone:2,
                                ipvs_property:1;
....
}

[ 本帖最后由 daemeon 于 2007-8-6 21:00 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2007-08-06 21:02 |只看该作者
default 本为排错,但篱笆未匝牢。
攻击得手就有可能。

[ 本帖最后由 sisi8408 于 2007-8-6 21:04 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP