IPBUF安全漏洞报告
English
CVE-2026-43439 CVSS 4.7 中危

CVE-2026-43439 Linux内核cgroup竞态条件漏洞

披露日期: 2026-05-08
来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

漏洞信息

漏洞编号
CVE-2026-43439
漏洞类型
竞态条件
CVSS评分
4.7 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

竞态条件Linux内核cgroup本地漏洞拒绝服务

漏洞概述

Linux内核中的cgroup组件存在一个竞态条件漏洞。该问题发生在任务迁移和任务迭代同时进行的过程中。当一个任务通过cgroup_migrate_add_task从css_set迁移时,它会被从tasks列表移动到mg_tasks列表。如果此时css_task_iter迭代器正指向该任务,系统尝试跳过该任务以保持迭代器有效性,但由于任务列表已变更,导致迭代器相对错误的列表前进,从而跳过原列表中的剩余任务。该漏洞可能导致读取cgroup.procs时显示任务缺失,或在特定情况下引发内核崩溃及无限循环,影响系统可用性。

技术细节

该漏洞源于Linux内核cgroup实现中对并发任务迁移处理的不完善。具体技术细节在于函数cgroup_migrate_add_task()执行list_move_tail(&task->cg_list, &cset->mg_tasks)时,改变了任务所在的链表。若此时存在活跃的css_task_iter,其it->task_pos指向该任务,css_set_move_task()会调用css_task_iter_skip()。由于任务已从cset->tasks移至cset->mg_tasks,迭代器的推进逻辑出现偏差,导致其基于mg_tasks而非tasks进行偏移计算,造成后续任务被错误跳过。虽然主要表现为信息遗漏,但CVSS向量显示可用性影响为高(A:H),且描述指出若不当处理可能导致崩溃或死循环。攻击者利用此漏洞需具备本地低权限(PR:L),通过并发执行读写操作触发极窄的竞态窗口,从而影响系统稳定性或获取错误的进程视图。

攻击链分析

STEP 1
1. 获取本地访问权限
攻击者需要拥有系统的本地低权限账号(PR:L),能够访问cgroup文件系统。
STEP 2
2. 准备测试环境
创建一个测试cgroup,并生成多个长运行任务(进程)将其加入该cgroup。
STEP 3
3. 触发竞态条件
攻击者在控制台中读取目标cgroup的cgroup.procs文件(触发迭代),同时在极短的时间窗口内将其中一个任务迁移至其他cgroup(触发迁移)。
STEP 4
4. 利用漏洞缺陷
通过注入延迟或高并发尝试命中竞态窗口,导致迭代器逻辑因任务链表变更而失效。
STEP 5
5. 产生影响
成功利用后,可能导致cgroup任务列表显示不完整(信息遗漏),严重时可能引发内核崩溃或死循环(拒绝服务)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # This is a reproduction script based on the vulnerability description. # It requires a kernel with instrumentation (cgroup_test knob) to hit the race reliably. CGROUP_PATH="/sys/fs/cgroup/test_cgroup" # Step 1: Create a test cgroup mkdir -p $CGROUP_PATH # Step 2: Spawn three long-running tasks task1 & task2 & task3 & # Move tasks to the test cgroup echo $! > $CGROUP_PATH/cgroup.procs # Step 3: Inject delay (if cgroup_test interface exists) # echo 1000 > /sys/kernel/cgroup/cgroup_test # Step 4 & 5: Trigger race condition # In one shell, read procs (iteration) # In another shell, migrate a task (migration) # Simulating the race by running in background ( cat $CGROUP_PATH/cgroup.procs ) & ( sleep 0.001 # Artificial delay to widen race window # Migrate task2 to a different cgroup echo <PID_OF_TASK2> > /sys/fs/cgroup/another_cgroup/cgroup.procs ) & wait # Check if tasks were skipped in the first read echo "Check cgroup.procs content manually to verify if tasks were skipped."

影响范围

Linux Kernel (Mainline)
Linux Kernel (Stable branches before patch)

防御指南

临时缓解措施
限制非特权用户对cgroup文件系统的写入权限,避免在多线程环境中频繁进行任务迁移操作,直到内核升级完成。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表