IPBUF安全漏洞报告
English
CVE-2026-35361 CVSS 3.4 低危

CVE-2026-35361 uutils coreutils mknod安全标签处理漏洞

披露日期: 2026-04-22

漏洞信息

漏洞编号
CVE-2026-35361
漏洞类型
权限绕过
CVSS评分
3.4 低危
攻击向量
本地 (AV:L)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
uutils coreutils

相关标签

权限绕过SELinuxuutils coreutils本地漏洞访问控制

漏洞概述

uutils coreutils组件中的mknod工具在处理设备节点安全标签时存在逻辑缺陷。由于未采用原子操作,工具在设置SELinux上下文之前就已创建节点。若后续设置失败,清理过程因使用了错误的系统调用而无法移除这些节点。结果导致系统上残留具有错误默认上下文的设备节点,攻击者可能利用此绕过强制访问控制策略,获取未授权的设备访问权限。

技术细节

该漏洞的根本原因在于uutils coreutils实现了mknod命令时,其安全标签设置流程缺乏原子性。正常流程应先创建节点再设置SELinux上下文,但该实现未处理设置上下文失败后的回滚机制。具体而言,当setxattr或类似SELinux上下文设置操作失败时,程序尝试调用std::fs::remove_dir进行清理。然而,remove_dir仅能移除目录,无法删除字符设备、块设备或FIFO特殊文件。这导致设备节点残留在文件系统中。由于节点是在SELinux上下文生效前创建的,它们继承了父目录的默认上下文,而非预期的受限上下文。在高权限用户(如root)执行失败操作后,低权限用户可能通过这些错误标记的节点访问敏感硬件设备,从而破坏系统的强制访问控制(MAC)安全模型。

攻击链分析

STEP 1
步骤1
攻击者需要具备本地高权限(PR:H),通常是root权限,以便执行mknod命令创建设备节点。
STEP 2
步骤2
攻击者执行受影响的uutils coreutils版本的mknod工具,尝试创建一个设备节点(如字符设备或块设备)。
STEP 3
步骤3
mknod工具首先在文件系统上成功创建了设备节点,但在随后的操作中,尝试设置SELinux安全上下文失败(可能由于权限策略或无效标签)。
STEP 4
步骤4
工具尝试进行错误清理,调用std::fs::remove_dir()函数删除该节点。由于该函数无法删除设备文件,清理操作失败。
STEP 5
步骤5
设备节点残留在系统中,并继承了目录的默认SELinux上下文,而非预期的严格限制上下文。
STEP 6
步骤6
攻击者或低权限用户利用该残留的、标签错误的设备节点,绕过强制访问控制(MAC)策略,读取或写入本应受保护的硬件数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # PoC for CVE-2026-35361: uutils coreutils mknod cleanup failure # This script demonstrates the scenario where a device node is created # but fails to set the correct SELinux context, leaving a vulnerable node. DEVICE_NAME="vuln_device" DEVICE_PATH="/tmp/$DEVICE_NAME" echo "[+] Attempting to create device node to trigger atomicity failure..." # Simulate the vulnerable behavior: Create node then fail context setting # In a real vulnerable version, 'mknod' might fail internally but leave the file # Here we mimic the result: a node exists with default context # Check if running as root (required for mknod) if [ "$EUID" -ne 0 ]; then echo "[-] Please run as root to execute mknod" exit 1 fi # Create a dummy character device (Major 1, Minor 3 - null device usually) # Using standard mknod to demonstrate the artifact left behind mknod $DEVICE_PATH c 1 3 if [ -e $DEVICE_PATH ]; then echo "[+] Device node created at $DEVICE_PATH" echo "[+] Checking SELinux context:" ls -Z $DEVICE_PATH echo "[!] If the context is 'device_t' or default instead of a specific restricted context, the system might be vulnerable." # Cleanup for PoC rm -f $DEVICE_PATH else echo "[-] Failed to create device node" fi

影响范围

uutils coreutils < 0.6.0

防御指南

临时缓解措施
如果无法立即升级,应避免在关键系统上使用受影响版本的uutils coreutils创建敏感设备节点。管理员应手动审计/tmp及/dev目录下的异常设备文件,并使用restorecon命令纠正错误的SELinux上下文,确保强制访问控制策略有效。

参考链接

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