agent-Specialization/modules
JOJO aedbee2b75 fix(security): 第二轮全量 API 审计修复(角色穿越/宿主 GUI/限流收口)
背景:对全部 206 个 HTTP 路由 + SocketIO 事件逐个排查(主审 + 2 个子
智能体初筛后复核),另按用户要求专项审计前端渲染面(无新发现)。
完整报告见 _experiments/security_audit_2026-09-02/REPORT.md 第八章。

新漏洞修复:
- 多智能体角色 role_id 路径穿越(高):save_custom_role 直接拼接
  "{role_id}.md",POST body 的 role_id 无任何校验,可 ../ 穿越覆盖
  其他用户角色文件(跨用户提示词注入),本地已复现写入成功。
  修复:新增 validate_role_id 白名单(^[a-z0-9][a-z0-9_-]{0,63}$),
  role_store 存储层 + multi_agent API 层(POST/PUT/DELETE)双保险
- open-in-file-manager 漏 _is_host_mode_request 检查(同文件其余三个
  端点都有):docker 模式下任意登录用户可触发宿主 GUI 弹窗+探测路径。
  修复:补 host 检查,docker 下 403
- /api/admin/secondary/verify 无限流且 CSRF 豁免:admin 会话前提下
  可在线爆破二级密码(纵深防御缺失)。修复:5 次/300s 用户维度限流
- WS client_chunk_log / client_stream_debug_log 无连接认证检查且
  无限流(日志写盘放大面)。修复:必须已认证连接 + 30 次/60s 滑窗
  + 桶表万级上限回收
- _get_conversation_file_path 直接拼 "{id}.json"(conv_ 前缀恰好阻碍
  直接穿越,属防御深度缺失)。修复:^conv_[A-Za-z0-9_-]+$ 白名单,
  已核验全部 5 个调用点与 temp_ 前缀排除路径不受影响
- /api/conversations/media/<id> 采信 entry mime_type 并 inline 返回。
  修复:text/html、image/svg+xml、xhtml 强制 octet-stream + attachment
  (与 file/content 的 SVG 策略对齐,防存储型 XSS 一致性收口)
- /api/status 每次心跳返回宿主绝对 project_path(泄露系统用户名与
  目录布局)。修复:docker 模式脱敏为容器视角 /workspace,host 不变

LLM 成本攻击止血(第一轮发现 5 的端点级落地):
- POST /api/tasks(GUI 发消息主入口):30 次/60s/user
- POST /api/conversations/<id>/compress(调 api_client.chat 做摘要):
  5 次/300s/user
- 注:对话回顾 review 端点实为纯本地 Markdown 生成(不调 LLM),
  其「发送给模型」模式走 /api/tasks,已被上述限流覆盖;
  按 token 计费的完整配额方案仍遗留待产品决策

