**Scr审计完成!以下是对 DeepSeek-Reasonix v0.52.0 的深度BUG挖掘结果:
🔍 审计概况
严重等级 数量 关键发现
High 3 符号链接路径遍历、TOCTOU竞态、SSRF风险
Medium 6 硬编码模型名、新建文件非原子、检查点权限缺失、会话重命名非原子等
Low 4 模糊评分偏差、类型验证不足、EXDEV回退非原子等
🚨 最关键的3个BUG
-
符号链接→敏感文件信息泄露 (High)
src/at-mentions.ts — 用户可通过创建符号链接指向 /etc/passwd 等敏感文件,然后在对话中 @敏感文件名 将内容注入到AI提示词中。
-
TOCTOU 竞态条件 (High)
src/code/edit-blocks.ts — realpathSync → openSync 之间存在微小的竞态窗口,符号链接可能被替换,导致编辑操作指向非预期文件。
-
@url SSRF 风险 (Medium-High)
src/at-mentions-url.ts — @http://169.254.169.254/... 可访问云元数据端点,@http://localhost:xxx 可探测内网服务。
⚡ 其他重要发现
硬编码摘要模型 "deepseek-v4-flash" — 自定义API端点用户折叠功能会静默失败
新建文件缺少原子写入 — 进程崩溃时可能留下不完整文件
检查点文件权限 0644 — 多用户共享机器时可被其他用户读取
renameSession 非原子 — 崩溃后可能产生孤儿 sidecar 文件een flicker, garbled output, leftover artifacts, cursor jumping?**
Use the Display / rendering issue template instead — it asks for the
terminal-specific info we need to diagnose those.
What happened
A clear and concise description.
Expected
What you expected to happen.
Reproduction
Steps or minimal code that reproduces it.
Environment
- Reasonix version (
reasonix --version):
- Node version (
node --version):
- OS (Windows 11 / macOS 14 / Ubuntu 24.04 / …):
- Shell (bash, zsh, fish, PowerShell 7, PowerShell 5.1, cmd, …):
- Terminal app (Windows Terminal, iTerm2, Alacritty, kitty, WezTerm, VSCode integrated, Cursor integrated, Hyper, …):
- DeepSeek model (e.g.
deepseek-v4-flash, deepseek-v4-pro):
Logs / transcript
If using the CLI, attach the relevant chunk of --transcript, or run
reasonix doctor and paste the output.
🚨 Round 2 最关键的新发现
🔴 Critical/High 级别
BUG 文件 问题
BUG-025 loop.ts Abort信号竞态条件 — 快速连按Esc导致abort丢失
BUG-026 context-manager.ts Fold边界截断工具调用 — 导致API 400错误
BUG-027 session.ts rewriteSession竞态 — 并发写入导致数据丢失
BUG-028 loop.ts 无迭代上限 — 恶意工具可触发无限循环
BUG-035 streaming.ts toolCallDelta无大小限制 — 可能OOM
BUG-035R desktop QQ OAuth token明文存储在config.json
BUG-039R adapters Windows上chmodSync是no-op,权限保护失效
BUG-040R java/ javap命令注入风险
🟠 Medium 级别亮点
BUG 问题
BUG-031 _turn计数在switchWorkspace后不一致
BUG-034 会话恢复时数据静默丢失,无任何警告
BUG-037 subagent abort监听器泄漏
BUG-039 CJK字符token估算可能低估2-3倍
BUG-041 Frontmatter解析器原型污染
BUG-042 i18n参数替换正则注入
🎯 P0 必须立即修复的4个BUG
BUG-026 — Fold截断工具调用 → 生产环境会直接触发API 400
BUG-028 — 无迭代上限 → 用户可能陷入无限token消耗
BUG-027 — 并发会话写入竞态 → 数据丢失
BUG-025 — Abort信号竞态 → 用户无法中断
📁 完整报告:
Round 1: bug-report-reasonix.md
Round 2: bug-report-reasonix-round2.md
🔍 审计概况
严重等级 数量 关键发现
High 3 符号链接路径遍历、TOCTOU竞态、SSRF风险
Medium 6 硬编码模型名、新建文件非原子、检查点权限缺失、会话重命名非原子等
Low 4 模糊评分偏差、类型验证不足、EXDEV回退非原子等
🚨 最关键的3个BUG
符号链接→敏感文件信息泄露 (High)
src/at-mentions.ts — 用户可通过创建符号链接指向 /etc/passwd 等敏感文件,然后在对话中 @敏感文件名 将内容注入到AI提示词中。
TOCTOU 竞态条件 (High)
src/code/edit-blocks.ts — realpathSync → openSync 之间存在微小的竞态窗口,符号链接可能被替换,导致编辑操作指向非预期文件。
@url SSRF 风险 (Medium-High)
src/at-mentions-url.ts — @http://169.254.169.254/... 可访问云元数据端点,@http://localhost:xxx 可探测内网服务。
⚡ 其他重要发现
硬编码摘要模型 "deepseek-v4-flash" — 自定义API端点用户折叠功能会静默失败
新建文件缺少原子写入 — 进程崩溃时可能留下不完整文件
检查点文件权限 0644 — 多用户共享机器时可被其他用户读取
renameSession 非原子 — 崩溃后可能产生孤儿 sidecar 文件een flicker, garbled output, leftover artifacts, cursor jumping?**
What happened
A clear and concise description.
Expected
What you expected to happen.
Reproduction
Steps or minimal code that reproduces it.
Environment
reasonix --version):node --version):deepseek-v4-flash,deepseek-v4-pro):Logs / transcript
If using the CLI, attach the relevant chunk of
--transcript, or runreasonix doctorand paste the output.🚨 Round 2 最关键的新发现
🔴 Critical/High 级别
BUG 文件 问题
BUG-025 loop.ts Abort信号竞态条件 — 快速连按Esc导致abort丢失
BUG-026 context-manager.ts Fold边界截断工具调用 — 导致API 400错误
BUG-027 session.ts rewriteSession竞态 — 并发写入导致数据丢失
BUG-028 loop.ts 无迭代上限 — 恶意工具可触发无限循环
BUG-035 streaming.ts toolCallDelta无大小限制 — 可能OOM
BUG-035R desktop QQ OAuth token明文存储在config.json
BUG-039R adapters Windows上chmodSync是no-op,权限保护失效
BUG-040R java/ javap命令注入风险
🟠 Medium 级别亮点
BUG 问题
BUG-031 _turn计数在switchWorkspace后不一致
BUG-034 会话恢复时数据静默丢失,无任何警告
BUG-037 subagent abort监听器泄漏
BUG-039 CJK字符token估算可能低估2-3倍
BUG-041 Frontmatter解析器原型污染
BUG-042 i18n参数替换正则注入
🎯 P0 必须立即修复的4个BUG
BUG-026 — Fold截断工具调用 → 生产环境会直接触发API 400
BUG-028 — 无迭代上限 → 用户可能陷入无限token消耗
BUG-027 — 并发会话写入竞态 → 数据丢失
BUG-025 — Abort信号竞态 → 用户无法中断
📁 完整报告:
Round 1: bug-report-reasonix.md
Round 2: bug-report-reasonix-round2.md