CVE-2021-3560 和 CVE-2021-4034 是 2021 年曝光的两个 Linux 本地权限提升漏洞,均涉及 Polkit 组件。由于它们影响广泛且利用门槛较低,迅速引起安全社区关注。本文将深入分析这两个漏洞的技术原理、影响范围、区别与联系,并结合实际案例,提供缓解措施及安全建议。


1. CVE-2021-3560:Polkit 认证绕过漏洞

1.1 漏洞原理

CVE-2021-3560 是一个 认证绕过漏洞,源于 Polkit 处理 DBus 消息时的逻辑缺陷。Polkit(PolicyKit)是 Linux 权限管理框架,通过 DBus 与客户端通信。当用户使用 pkexec 提权时,Polkit 需要验证其权限。

漏洞出现在 Polkit 处理 中断请求 时的逻辑错误:

  1. 用户发起特权请求(如 pkexec --user nobody)。
  2. 在 Polkit 处理该请求的过程中,攻击者通过 SIGTERM 终止进程。
  3. Polkit 未能正确清理状态,导致后续请求被误认为已通过认证,从而赋予 root 权限。

1.2 技术细节

漏洞位于 polkitd 处理 DBus 消息的逻辑中,涉及 GLib 的 GMainLoop 事件处理机制。由于 PolkitSubject 对象在认证中断后未释放,导致状态混淆。

攻击者可使用以下 PoC(概念验证代码)来利用该漏洞:

for i in {1..100}; do (pkexec --user nobody bash &); sleep 0.01; killall -9 pkexec; done

此代码利用竞态条件,不断中断 pkexec 进程,使得认证状态失效,从而绕过权限检查。

1.3 影响范围

  • 受影响版本:Polkit 0.113 至 0.118。
  • 受影响系统:Ubuntu 20.04、Debian 10、Fedora 34 等主流发行版。
  • CVSS 评分:7.8(高危)。
  • 利用门槛:需要本地用户权限,但无需特殊权限。
  • 修复方案:漏洞于 2021 年 6 月 3 日公开,0.119 版本修复了状态清理问题。

2. CVE-2021-4034:pkexec 本地提权漏洞

2.1 漏洞原理

CVE-2021-4034(“PwnKit”)是 pkexec 二进制文件中的 本地提权漏洞,源于参数处理错误。

pkexec 运行时:

  1. argc == 1(无参数),则 pkexec 试图解析参数。
  2. 由于缺少边界检查,pkexec 试图从环境变量加载动态库,如 GCONV_PATH
  3. 攻击者可伪造共享库,使其以 root 权限执行任意代码。

2.2 技术细节

pkexec 源码中的 main() 函数对 argv 处理不当:

