首页 > 系统相关 >漏洞复现报告:CVE-2022-0847 Linux 内核漏洞

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞

时间:2023-08-04 17:35:17浏览次数:39  
标签:kernel 5.8 漏洞 内核 2022 Linux com


1.1 漏洞信息表

漏洞名称

Linux kernel安全漏洞

发布时间


2022年3月7日

漏洞编号

CVE-2022-0847

威胁类型

其他

危害级别

高危

影响版本

Linux Kernel 5.8-5.16.11、5.8-5.15.25、5.8-5.10.102

漏洞描述

产品介绍:Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。是一个一体化内核(monolithic kernel)系统,提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件,不是一套完整的操作系统。

漏洞概述:Linux kernel存在安全漏洞,该漏洞源于新管道缓冲区结构的“flag”变量在Linux内核中的copy_page_to_iter_pipe和push_pipe函数中缺乏正确初始化。非特权本地用户利用该漏洞可以提升权限至root。

危害说明:

漏洞指纹

常用端口/协议:

请求参数/关键路径(漏洞入口):

漏洞验证与利用

POC:

EXP:

集成工具:

修复建议

正式修复方案:

临时修复方案:

参考链接

文章标题:链接







2.1 漏洞靶机搭建

使用Ubuntu18.04 内核版本5.4进行搭建

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_ubuntu



方法一:直接加载漏洞环境(推荐)

git clone https://github.com/brant-ruan/metarget.git

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_linux_02


cd metarget/

pip3 install -r requirements.txt

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_ubuntu_03


sudo ./metarget cnv install cve-2022-0847

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_git_04


漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_git_05


重启之后内核版本就是5.8了

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_ubuntu_06



方法二:手工提升或降低版本内核

wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.8/amd64/linux-headers-5.8.0-050800_5.8.0-050800.202008022230_all.deb

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_linux_07


wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.8/amd64/linux-headers-5.8.0-050800-generic_5.8.0-050800.202008022230_amd64.deb

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_git_08


wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.8/amd64/linux-image-unsigned-5.8.0-050800-generic_5.8.0-050800.202008022230_amd64.deb

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_linux_09


wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.8/amd64/linux-modules-5.8.0-050800-generic_5.8.0-050800.202008022230_amd64.deb

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_ubuntu_10


下载完毕后进行安装sudo dpkg -i *.deb

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_git_11

重启之后内核版本成功升级为5.8.0

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_linux_12



2.2 POC漏洞验证

新建一个普通用户只读文件flag

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_git_13


普通用户是写不进数据的

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_ubuntu_14


运行POC后,成功覆写了flag文件

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_git_15





三、漏洞利用实践

EXP 1:

下载EXP

git clone https://github.com/Arinerron/CVE-2022-0847-DirtyPipe-Exploit

cd CVE-2022-0847-DirtyPipe-Exploit

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_git_16


编译并执行程序

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_linux_17


root的密码被更改为aaron(可在exp中将aaron改为自己想设置的密码)

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_linux_18



EXP 2:

下载exp

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_linux_19


这个exp需要事先找到一个具有SUID权限的可执行文件,然后利用这个文件进行提权使用find / -perm -u=s -type f 2>/dev/null找到这类文件

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_ubuntu_20


编译exp并进行利用

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_linux_21


提权成功

漏洞修复实践

4.1 修复方案1:临时修复方案

在对应的涉及到pipe_buffer->flags的代码添加上将flag置0的代码,除了copy_page_to_iter_pipe以外在push_pipe中也补充上置0的代码:

漏洞复现报告:CVE-2022-0847 Linux 内核漏洞_git_22


4.2 修复方案2:标准解决方案

linux内核至如下版本:Linux 5.16.11、5.15.25 和 5.10.102

https://xz.aliyun.com/t/11016

https://dirtypipe.cm4all.com/










标签:kernel,5.8,漏洞,内核,2022,Linux,com
From: https://blog.51cto.com/u_15854462/6965057

