漏洞描述

漏洞编号:CVE-2017-6074

漏洞发现者:Andrey Konovalov

漏洞危害:通过非特权进程获得内核代码执行进而提升权限

影响范围:Linux内核版本>2.6.18(2006年9月)。但DCCP(数据报拥塞控制协议)最早是在05年10月的Linux内核版本2.6.14中支持的。目前该漏洞与2017年2月17修复。详情请参看

漏洞细节

数据报拥塞控制协议(DCCP)是一个针对传输层中UDP的新传输的协议而发展出来,用来传输实时业务。他是一个可以进行拥塞控制的非可靠传输协议,并同时提供多种拥塞控制机制,在通信开始时由用户进行协商选择。

更多详细的介绍说明:

这个漏洞需要内核编译的时候开启CONFIG_IP_DCCP ,许多linux发行版本默认开启。

在当前DCCP实现中,如果dccp_rcv_state_process中的dccp_v6_conn_request返回“成功” ,dccp_type 为DCCP_PKT_REQUEST的packet的skb会被__kfree_skb强制释放。

但是,如果在socket上设置IPV6_RECVPKTINFO,则skb地址会被保存在ireq-> pktopts,然后dccp_v6_conn_request中会增加skb的引用计数,所以skb仍在使用中。然而,它仍然会在dccp_rcv_state_process中被释放。

修复的方式是调用consume_skb,它占用skb->users,而不是跳转到discard 然后调用__kfree_skb。

diff –git a/net/dccp/input.c b/net/dccp/input.c

index ba34718..8fedc2d 100644

— a/net/dccp/input.c

+++ b/net/dccp/input.c

int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb,

struct dccp_hdr *dh, unsigned int len)

