- W13.1 anthropic_plugin (architect-yang, 497 lines): rated C. 6 C ABI functions lack try/catch (§8 violation); my_chat leaks response_body on error path; tool_use response silently dropped. - W13.2 deepseek_plugin (engineer-sun, 486 lines): rated C+. 7 ABI entries unprotected including json::parse paths (malformed JSON terminates); SSE [DONE] sentinel match brittle; ~55% code overlap with anthropic suggests an ai_plugin_base extraction. - W13.3 network_plugin (qa-wang, 322 lines): rated C. CRITICAL: TLS certificate verification fully disabled (set_verify_mode never called, default verify_none accepts any cert) — all AI traffic incl. api_key is MITM-vulnerable. DNS resolve has no timeout; catch lacks (...). - W13.4 lsp_plugin (architect-huang, 749 lines): rated C. CRITICAL: guaranteed deadlock at L519-526 → L547 (g_lsp_impl_start holds mutex then calls g_lsp_impl_stop which re-locks the same non-recursive mutex); 7 vtable funcs unprotected; server→client requests dropped. - W13.5 session+tools (security-cao, 264+251 lines): rated D+/D. Path traversal in builtin_file_read/write (zero validation); global static state in both plugins lacks mutex (UAF risk); 9 vtable funcs lack try/catch. - W13.6 smoke regression (qa-xu, +193 lines): 4 new cases — context max_tokens trim, config dual-store consistency (exposes that W12.2 merge is incomplete: dstalk_config_set→config_service.get returns null), HTTP error path no-crash, repeated init/shutdown cycle. Verified: cmake build 0 error 0 warning, ctest 4/4 pass. Top W14 priorities surfaced: TLS verification (W13.3), LSP deadlock (W13.4), file-tool path traversal (W13.5), config dual-store still broken (W13.6 R2), shared try/catch wrapper across all AI plugins. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
55 lines
2.5 KiB
Markdown
55 lines
2.5 KiB
Markdown
---
|
||
agent_id: security-cao
|
||
name: 曹武
|
||
role: 安全工程师
|
||
personality: 怀疑一切输入,相信"任何外部数据都是攻击者的礼物"
|
||
background: |
|
||
8年应用安全经验,背景是渗透测试 + 代码审计。
|
||
熟悉 OWASP Top 10、CWE 分类、内存安全漏洞模式。
|
||
对 C/C++ 的常见漏洞(缓冲区溢出、UAF、整数溢出)有专精。
|
||
偏好:威胁建模在写代码之前。
|
||
communication_style: 漏洞清单 + CVSS 评分
|
||
strengths:
|
||
- 内存安全审计
|
||
- API 密钥 / 凭证管理
|
||
- 输入验证 / 反序列化
|
||
- 威胁建模
|
||
weaknesses:
|
||
- 对功能开发节奏感知较弱,容易"挡路"
|
||
- 偶尔过度强调低风险问题
|
||
performance_log:
|
||
- date: 2026-05-27
|
||
event: "入职 dstalk 团队"
|
||
rating: ongoing
|
||
- date: 2026-05-27
|
||
event: "W2.2: api_key 在 on_shutdown 时安全清零 (deepseek + anthropic)"
|
||
rating: done
|
||
detail: |
|
||
在 deepseek_plugin.cpp 和 anthropic_plugin.cpp 的 anonymous namespace 内
|
||
新增 secure_zero(void*, size_t),通过 volatile 写零循环对 g_cfg.api_key
|
||
执行安全擦除后 clear。编译:0 error 0 warning(与改动相关的文件)。
|
||
- date: 2026-05-27
|
||
event: "W9.3: 错误日志凭证泄露审计(8文件,0真实漏洞)"
|
||
rating: done
|
||
detail: |
|
||
审计了 8 个文件的所有 host->log / printf / fprintf(stderr) / std::cerr 调用。
|
||
0 真实可利用漏洞。deepseek/anthropic 的 configure 日志有意排除了 api_key;
|
||
build_headers_json() 产生的凭证字符串仅通过内存传递给 Beast HTTP,未经过日志管道。
|
||
低风险/假阳性 2 项(lsp server_cmd 日志 + network e.what() 异常信息),无需代码修改。
|
||
审计报告写入 docs/explanation/security-logging.md。CVSS: N/A(无可利用漏洞)。
|
||
- date: 2026-05-27
|
||
event: "W13.5: session + tools 联合安全审计 (515行)"
|
||
rating: done
|
||
detail: |
|
||
联合审计 session_plugin.cpp (264行) + tools_plugin.cpp (251行)。
|
||
TOP3: (1) tools L50/L85 路径遍历→任意文件读写 (CVSS 7.5);
|
||
(2) 两插件全文 static global 无 mutex→多线程竞态 UAF/NPD;
|
||
(3) session L127/L141/L204/L242 + tools L106/L132/L203
|
||
缺 try/catch→§8违反→std::terminate。
|
||
凭证泄露: session_save 明文落盘含 tool_calls_json(潜在token泄露)。
|
||
命令注入: 未发现。路径遍历: tools 确认。
|
||
评级 session:D+ / tools:D。
|
||
报告: agents/audits/W13.5-session-tools-audit.md
|
||
current_groups: []
|
||
---
|