int main(int argc, char *argv[]) {if (argc < 2) {char *path = g_find_program_in_path(argv[0]);setlocale(LC_ALL, ""); // 触发 GCONV_PATH 加载}
}

攻击者可以这样利用:

export GCONV_PATH=./malicious_dir
gcc -shared -fPIC -o malicious.so exploit.c
pkexec

pkexec 会加载恶意库 malicious.so,以 root 权限执行其中的代码。

2.3 影响范围

  • 受影响版本:Polkit 0.105 及之后所有版本(漏洞自 2009 年引入)。
  • 受影响系统:几乎所有 Linux 发行版(Ubuntu、Debian、CentOS、RHEL 等)。
  • CVSS 评分:7.8(高危)。
  • 利用门槛:本地用户可直接利用,无需竞态条件。
  • 修复方案:2022 年 1 月 25 日披露,0.120 版本修复该问题。

3. CVE-2021-3560 与 CVE-2021-4034 的区别与联系

3.1 主要区别

漏洞编号攻击目标触发方式技术要求影响范围
CVE-2021-3560Polkit DBus竞争条件需要精准时序影响 2019-2021 年的系统
CVE-2021-4034pkexec确定性利用仅需环境变量影响 2009 年以来所有系统

3.2 共同点

  • 都涉及 Polkit 权限管理机制。
  • 都可用于本地权限提升,从普通用户提权至 root。
  • 都已被黑客利用,成为实际攻击场景中的重要漏洞。
  • 都已通过软件更新修复,建议立即升级系统。

4. 防御与缓解措施

4.1 更新系统

  • CVE-2021-3560:升级至 Polkit 0.119 或更高。
  • CVE-2021-4034:升级至 Polkit 0.120 或更高。

4.2 临时缓解方案

  • 移除 pkexec 的 setuid 权限
    chmod u-s /usr/bin/pkexec
    
  • 禁用 Polkit 服务(适用于无 GUI 服务器)
    systemctl stop polkit && systemctl disable polkit
    

4.3 监控与检测

  • 检查 pkexec 的异常调用日志:
    journalctl -xe | grep pkexec
    
  • 使用 SELinuxAppArmor 限制 pkexec 访问权限。

5. 结论

CVE-2021-3560 和 CVE-2021-4034 展示了 Linux 权限管理的两个关键问题:

  • 认证绕过(CVE-2021-3560)
  • 输入验证不足(CVE-2021-4034)

其中,CVE-2021-4034 影响所有主流 Linux 发行版,危害更大。建议 Linux 用户立即更新系统,实施必要的防御措施,以防止本地提权攻击。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/86499.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/86499.shtml
英文地址,请注明出处:http://en.pswp.cn/web/86499.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jupyter Notebook 完全指南:从入门到生产力工具

Jupyter Notebook 完全指南&#xff1a;从入门到生产力工具 Jupyter Notebook 已成为数据科学、机器学习和科研领域的标准工具&#xff0c;它完美结合了代码、文档和可视化功能。本文将带您全面了解 Jupyter 的强大功能&#xff0c;并展示如何将其转化为您的超级生产力工具。 …

HKDF密钥派生原理与应用详解

HKDF&#xff08;HMAC-Based Key Derivation Function&#xff09;是一种基于 HMAC&#xff08;Hash-based Message Authentication Code&#xff09;的密钥派生函数&#xff0c;用于从原始密钥材料&#xff08;如共享密钥、随机数等&#xff09;生成多个加密密钥&#xff08;如…

SpringBoot + MyBatis 事务管理全解析:从 @Transactional 到 JDBC Connection 的旅程

SpringBoot MyBatis 事务管理全解析&#xff1a;从 Transactional 到 JDBC Connection 的旅程 一、JDBC Connection&#xff1a;事务操作的真正执行者1.1 数据库事务的本质1.2 Spring 与 Connection 的协作流程 二、从 Transactional 到 JDBC Connection 的完整链路2.1 Spring…

Wpf之应用图标的修改!

前言 Wpf之应用图标的修改&#xff01; 一、修改步骤 1、准备好ico图片。 2、右键项目》点击属性 3、找到win32资源点击 4、点击浏览找到ioc图标 5、点击运行程序 6、右键项目点击打开在资源管理器中打开 找到以下路径 在该路径下能看到.exe文件的图标已经改成你想要的…

Spring Boot整合Redis指南

一、环境准备 在开始整合前&#xff0c;请确保已完成以下准备工作&#xff1a; 已安装Redis服务&#xff08;安装指南&#xff09;创建好Spring Boot项目 二、添加依赖 在项目的pom.xml中添加以下依赖&#xff1a; <!-- Redis核心依赖 --> <dependency><gr…

Re-攻防世界

easyEZbaby_app Jadx 这个文件一般是窗口界面&#xff0c;点击中间的一般就是主函数 Obj1是用户名&#xff0c;obj2是密码 用户名 public boolean checkUsername(String str) { if (str ! null) { try { if (str.length() ! 0 &&…

矩阵题解——搜索二维矩阵 II【LeetCode】

240. 搜索二维矩阵 II 1.1 核心思想 问题描述&#xff1a;给定一个 m x n 的二维矩阵&#xff0c;矩阵的每一行从左到右递增&#xff0c;每一列从上到下递增。判断目标值 target 是否存在于矩阵中。解决思路&#xff1a; 从矩阵的右上角&#xff08;或左下角&#xff09;开始搜…

dockerfile文件详解之基础语法

dockerfile文件详解之基础语法 一般而言 Dockerfile 可以分为4个部分 &#xff08;1&#xff09;基础镜像信息&#xff0c; &#xff08;2&#xff09;维护者信息 &#xff08;3&#xff09;镜像操作命令 &#xff08;4&#xff09;启动时执行指令 1-注释 用 # 来进行注…

WebFuture:独立一级域名nginx取消配置Secure属性的问题

问题分析&#xff1a; 部分站群站点使用了独立一级域名&#xff0c;但是前台问卷调查等模块无法提交&#xff0c;排查是由于主站启用了https&#xff0c;配置了cookies的Secure属性是true&#xff0c;但是子站的独立一级域名没有使用https&#xff0c;所以浏览器不能写入cooki…

【网站内容安全检测】之3:获取所有外部域名访问后图像

Go语言调用Chrome浏览器去进行截图的操作&#xff0c;对电脑的性能要求比较高&#xff0c;所以速度比较有限&#xff0c;但是目前来看这种方式可以最佳的去获取网页加载后的结果。 main.go package mainimport ("context""errors""flag""…

华曦达港股IPO递表,AI Home生态构建智能生活新蓝图

在智能家居逐渐普及的当下&#xff0c;华曦达打造的AI Home生态为用户提供了更智能、便捷的生活解决方案&#xff0c;在行业中展现出独特优势。 华曦达AI Home生态由AI Home系统平台、AI Home基础设施、AI Home设备以及可连接外部设备的开放式设备矩阵构成&#xff0c;是一个开…

java+vue+SpringBoo智慧农业专家远程指导系统(程序+数据库+报告+部署教程+答辩指导)

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿ppt部署教程代码讲解代码时间修改工具 技术实现 开发语言&#xff1a;后端&#xff1a;Java 前端&#xff1a;vue框架&#xff1a;springboot数据库&#xff1a;mysql 开发工具 JDK版本&#xff1a;JDK1.…

免费AI助手工具深度测评:Claude4本地化部署与实战应用指南

免费AI助手工具深度测评&#xff1a;Claude4本地化部署与实战应用指南 AI无限对话免费Rovo工具Claude4碾压cursor和augment 前言 在AI工具日益普及的今天&#xff0c;大多数高质量的AI助手都需要付费订阅或有使用限制。然而&#xff0c;最近发现了一款基于Claude 4的免费AI助手…

MCP浏览器工具:playwright、chrome-mcp

参考&#xff1a; https://github.com/microsoft/playwright-mcp https://github.com/hangwin/mcp-chrome chrome-mcp安装需要额外安装成浏览器插件 用cherrystudio v1.4.5测试 mcp配置&#xff1a; "chrome-mcp-server": {"name": "chrome-mcp-serve…

水利水电安全员考试不同等级的考试内容有哪些区别?

水利水电安全员考试一般分为企业主要负责人&#xff08;A 类&#xff09;、项目负责人&#xff08;B 类&#xff09;和专职安全生产管理人员&#xff08;C 类&#xff09;三个等级。不同等级的考试内容都包括安全生产知识和管理能力两部分&#xff0c;但具体的侧重点有所不同。…

关于USB模式的一些内容(附USB接口颜色释义图)

今天在处理工作中的事情的时候,突然有个产品的小伙伴来问关于USB的事情,顺便给她简单说了下。USB接口模式主要包括以下几种:Host(主机模式)、Device(设备模式)、OTG(On-The-Go),以及较少使用的Accessory模式。以下是对这些模式的详细说明、区别差异及应用场景: 1. H…

React中的ErrorBoundary

文章目录 前言✅ 一、使用类组件实现 ErrorBoundary&#xff08;官方推荐方式&#xff09;用法示例&#xff1a; ✅ 二、用函数组件实现 ErrorBoundary&#xff08;借助 Hook react-error-boundary 库&#xff09;1. 安装 react-error-boundary2. 使用 ErrorBoundary 组件&…

历年西北工业大学计算机保研上机真题

西北工业大学计算机保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/problem 海伦公式求面积 题目描述 给定三角形的三条边长 a a a, b b b, c c c&#xff0c;先判断这三条边是否能构成一个三角形。 如果不能构成三角形&#xff0c;输出 N a N NaN NaN&#…

扫地机产品认证--黑名单制裁公司能否拿到美国产品准入许可(FCC认证)

扫地机产品认证–黑名单制裁公司能否拿到美国产品准入许可(FCC认证) 文章目录 扫地机产品认证--黑名单制裁公司能否拿到美国产品准入许可(FCC认证)⚠️ **一、核心限制规则**📋 **二、企业需满足的额外条件**🛡️ **三、黑名单企业的应对可能性**💎 **四、总结**产品认证…

数据结构复习2

第二章 线性表 2.1线性表的定义和基本操作 线性表&#xff1a;一种逻辑结构&#xff0c;表示数据元素之间的一对一线性关系&#xff08;如数组、链表、栈、队列等&#xff09;。 2.1.1线性表的定义 线性表是具有相同数据类型的n(n>0)个数据元素的有限序列。 (其中n为表长…