{

struct dccp_sock *dp = dccp_sk(sk);

struct dccp_skb_cb *dcb = DCCP_SKB_CB(skb);

const int old_state = sk->sk_state;

int queued = 0;

if (sk->sk_state == DCCP_LISTEN) {

if (dh->dccph_type == DCCP_PKT_REQUEST) {

if (inet_csk(sk)->icsk_af_ops->conn_request(sk,

skb)

return 1;

-goto discard;

+consume_skb(skb);

+return 0;

}

if (dh->dccph_type == DCCP_PKT_RESET)

goto discard;

/* Caller (dccp_v4_do_rcv) will send Reset */

dcb->dccpd_reset_code = DCCP_RESET_CODE_NO_CONNECTION;

return 1;

} else if (sk->sk_state == DCCP_CLOSED) {

dcb->dccpd_reset_code = DCCP_RESET_CODE_NO_CONNECTION;

return 1;

}

要利用这个 double-free,可以把它转变成一个 use-after-free:

//第一次释放

kfree(dccp_skb)

//在与dccp_skb相同的位置分配的另一个对象:

some_object = kmalloc()

//第二次释放,实际释放的是some_object对象

kfree(dccp_skb)

此时some_object持有一个悬空指针,如此就构造出了一个UAF。攻击者可以控制对象,同时可以通过使用内核堆喷射技术写入任意数据到被覆盖对象。

如果被覆盖的对象有任何可触发的函数指针,攻击者可以在内核中执行任意代码。

Linux各发行版本对于该漏洞相关信息

PoC

修复建议

建议用户通过系统更新到最新发行版修复此漏洞

参考

linux ip协议栈 漏洞,【漏洞预警】雪藏11年:Linux kernel DCCP double-free 权限提升漏洞(CVE-2017-6074)...相关推荐

  1. Linux Kernel ‘CLONE_NEWUSER|CLONE_FS’本地权限提升漏洞

    漏洞名称: Linux Kernel 'CLONE_NEWUSER|CLONE_FS'本地权限提升漏洞 CNNVD编号: CNNVD-201303-281 发布时间: 2013-03-15 更新时间: ...

  2. linux 修改驱动权限,Linux Kernel 'MSR' 驱动程序本地权限提升漏洞

    发布日期:2013-02-07 更新日期:2013-03-05 受影响系统: Linux kernel 2.6.x 描述: -------------------------------------- ...

  3. CVE-2021-33909:Linux本地权限提升漏洞

    Linux本地权限提升漏洞影响大多数Linux发行版. 漏洞概述 Qualys研究人员在Linux kernel中发现一个本地权限提升漏洞--Sequoia,该漏洞是Linux kernel文件系统层 ...

  4. 游戏安全资讯精选 2017年第十六期:房卡式棋牌游戏涉赌博风波,抓娃娃火爆市场背后的安全隐患需警惕,Linux内核的Huge Dirty Cow权限提升漏洞...

    [每周游戏行业DDoS态势] [游戏行业安全动态]房卡式棋牌游戏涉赌博风波 概要:近日隔壁棋牌游戏公司先后因涉赌被处理的消息,引发业内广泛关注.多名业内人士认为,出现这种事,并不应该由房卡模式来&qu ...

  5. linux ssh权限漏洞,OpenSSH do_setup_env函数权限提升漏洞(CVE-2015-8325)

    OpenSSH do_setup_env函数权限提升漏洞(CVE-2015-8325) 发布日期:2016-05-02 更新日期:2016-05-04 受影响系统:OpenSSH OpenSSH &l ...

  6. Linux Polkit 中的pkexec 组件存在的本地权限提升漏洞(CVE-2021-4034)修复方法及centos6和centos7的安装包

    近日安全监测发现Linux Polkit 中的pkexec 组件存在的本地权限提升漏洞(CVE-2021-4034),pkexec应用程序为 Linux 系统预装工具,漏洞影响Ubuntu.Debia ...

  7. Linux Polkit本地权限提升漏洞(CVE-2021-4034)

    漏洞描述 Polkit是用于在Linux操作系统中控制系统范围特权的组件.它为非特权进程提供了与特权进程进行通信的有组织的方式.类似"sudo"的用法. CVE-2021-4034 ...

  8. CVE-2020-8835: Linux Kernel 信息泄漏/权限提升漏洞分析

    CVE-2020-8835: Linux Kernel 信息泄漏/权限提升漏洞分析 360-CERT [360CERT](javascript:void(0)

  9. linux系统中acpid的作用,ACPID电源按钮事件本地权限提升漏洞

    发布日期:2011-12-08 更新日期:2012-08-21 受影响系统: acpid acpid 2.0.10 acpid acpid 1.0.8 acpid acpid 1.0.3 acpid ...

  10. CVE-2020-1472 Netlogon权限提升漏洞分析

    一.漏洞信息 1. 漏洞简述 漏洞名称:Netlogon 权限提升漏洞 漏洞编号:CVE-2020-1472 漏洞类型:权限提升 CVSS评分:10 利用难度:简单 基础用户:不需要 2. 组件概述 ...

最新文章

  1. m 文件 dll matlab 中调用_如何在matlab中调用python程序
  2. python-opencv图像处理之SIFT尺度不变特征变换
  3. console.log()不显示结果_提醒低端电子显示屏易致视疲劳,OLED屏幕表现略好
  4. Mybatis核心配置文件SqlMapConfig.xml
  5. 查看S/N提示'wmic' 不是内部或外部命令,也不是可运行的程序 或批处理文件。的解决办法(不添加环境变量版
  6. 2020 年度 OSC 中国开源项目评选结果公布
  7. mysql索引和事务_mysql的索引和事务详细解读
  8. 大学mysql期末试题_大学期末考试综合实训试题一
  9. 阿里 Java 性能调优手册,简直yyds
  10. 夜神模拟器7.12 安装 xposed
  11. java 修改表格颜色代码_workBook设置单元格颜色方法
  12. 图解强化学习 原理 超详解 (一)
  13. Android 按钮实现按压水波纹效果
  14. 【mcuclub】模数转换ADC0832
  15. 图解Janusgraph系列-查询图数据过程源码分析
  16. C# dgv自动排序后,各种样式设定无效的解决办法
  17. WPF中给文本框TextBox设置提示文字
  18. 2022-01-10:路径交叉。给你一个整数数组 distance 。 从 X-Y 平面上的点 (0,0) 开始,先向北移动 distance[0] 米,然后向西移动 distance[1] 米,向南
  19. 阿朱推荐的产品经理读物30本书(修订版)
  20. 【MySQL】6.0 表的增删查改

热门文章

  1. 谁说国产编译器没救了?这个 C/C++ 和 JavaScript 编译器来了 | 程序人生 2020
  2. 疫情期间不忽略障碍群体刚需、仍坚持做无障碍的倡议书
  3. 网易易盾升级内容安全体系 发布智能审核管理系统
  4. 微信引擎插件会对小游戏带来怎样的利好?(深度解读)
  5. 国际认可不断增加,国产数据库发展与应用前景如何?
  6. 绿洲因涉嫌抄袭下架;Facebook 泄露 4.19 亿条用户数据;Go 1.13 发布 | 极客头条...
  7. 华为可折叠手机推迟发布;苹果获新专利可隔空操控iPhone;微软不放弃 IE | 极客头条...
  8. 人工智能是 6G 诞生的关键!| 极客头条
  9. 华为获 25 份 5G 合同;ofo 退款用户数超千万;贾跃亭躲豪宅拒收法律文书 | 极客头条...
  10. 技术人不会学习,35 岁必然要焦虑!