错误: 绝对 `prdPath` 允许在项目根目录外读取任意文件
作者: pzr21创建于 2026年6月30日更新于 2026年6月30日
标签bug
说明
Claude-任务主管 ' 在parsePrdToHamster'中具有可逆的脆弱性。 当`prdPath'是绝对的时,函数直接接受并读取文件而不要求它位于工程根内. 然后将PRD的内容转发到下游集成逻辑,为进程可读的文件创建了任意本地文件读取和分解原始.
- 重现步骤
编写工程根及其外侧的单独文件 :
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 项目 Root=/tmp/ctm-prd-path-poc/安全项目根 外部文件=/tmp/ctm-prd-path-poc/外-secret.txt 外部内容=CTM-PRD-SECRET
将“项目 Root”外的“prdPath”称为“PRD”
贾森
{
"prdPath":"(/tmp/ctm-prd-path-poc/外-secret.txt),",",".
"Project Root":"/tmp/ctm-prd-path-poc/安全-项目-根".
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?同样的边界问题也适用于在项目根外解决的相对路径,如`./.-secret-txt',如果被呼叫者接受。
• 预期行为
PRD 输入和输出路径应被解决为条形路径并被拒绝,除非最后路径仍留在`项目 Root'内。 不应该接受项目根外的绝对路径和相对的倒转路径。
实际行为
root外文件被接受为PRD输入并被读取内容:
读取内容=CTM-PRD-SECRET边界检查失败, 即使文件在“ project Root” 之外 :
prdPath=/tmp/ctm-prd-path-poc/外在-机密.txt
项目 Root=/tmp/ctm-prd-path-poc/安全项目根环境
- 任务总版本:0.43.1(`c0c98d367c55296bfe69e65680625b6db437af02')
- Node.js版本:v20.18.1
- 操作系统:Ubuntu 22.04 LTS,Linux 6.5.13-5-pve x86 64
- IDE(如果适用):VS代码
内容来源: eyaltoledano/claude-task-master