CVE-2022-0492 - Linux Kernel Improper Authentication Vulnerability
CVE-2022-0492是Linux内核cgroup v1 release_agent功能中的权限认证缺陷漏洞,允许本地攻击者利用释放通知机制以root身份执行任意代码。受影响的Linux内核版本为2.6.24至5.16,攻击在普通用户级别即可发起,最终导致系统完全沦陷。本文提供深度技术分析、攻击场景、影响评估及修复方案。
CVE-2022-0492 - Linux Kernel Improper Authentication Vulnerability
📋 漏洞概述
Linux内核cgroup v1 release_agent存在认证缺陷,导致本地用户可提权至root。
📋 基础信息
| 受影响版本 | Linux Kernel version 2.6.24 through 5.16 (cgroup v1 release_agent功能受影响) |
| 漏洞类型 | 权限认证不当 |
| CVSS | 7.8 · High |
| CVE | CVE-2022-0492 |
🔬 漏洞根因
cgroup v1的release_agent机制在执行用户自定义脚本时未充分验证调用者身份。release_agent是一个内核态通知回调,原本允许容器场景下在cgroup内的进程退出后自动运行指定程序。由于内核未检查当前进程是否真正拥有对目标cgroup目录的控制权或挂载命名空间权限,攻击者可在没有合理降权或命名空间隔离的环境下,通过写入/proc/self/cgroup并触发notify_on_release,强制内核以root权限执行任意二进制文件。
🎯 攻击场景
第一步:攻击者以普通用户身份登录受影响系统。第二步:挂载一个全新的cgroup v1层级(例如mkdir /tmp/cgrp && mount -t cgroup -o memory cgroup /tmp/cgrp)。第三步:在新层级下创建子cgroup(mkdir /tmp/cgrp/x),并将当前进程PID加入该子cgroup(echo $$ > /tmp/cgrp/x/cgroup.procs)。第四步:在/tmp/cgrp/x目录下设置release_agent路径指向攻击者可控的恶意脚本(echo '/tmp/exploit.sh' > /tmp/cgrp/release_agent)。第五步:触发子cgroup中所有进程退出(例如直接退出当前shell或用kill杀掉子进程),内核自动以root身份运行release_agent指向的脚本,成功实现权限提升。
💥 漏洞影响
成功利用后攻击者可在目标Linux主机上获得最高root权限,完全控制操作系统。该漏洞影响所有启用cgroup v1且内核版本在2.6.24至5.16之间的Linux系统,包括大部分服务器、容器宿主及雾计算节点。在容器逃逸场景中,若容器以特权模式运行(或主机共享了cgroup挂载点),容器内攻击者也可利用此漏洞突破隔离,获得宿主机root权限。
🛡️ 修复建议
升级Linux内核至5.16.2或更高版本(该修复在5.16.2的commit 24f6008564183中合入)。临时缓解措施:1) 使用cgroup v2而非v1(可通过内核启动参数cgroup_no_v1=all禁用v1);2) 确保系统不允许非特权用户挂载cgroup文件系统(通过设置kernel.dmesg_restrict及严格限制mount权限);3) 容器环境避免挂载host cgroup文件系统到不可信的容器内。
📎 参考链接
- https://nvd.nist.gov/vuln/detail/CVE-2022-0492
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-0492
- https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=24f6008564183a120b07c0f119dba5ddde1e5df4
- 原始来源(CISA-KEV)
🚨 威胁评估
| 📈 EPSS 利用概率 | 低 (5.2%) (高于 90.1% 的漏洞) |
| 🚨 CISA KEV | 🚨 已被积极利用 |
| 🔧 公开 PoC | 8 个公开 PoC 仓库 |
⚠️ 本文由漏洞情报系统自动生成,仅供安全研究与防御参考。生成时间: 2026-06-03 08:07 | 来源: CISA-KEV
🤖 常见问题解答(FAQ)
❓ 云服务器是否默认受此漏洞影响?
多数主流云服务商已升级内核或采用cgroup v2防御,但客户自建Linux主机若未打补丁且开放非特权用户登录则存在风险。
❓ 如何快速检测系统是否受影响?
检查当前内核版本是否低于5.16.2,同时检查cgroup v1是否启用(mount | grep cgroup 出现no cgroup2即表示使用v1)。
❓ 容器内利用该漏洞是否需要特权模式?
不需要,但容器必须具有挂载cgroup文件系统的能力(通常通过cap-add SYS_ADMIN或共享主机cgroup挂载点实现)。