IPBUF安全漏洞报告
English
CVE-2026-35340 CVSS 5.5 中危

CVE-2026-35340 uutils coreutils递归操作状态码错误

披露日期: 2026-04-22

漏洞信息

漏洞编号
CVE-2026-35340
漏洞类型
逻辑错误
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
uutils coreutils

相关标签

逻辑错误权限管理uutils coreutilsCVE-2026-35340

漏洞概述

uutils coreutils 的 chown 和 chgrp 命令在执行递归操作时存在严重逻辑缺陷。其 ChownExecutor 组件仅根据处理的最后一个文件的状态来确定最终退出代码。如果最后一个操作成功,即使之前的操作因权限不足而失败,命令也会错误地返回 0。这会导致管理员或自动化脚本误判权限修改已全部成功,从而引发潜在的安全配置错误。

技术细节

该漏洞深入影响 uutils coreutils 中 ChownExecutor 的核心逻辑。在进行递归的所有权变更操作时,工具会遍历目录树中的每一个文件。在常规设计中,只要遍历过程中出现任何文件操作失败(例如权限拒绝),进程应当记录该错误并返回非零的退出代码以警示用户。然而,受影响版本的实现存在覆盖错误,它仅保留最后一个文件的操作结果作为最终返回值。攻击者或系统环境若利用目录结构中最后一个文件可写但中间关键文件不可写的场景,即可触发此漏洞。依赖退出码的脚本接收到 0 退出码后,会错误地认为所有文件所有权均已正确变更,实际上部分敏感文件仍保留了旧的权限设置。这不仅破坏了系统完整性的预期,还可能维持未授权的访问路径,导致后续的安全风险。

攻击链分析

STEP 1
环境准备
攻击者在系统上拥有低权限账户,并能够预测或影响目录中文件的遍历顺序。
STEP 2
触发操作
管理员或自动化脚本对包含特定文件的目录执行递归 chown 或 chgrp 命令。
STEP 3
逻辑触发
在处理过程中,中间的文件因权限不足导致操作失败,但最后一个文件操作成功。
STEP 4
状态误判
由于漏洞,命令返回退出代码 0,欺骗调用脚本认为整个操作成功。
STEP 5
维持权限
部分文件的实际所有权未发生改变,导致系统留存安全配置漏洞,攻击者可能维持对敏感文件的访问。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # PoC for CVE-2026-35340: Incorrect Exit Code in Recursive Chown # This script demonstrates the logic flaw where the exit code depends only on the last file. # Setup directory structure POC_DIR="/tmp/cve_2026_35340_poc" rm -rf $POC_DIR mkdir -p $POC_DIR # Create two files # 'protected_file' is assumed to be owned by root (or immutable) to cause failure # 'accessible_file' is owned by current user to ensure success touch $POC_DIR/protected_file touch $POC_DIR/accessible_file # Note: To reproduce the actual failure, 'protected_file' must be unwritable by the current user. # You might need to use 'chown root' or 'chmod 000' on protected_file before running the next step. # Example: sudo chown root:root $POC_DIR/protected_file echo "Running vulnerable chown command..." # Run the recursive chown. The vulnerable version returns 0 if accessible_file succeeds, # regardless of protected_file's status. # chown -R $USER:$USER $POC_DIR # Check the exit status of the previous command if [ $? -eq 0 ]; then echo "[+] Vulnerability Detected: Command returned 0 (Success)." echo "[!] However, 'protected_file' ownership might not have changed." else echo "[-] Command returned non-zero. Logic might be correct." fi

影响范围

uutils coreutils < 0.6.0

防御指南

临时缓解措施
在升级修复前,建议管理员在执行 chown 或 chgrp 命令后,使用 `find` 等工具手动复核关键目录下的文件权限归属,确保所有目标文件均已正确变更,避免因误判退出码导致的安全配置遗漏。

参考链接

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