<p>影响范围:Linux Kernel 3.3-3.8<br></p><p>CVE-ID:CVE-2013-1763</p><p>Linux内核处理netlink协议时,存在一处内存越界访问,成功利用可执行任意代码,进行本地提权。漏洞代码如下:</p><p>static int __sock_diag_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)</p><p>{</p><p> int err;</p><p> struct sock_diag_req *req = NLMSG_DATA(nlh);</p><p> struct sock_diag_handler *hndl;</p><p> if (nlmsg_len(nlh) < sizeof(*req))</p><p> return -EINVAL;</p><p> <b>hndl = sock_diag_lock_handler(req->sdiag_family); </b></p><p> sock_diag_handlers[reg->sdiag_family].</p><p> if (hndl == NULL)</p><p> err = -ENOENT;</p><p> else</p><p> err = hndl->dump(skb, nlh); </p><p> sock_diag_unlock_handler(hndl);</p><p> return err;</p><p>}</p><p>sock_diag_lock_handler数组没有检查上边界,导致通过构造参数可以控制hndl指针。<br></p>
暂无评论