相关文章

  • 漏洞复现报告:CVE-2021-44228 Log4j2远程代码执行漏洞
    Log4j2远程代码执行漏洞研究报告一、漏洞信息搜集1.1漏洞信息表漏洞名称Log4j2远程代码执行漏洞发布时间2021年12月10日漏洞编号CVE-2021-44228威胁类型远程代码执行危害级别高危影响版本ApacheLog4j22.0-2.15.0-rc1漏洞描述产品介绍:ApacheLog4j是一个Java日志框架,用于在应用......
  • 漏洞复现报告:CVE-2020-2883 Weblogic反序列化漏洞
    OracleWebLogicServer漏洞研究报告一、漏洞信息搜集1.1漏洞信息表漏洞名称OracleWebLogicServer反序列化漏洞发布时间2020年4月16日漏洞编号CVE-2020-2883威胁类型反序列化漏洞危害级别高危影响版本OracleWebLogicServer10.3.6.0.0、12.1.3.0.0、12.2.1.3.0、12.2.1.4.0版......
  • 漏洞复现报告:CVE-2019-2890 反序列化漏洞
    OracleWebLogicServer漏洞研究报告一、漏洞信息搜集1.1漏洞信息表漏洞名称OracleWebLogicServer反序列化漏洞发布时间2019年10月16日漏洞编号CVE-2019-2890威胁类型反序列化漏洞危害级别高危影响版本OracleWebLogicServer10.3.6.0.0、12.1.3.0.0、12.2.1.3.0、12.2.1.4.0......
  • Linux文件与目录的三种时间状态(mtime,atime,ctime)区别
    最后一次修改文件或目录的时间最后一次改变文件或目录(改变的是原数据即:属性)的时间如:记录该文件的inode节点被修改的时间。touch命令除了-d和-t选项外都会改变该时间。而且chmod,chown等命令也能改变该值。最后一次访问文件或目录的时间对于文件:当修改mtime时,c......
  • Linux系统服务器启动SSH服务时出现“error while loading shared libraries”错误该如
    问题描述本文主要介绍在Linux系统服务器启动SSH服务时,命令行或secure日志文件出现类似如下的错误信息。· errorwhileloadingsharedlibraries:libcrypto.so.10:cannotopensharedobjectfile:Nosuchfileordirectory.· PAMunabletodlopen(/usr/lib64/security/pam......
  • Linux抓包工具tcpdump详解
    tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要......
  • Aapache Tomcat AJP 文件包含漏洞(CVE-2020-1938)
    AapacheTomcatAJP文件包含漏洞(CVE-2020-1938)【项目中遇到过】1.背景简述java是目前WEB开发中主流的编程语言,而Tomcat是当前流行的Java中间件服务器之一。Ghostcat(幽灵猫)是由长亭科技安全研究员发现的存在于Tomcat中的安全漏洞,由于TomcatAJP协议设计上存在缺陷,攻击者通......
  • Linux压缩与解压
    压缩格式市面上有非常多的压缩格式zip格式:Linux,Windows,MacOS系统常用。7zip:Windows系统常用。rar:Windows系统常用。tar:Linux,MacOS系统常用。gzip:Linux,MacOS系统常用。tar命令Linux和MacOS系统常用有2种压缩格式,后缀名分别是.tar,称之为tarball,归档文件,即简单的将文件......
  • linux如何安装Java环境
    ❝本篇主要讲一下在linux上如何安装Java环境,widows安装方法之前已经有了,请查看之前的文章!❞安装包的方式这里推荐下载JAVA8,下载地址放到最后,要注册Oracle账号才能下载,当然也可以从其他方式下载。不建议使用这种,因为过程比较麻烦!查看linux版本getconfLONG_BIT#输出64版本号下载......
  • linux如何安装Java环境
    ❝本篇主要讲一下在linux上如何安装Java环境,widows安装方法之前已经有了,请查看之前的文章!❞安装包的方式这里推荐下载JAVA8,下载地址放到最后,要注册Oracle账号才能下载,当然也可以从其他方式下载。不建议使用这种,因为过程比较麻烦!查看linux版本getconfLONG_BIT#输出64版本号下载......