IPBUF安全漏洞报告
English
CVE-2026-35341 CVSS 7.1 高危

CVE-2026-35341 uutils coreutils权限修改漏洞

披露日期: 2026-04-22

漏洞信息

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

相关标签

权限修改本地漏洞uutils coreutils逻辑错误

漏洞概述

uutils coreutils的mkfifo组件存在安全漏洞,允许未经授权修改现有文件权限。当mkfifo因目标路径已存在文件而创建失败时,程序未正确终止操作,反而继续执行后续的权限设置调用。这导致现有文件的权限被强制改为默认模式(如umask后的644),可能将SSH私钥等敏感文件暴露给系统其他用户,造成信息泄露风险。

技术细节

该漏洞源于uutils coreutils中mkfifo命令的逻辑缺陷。在Unix系统中,mkfifo用于创建命名管道。正常情况下,如果目标文件已存在,mkfifo应报错退出。然而,受影响版本的代码在检测到EEXIST错误后,未立即返回,而是继续向下执行set_permissions函数。攻击者可利用此逻辑漏洞,预先在目标路径放置敏感文件(如.ssh/id_rsa),诱导或等待管理员/脚本执行mkfifo命令。由于程序会覆盖文件权限,原本受限的敏感文件将变为全局可读或组可读(取决于umask),从而实现本地权限提升或敏感信息窃取。此漏洞属于典型的状态处理错误,攻击者无需特殊权限即可利用,且无需用户交互,在多用户共享环境中危害极大。

攻击链分析

STEP 1
步骤1:文件放置
攻击者在系统中预先创建一个敏感文件(如SSH私钥),并设置严格的访问权限(如600),仅限所有者访问。
STEP 2
步骤2:触发漏洞
攻击者诱导管理员或自动化脚本在包含该敏感文件的路径上执行mkfifo命令,意图创建命名管道。
STEP 3
步骤3:权限篡改
由于mkfifo在检测到文件存在后未终止流程,继续执行set_permissions调用,将现有敏感文件的权限修改为默认值(如644)。
STEP 4
步骤4:信息窃取
系统中的其他用户或低权限攻击者现在可以读取原本受限的敏感文件内容,导致机密性泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # PoC for CVE-2026-35341: Permission modification via mkfifo # 1. Create a sensitive file with restrictive permissions (e.g., SSH key) touch /tmp/target_file chmod 600 /tmp/target_file echo "Initial permissions:" ls -l /tmp/target_file # 2. Execute the vulnerable mkfifo command on the existing file # This simulates a user or script attempting to create a FIFO mkfifo /tmp/target_file # 3. Check the permissions after the command echo "Permissions after mkfifo:" ls -l /tmp/target_file # Expected result on vulnerable version: Permissions change to 644 (or umask default) # making the file readable by others/group.

影响范围

uutils coreutils (修复前版本)

防御指南

临时缓解措施
在未升级修复补丁前,用户应避免在包含敏感文件的目录下执行mkfifo命令。建议在脚本中增加文件存在性检查逻辑,防止覆盖现有文件权限。同时,定期审计系统敏感文件的权限设置,及时发现异常变更。

参考链接

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