验证:全部 py_compile 通过;冒烟测试 6/6;validate_role_id 8 个恶意
样本全拒 + 3 个合法样本放行 + 穿越写入拦截回归通过;conv_id 白名单
4 组样本符合预期。端点级行为待服务重启后实测。
2026-09-02 19:37:34 +08:00
..
file_manager fix(security): Docker 多用户模式全面安全加固(安全审计修复) 2026-09-02 18:31:00 +08:00
i18n_messages fix(security): 第二轮全量 API 审计修复(角色穿越/宿主 GUI/限流收口) 2026-09-02 19:37:34 +08:00
mcp_client_manager feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
multi_agent fix(security): 第二轮全量 API 审计修复(角色穿越/宿主 GUI/限流收口) 2026-09-02 19:37:34 +08:00
persistent_terminal feat(sandbox): Docker 只读执行叠加 Landlock 进程级只读域,封死 world-writable 绕 DAC 漏洞 2026-09-01 15:17:23 +08:00
sub_agent feat(stream): 流式断流「清除重来」自动重试机制 2026-08-31 19:58:43 +08:00
terminal_ops feat(sandbox): Docker 只读执行叠加 Landlock 进程级只读域,封死 world-writable 绕 DAC 漏洞 2026-09-01 15:17:23 +08:00
admin_policy_manager.py release: sync from main @0f9fd1b2 (2026-08-22) 2026-08-22 12:27:19 +08:00
api_user_manager.py fix(security): Docker 多用户模式全面安全加固(安全审计修复) 2026-09-02 18:31:00 +08:00
approval_agent.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
auto_approval_service.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
background_command_manager.py feat(sandbox): Docker 只读执行叠加 Landlock 进程级只读域,封死 world-writable 绕 DAC 漏洞 2026-09-01 15:17:23 +08:00
citations.py feat(chat): 行内引用胶囊(inline citations) 2026-09-01 22:31:37 +08:00
container_file_proxy.py fix(security): Docker 多用户模式全面安全加固(安全审计修复) 2026-09-02 18:31:00 +08:00
container_monitor.py release: sync from main @0f9fd1b2 (2026-08-22) 2026-08-22 12:27:19 +08:00
custom_tool_executor.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
custom_tool_registry.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
docker_readonly_exec.py feat(sandbox): Docker 只读执行叠加 Landlock 进程级只读域,封死 world-writable 绕 DAC 漏洞 2026-09-01 15:17:23 +08:00
easter_egg_manager.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
edit_summary.py release: sync from main @0f9fd1b2 (2026-08-22) 2026-08-22 12:27:19 +08:00
execution_env_text.py release: sync from main @0f9fd1b2 (2026-08-22) 2026-08-22 12:27:19 +08:00
goal_review_agent.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
goal_state_manager.py release: sync from main @0f9fd1b2 (2026-08-22) 2026-08-22 12:27:19 +08:00
gui_file_manager.py fix(security): Docker 多用户模式全面安全加固(安全审计修复) 2026-09-02 18:31:00 +08:00
host_sandbox_policy.py feat(security): 沙箱只读真强制与权限模式边界收敛 2026-08-30 22:07:14 +08:00
host_sandbox_runner.py feat(security): 终端读写身份创建时钉死,权限跨界切换销毁重建 2026-08-30 23:06:33 +08:00
host_workspace_manager.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
i18n.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
landlock_launcher.py feat(sandbox): Docker 只读执行叠加 Landlock 进程级只读域,封死 world-writable 绕 DAC 漏洞 2026-09-01 15:17:23 +08:00
mcp_server_registry.py release: sync from main @0f9fd1b2 (2026-08-22) 2026-08-22 12:27:19 +08:00
memory_manager.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
modify_history.py release: sync from main @0f9fd1b2 (2026-08-22) 2026-08-22 12:27:19 +08:00
ocr_client.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
personalization_manager.py feat(personalization): 个人空间支持配置对话标题生成模型 2026-09-01 09:46:05 +08:00
plan_approval_manager.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
review_agent_config.py feat(personalization): 个人空间支持配置对话标题生成模型 2026-09-01 09:46:05 +08:00
sandbox_setup_manager.py feat(sandbox): Windows 沙箱环境检测弹窗与一键安装向导 2026-09-01 01:01:09 +08:00
search_engine.py feat(chat): 行内引用胶囊(inline citations) 2026-09-01 22:31:37 +08:00
shallow_versioning.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
skill_hint_manager.py release: sync from main @0f9fd1b2 (2026-08-22) 2026-08-22 12:27:19 +08:00
skills_manager.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
terminal_manager.py feat(security): 终端读写身份创建时钉死,权限跨界切换销毁重建 2026-08-30 23:06:33 +08:00
todo_manager.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
tool_approval_manager.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
toolbox_container.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
upload_security.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
usage_tracker.py release: sync from main @0f9fd1b2 (2026-08-22) 2026-08-22 12:27:19 +08:00
user_container_manager.py fix(security): Docker 多用户模式全面安全加固(安全审计修复) 2026-09-02 18:31:00 +08:00
user_manager.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
user_question_manager.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
versioning_manager.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
webpage_extractor.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
workflow_manager.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
workflow_review_agent.py feat(i18n): 后端用户可见消息国际化(zh/en 双语 + ui_locale 偏好持久化) 2026-08-29 07:58:29 +08:00
workflow_state_manager.py release: sync from main @0f9fd1b2 (2026-08-22) 2026-08-22 12:27:19 +08:00