IPBUF安全漏洞报告
English
CVE-2026-33949 CVSS 8.1 高危

CVE-2026-33949 TinaCMS路径遍历致任意文件写入漏洞

披露日期: 2026-04-01

漏洞信息

漏洞编号
CVE-2026-33949
漏洞类型
路径遍历、任意文件写入
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
TinaCMS (@tinacms/graphql)

相关标签

路径遍历任意文件写入TinaCMSGraphQLRCECVE-2026-33949

漏洞概述

TinaCMS 是一个无头内容管理系统。在 2.2.2 版本之前,其 @tinacms/graphql 组件存在路径遍历漏洞。未经身份认证的攻击者可以通过操纵 GraphQL 请求中的 relativePath 参数,在项目根目录下写入或覆盖任意文件。此漏洞可能导致攻击者替换关键的服务器配置文件,或者通过篡改构建脚本在服务器上执行任意命令,对系统完整性和可用性造成严重影响。

技术细节

该漏洞由于 TinaCMS 的 GraphQL 接口在处理文件写入操作时,未能正确验证 relativePath 参数而引发。攻击者无需用户交互,即可利用该缺陷。通过在 GraphQL 变异请求中注入路径遍历字符(如 '../'),攻击者可以将指定内容写入项目根目录下的任意位置。利用此漏洞,攻击者可以覆写 package.json 中的构建脚本(如 preBuild 脚本),植入恶意命令。当系统执行构建操作时,这些恶意命令将随构建进程运行,从而导致服务器被完全控制。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标系统使用了 TinaCMS,并确定其版本低于 2.2.2。
STEP 2
2. 发送恶意请求
攻击者向 GraphQL 端点发送特制的变异请求,在 relativePath 参数中使用 '../' 序列指向项目根目录下的关键文件(如构建脚本)。
STEP 3
3. 写入恶意文件
服务器端未正确过滤路径,将攻击者提供的数据写入到指定位置,覆盖原有文件。
STEP 4
4. 触发执行
攻击者等待构建任务触发或诱导系统重启,执行被篡改脚本中的恶意代码,从而获得服务器控制权。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-33949: Path Traversal in TinaCMS GraphQL # This mutation attempts to overwrite a configuration file using path traversal mutation { # Hypothetical mutation based on the vulnerability description addOrUpdateDocument( relativePath: "../../../config/production.json" content: "{\"malicious\": \"payload\"}" ) { success document { id } } }

影响范围

TinaCMS < 2.2.2

防御指南

临时缓解措施
如果不能立即升级,建议暂时禁用 GraphQL 接口的写入权限,或通过网络访问控制列表(ACL)限制对 `/api/graphql` 端点的访问,密切监控项目根目录下文件的异常变动。

参考链接

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