Agent 2 - 安全审查 (Low)
pkg/cmd/release/download/download.go:208-215
os.Lstat 检查 symlink 后,攻击者在 os.Create 执行前将路径替换为 symlink,即可将下载内容写入任意文件。safeOutputPath 已做了路径遍历防护,但此 TOCTOU 是最后一道防线上的缺口。
利用条件苛刻(需本地文件系统写入权限 + 精确时间窗口),但在多用户共享系统中可行。
使用 os.OpenFile 配合 O_NOFOLLOW(Linux)或先创建临时文件再 os.Rename(原子操作)。
🤖 Generated by daily multi-agent code review workflow
已修复: 使用 os.CreateTemp + os.Rename 原子写入,消除 Lstat→Create TOCTOU 窗口。
发现来源
Agent 2 - 安全审查 (Low)
位置
pkg/cmd/release/download/download.go:208-215
证据
os.Lstat 检查 symlink 后,攻击者在 os.Create 执行前将路径替换为 symlink,即可将下载内容写入任意文件。safeOutputPath 已做了路径遍历防护,但此 TOCTOU 是最后一道防线上的缺口。
影响评估
利用条件苛刻(需本地文件系统写入权限 + 精确时间窗口),但在多用户共享系统中可行。
建议修复方向
使用 os.OpenFile 配合 O_NOFOLLOW(Linux)或先创建临时文件再 os.Rename(原子操作)。
🤖 Generated by daily multi-agent code review workflow