Commit Graph
127 Commits
Author SHA1 Message Date
meraklbz ea20eb15e5 fix bug 2026-02-10 23:13:51 +08:00
meraklbz 702571d1ef fix bug 2026-02-10 21:04:14 +08:00
lintsinghuaandClaude Opus 4.6 f20c698726 修复:agent_tasks.py 启动报错 NameError: zipfile 未导入
safe_extract_zip 函数签名在模块级别引用了 zipfile.ZipFile 类型注解,
但 zipfile 模块只在函数内部局部导入,导致模块加载时报 NameError。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 23:39:27 +08:00
ez-lbz d664f33622 Merge pull request #149 from Jeremy2214/patch-1
后端Git URL命令注入漏洞修复和后端解压缩路径遍历漏洞修复
2026-02-09 22:55:00 +08:00
lintsinghuaandClaude Opus 4.6 685ff3f873 修复:自定义审计规则类别过滤未生效 (#106)
根据启用的规则类别动态生成 JSON Schema type 枚举和类别约束指令,
确保禁用的规则类别(如性能、代码质量)不会出现在审计结果中。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 12:09:37 +08:00
lintsinghuaandClaude Opus 4.6 f86a34f038 修复:退出登录不跳转 (#142) 和 batch_size 设置不生效 (#91)
- Account.tsx: handleLogout 和 handleSwitchAccount 改为调用
  AuthContext.logout() 清除认证状态,确保退出后重定向到登录页
- agent_tasks.py: 创建 EmbeddingService 后设置用户配置的 batch_size
- indexer.py: batch_size 默认值从 50 改为 100,与 EmbeddingConfig 一致

Fixes #142, Fixes #91

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 11:37:43 +08:00
lintsinghuaandClaude Opus 4.6 c1632460b1 修复:沙箱容器 "operation not permitted" 错误 (exit_code=255)
原因:cap_drop: ["ALL"] 在部分 Docker 环境(AppArmor/SELinux)下
导致容器无法执行 /bin/sh,Semgrep 等工具直接失败。

修改:
- 默认改为丢弃特定危险能力而非全部,提高兼容性
- 新增 SANDBOX_CAP_DROP 环境变量,可自定义丢弃的能力列表
- 新增 SANDBOX_NO_NEW_PRIVILEGES 环境变量,可关闭 no-new-privileges
- 遇到问题时可设置 SANDBOX_CAP_DROP=NONE 完全关闭能力限制

Fixes #157

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 11:22:02 +08:00
lintsinghuaandClaude Opus 4.6 cf59c10ddd 修复:Claude 模型不允许同时传 temperature 和 top_p 的问题
Claude API 要求 temperature 和 top_p 不能同时指定,
当 provider 为 Claude 时不再传递 top_p 参数。

Fixes #160

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 11:12:34 +08:00
lintsinghuaandClaude Opus 4.6 7c691284dc 修复:Dashboard"已解决"始终为0及相关问题
1. 修复 AgentFinding 已解决计数:改用 fixed/wont_fix/false_positive 判断
2. 修复后端状态更新 API:路由与前端匹配,从 body 读取 status,修正验证逻辑
3. 前端添加状态变更下拉菜单:项目问题列表和任务详情均可标记已解决/误报

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 19:12:45 +08:00
lintsinghua 53d2a8a5db 修复:平均质量分为0.0 2026-02-07 17:19:29 +08:00
meraklbz b2a3b26579 fix bug 2026-02-05 15:48:25 +08:00
Jeremy2214 f1758a18c9 后端Git URL命令注入漏洞修复和后端解压缩路径遍历漏洞修复
- 添加 validate_git_url() 函数验证 Git URL 安全性
- 添加 validate_branch_name() 函数验证分支名称安全性
- 在执行 git clone 前进行输入验证

- 添加 is_path_safe() 函数检查路径是否在基础目录内
- 添加 safe_extract_zip() 函数安全解压 ZIP 文件
- 防止 Zip Slip 攻击
2026-01-28 13:58:37 +08:00
lintsinghuaandClaude Opus 4.5 25e07f4cc9 fix(tokenizer): 延迟输出 Token 计数方案日志
将日志输出时机从模块导入时改为首次实际使用时,
确保日志在应用日志系统配置完成后输出。

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 19:08:54 +08:00
lintsinghuaandClaude Opus 4.5 2f4107a181 feat(llm): 统一 Token 计数,使用 tiktoken 精确计数
- 新增 TokenEstimator 统一 token 计数逻辑
- 优先使用 tiktoken 精确计数,不可用时回退到启发式估算
- 启动时日志显示实际使用的计数方案
- 修复 agent_tasks 中子 Agent 统计数据未累加的问题
- estimate_tokens 现在支持传入 model 参数

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 19:03:16 +08:00
lintsinghuaandClaude Opus 4.5 5ee9e2297b feat(agent): 修复Agent间TaskHandoff通信机制
- Orchestrator: 添加_build_handoff_for_agent()构建并传递TaskHandoff
- Orchestrator: 保存子Agent返回的handoff到_agent_handoffs字典
- Recon Agent: 添加_create_recon_handoff()生成结构化交接信息
- Analysis Agent: 添加_create_analysis_handoff()传递漏洞发现
- Verification Agent: 添加_create_verification_handoff()返回验证结果

通信流程: Recon → Analysis → Verification → Orchestrator
每个Agent现在都能正确接收、使用和生成TaskHandoff

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 17:39:32 +08:00
lintsinghuaandClaude Opus 4.5 8198f2f390 fix: 嵌入模型向量维度可配置,解决 Ollama 不同参数规模模型维度不匹配问题
Fixes #123

问题:qwen3-embedding:8b 实际维度 4096,但代码硬编码为 1024(只适用于 0.6b 版本),导致 RAG 系统初始化失败

修改内容:
- OllamaEmbedding: 构造函数添加 dimension 参数,用户配置优先
- EmbeddingService: 支持传递自定义维度到各提供商
- embedding_config.py:
  - 补充 _get_model_dimensions 缺失的模型映射
  - get_current_config 优先使用用户配置的维度
  - test_embedding 支持传递自定义维度
- 前端 EmbeddingConfig: 添加"自定义向量维度"输入框

使用方式:
在"系统配置-嵌入模型"页面,输入自定义向量维度(如 4096)即可覆盖默认值

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 14:42:31 +08:00
lintsinghuaandClaude Opus 4.5 da853fdd8c fix: 修复SSRF防护实现的问题
- latency_ms 改为在 sleep 前计算,返回实际嵌入延迟而非固定时间
- FIXED_DURATION 从 10s 降为 3s,改善用户体验
- import 语句移到文件顶部,符合Python规范

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 14:32:33 +08:00
lintsinghua e3ad3241ab Merge pull request #145 from ez-lbz/v3.0.0
通过固定返回时间来防止SSRF扫描内网端口
2026-01-24 14:23:54 +08:00
lintsinghuaandClaude Opus 4.5 551780810c fix: Agent审计LLM超时可配置化,解决硬编码30s超时问题
Fixes #138

问题:Agent审计时LLM超时时间硬编码为30秒,用户配置的超时值不生效

修改内容:
- 前端:在"系统配置-LLM配置-高级参数"增加完整超时配置(默认展开)
  - 首Token超时、流式超时、工具超时、子Agent超时、总超时
- 后端:LLMConfigSchema 增加超时配置字段
- 后端:LLMService 增加 get_agent_timeout_config() 方法
- Agent:BaseAgent 从用户配置读取超时值
- Orchestrator:子Agent调度使用配置的超时值

默认值:
- 首Token超时: 30s
- 流式超时: 60s
- 工具超时: 60s
- 子Agent超时: 600s (10分钟)
- Agent总超时: 1800s (30分钟)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 14:09:36 +08:00
meraklbz b371fbe217 通过固定返回时间来方式SSRF扫描内网端口 2026-01-24 14:04:51 +08:00
ArcueId e06126482c perf(rag): 优化嵌入服务性能并改进批处理大小配置
- 优化本地嵌入服务(Ollama)性能,移除不必要的延迟
- 改进批处理大小配置,使用动态获取替代硬编码
- 保持云端服务的限流逻辑不变
2025-12-28 10:15:58 +08:00
lintsinghua b030381ad2 feat(ssh): 增加SSH超时配置并改进错误处理
- 在配置中添加SSH_CLONE_TIMEOUT、SSH_TEST_TIMEOUT和SSH_CONNECT_TIMEOUT
- 替换print为logging记录关键操作和错误
- 改进SSH命令构建方式防止注入
- 添加分支名验证逻辑
- 优化错误消息显示,避免暴露敏感信息
2025-12-26 20:34:47 +08:00
Image 869513e0c5 Merge branch 'v3.0.0' of github.com:lintsinghua/DeepAudit into feature/git_ssh
# Conflicts:
#	backend/app/api/v1/endpoints/agent_tasks.py
2025-12-26 09:39:25 +08:00
Image f1243245a8 ✨ feat(SSH):添加known_hosts持久化与清理功能
- 新增SSH配置目录设置,支持持久化存储known_hosts文件
- 实现known_hosts文件清理API端点,解决主机密钥变更导致的连接问题
- 优化SSH连接策略,使用StrictHostKeyChecking=accept-new自动接受新主机密钥
- 前端添加known_hosts清理按钮,提升SSH密钥管理体验
- 改进SSH测试逻辑,正确处理部署密钥的Anonymous响应
2025-12-26 09:33:55 +08:00
lintsinghua 15605fea16 refactor(agent): 移除LangGraph工作流并迁移到动态Agent树架构
重构Agent服务架构,从基于LangGraph的状态图迁移到动态Agent树结构。主要变更包括:
- 删除graph模块及相关测试
- 更新agent/__init__.py导入和文档
- 在projects端点添加对新AgentTask模型的统计支持
- 简化工作流描述为START→Orchestrator→[Recon/Analysis/Verification]→Report→END

新架构使用OrchestratorAgent作为编排层,动态调度子Agent完成任务,提高灵活性和可扩展性。
2025-12-25 17:58:14 +08:00
lintsinghua 39e2f43210 feat(agent): 增强API错误处理机制
添加对API错误的分类处理,包括速率限制、配额用尽、认证和连接错误
在base.py中标记API错误前缀,orchestrator.py中实现重试逻辑
litellm_adapter.py中完善错误类型识别和用户友好提示
2025-12-25 17:35:31 +08:00
lintsinghua c7632afdab feat: 为文件操作和代码解析添加异步支持
将同步的文件读取、代码解析和分块操作改为异步实现,使用 asyncio.to_thread 将 CPU 密集型操作放到线程池执行,避免阻塞事件循环。主要修改包括:
- 在 TreeSitterParser 和 CodeSplitter 中添加异步解析方法
- 修改 CodeIndexer 使用异步文件读取和分块
- 为 FileReadTool 和 FileSearchTool 添加异步文件读取支持
2025-12-25 17:20:42 +08:00
Image 597d19dbfe 🐛 fix(git):将SSH主机密钥检查从no改为yes以增强安全性
✨ feat(git):改进SSH URL检测和分支克隆逻辑
📝 docs(frontend):更新SSH公钥添加说明,移除CodeUp链接
2025-12-25 16:17:42 +08:00
vinland100 05b3842536 fix: 修正 Tree-sitter C# 解析器的语言标识符命名以消除加载警告 2025-12-25 15:38:00 +08:00
vinland100 d10f023a7e fix: 实现 Agent 任务中私有 Gitea 仓库克隆的 Token 认证支持 2025-12-25 15:38:00 +08:00
Image b095e7aa6c ✨ feat(git_ssh_service):扩展SSH私钥验证以支持传统RSA PEM格式
🔧 refactor(git_ssh_service):重构私钥加载逻辑,增加格式兼容性处理
2025-12-25 15:13:53 +08:00
Image 9399c01d8c Merge branch 'v3.0.0' of github.com:lintsinghua/DeepAudit into feature/git_ssh
# Conflicts:
#	backend/app/services/scanner.py
#	backend/uv.lock
#	frontend/src/pages/Projects.tsx
2025-12-25 14:41:09 +08:00
vinland100 e4f1391a28 merge: 同步上游 v3.0.0 并更新 uv 依赖锁文件 2025-12-25 11:45:52 +08:00
rockmelodies 91290802a8 在 GoTestTool 类的 _build_wrapper_code 方法中,第 770 行有语法错误。
以修复
2025-12-24 17:39:24 +08:00
Image a79b27a6d2 ✨ feat(ssh):新增SSH密钥认证支持,支持通过SSH方式访问Git仓库
新增SSH密钥管理功能,包括生成、查看、测试和删除SSH密钥对。在agent_tasks.py中集成SSH私钥解密和SSH克隆逻辑,支持git@格式的SSH URL。在projects.py中为SSH URL添加文件获取支持。新增ssh_keys.py端点提供完整的SSH密钥API管理。前端Account页面新增SSH密钥管理界面,Projects页面支持选择SSH Key认证类型。新增git_ssh_service.py提供SSH密钥生成、验证和Git SSH操作功能。
2025-12-24 16:08:56 +08:00
lintsinghua b0f17d50db docs(agent): 添加防止幻觉的验证指南和使用警告
在多个agent文件中添加详细的防止幻觉验证指南,包括:
1. 必须验证文件存在性和代码匹配性
2. 禁止猜测文件路径和行号
3. 知识库示例与实际代码的区分警告
4. 添加语言检测功能以提醒语言不匹配情况
2025-12-19 19:14:23 +08:00
lintsinghua 80704fdcb4 feat(agent): 增强文件路径验证防止幻觉报告
添加文件路径验证规则和检查逻辑,确保漏洞报告中的文件真实存在
移除LLM响应中的Markdown格式标记,统一解析处理
更新报告工具和端点以支持项目根目录验证
2025-12-19 19:08:36 +08:00
lintsinghua 4d7abae245 feat(embedding): 支持 OpenAI 兼容 API 并增强错误处理
- 更新 OpenAI 提供商描述以支持兼容 API 服务商
- 前端添加兼容 API 使用引导说明
- 后端 QwenEmbedding 添加 API 密钥验证和错误处理
2025-12-19 16:37:39 +08:00
lintsinghua 9eddef589a Merge pull request #83 from WilliamBy/v3-dev
[feat] 添加 qwen 嵌入模型提供商
2025-12-19 16:24:11 +08:00
lintsinghua 8fe96a83cf feat(agent): 使用用户配置的LLM参数替代硬编码值
重构所有Agent和LLM服务,移除硬编码的temperature和max_tokens参数
添加get_analysis_config函数统一处理分析配置
在LLM测试接口中显示用户保存的配置参数
前端调试面板默认显示LLM测试详细信息
2025-12-19 16:08:26 +08:00
w1_liamby d827ab8b03 [feat] 添加 qwen 嵌入模型提供商 2025-12-19 15:14:39 +08:00
lintsinghua 9fe15f0d0b fix(llm): 增强API错误处理以包含原始响应信息
改进所有LLM适配器的错误处理逻辑,现在会捕获并传递API原始响应信息
添加对账户余额不足等特定错误类型的识别和处理
统一各适配器的错误响应格式,包含错误代码和消息
2025-12-19 13:33:49 +08:00
lintsinghua 2e11f3e1a3 feat(llm): 增强LLM错误处理和调试信息展示
在LLMError异常类中添加api_response字段存储原始错误信息
实现_extract_api_response方法从异常中提取API响应
前端增加调试信息展示面板,显示详细的错误诊断数据
后端测试接口返回完整的调试信息,包括耗时、错误类型等
2025-12-19 11:41:06 +08:00
lintsinghua 89ebd4d797 fix(report_generator): 转义HTML特殊字符以防止XSS攻击
添加_html_escape方法并对报告中的用户输入数据进行转义处理,包括代码片段、描述、建议、标题和文件路径,以提高安全性
2025-12-19 11:19:40 +08:00
lintsinghua c0ac7d0544 feat(报告): 添加任务报告导出功能并优化样式
- 在 AuditTasks 页面添加快速扫描和 Agent 任务的报告导出功能
- 在 ReportExportDialog 中优化颜色样式以支持亮色/暗色模式
- 修复报告生成器中字段为空时的处理逻辑
2025-12-18 23:58:56 +08:00
lintsinghua 22b1610825 feat(agent): 新增通用代码执行工具和函数提取工具
添加 RunCodeTool 和 ExtractFunctionTool 用于 LLM 驱动的漏洞验证
放宽沙箱命令限制以支持更灵活的测试
更新验证代理提示词以优先使用动态代码验证
2025-12-18 15:03:30 +08:00
lintsinghua 1b495edb99 feat(agent): 扩展事件管理器的调试日志范围并增强工具调用循环检测
添加 tool_call, tool_result 和 llm_action 到重要事件调试日志
实现智能循环检测机制,当工具重复调用超过3次时进行干预
2025-12-18 01:53:05 +08:00
lintsinghua c49e46c231 fix(agent_tasks): 自动修正目标文件路径不匹配问题
当解压后的项目目录结构发生变化时,原有的目标文件路径可能无法匹配。自动检测并修正这些路径,确保任务能正确执行。对于无法修正的路径,记录警告并回退到全量扫描模式。
2025-12-17 19:55:08 +08:00
lintsinghua d62fd25fa6 feat(agent): 增强安全工具路径处理逻辑和错误提示
- 新增智能路径解析函数 _smart_resolve_target_path 处理常见路径问题
- 改进 Semgrep、Bandit 等工具的错误处理和日志输出
- 更新工具描述文档,明确路径使用规范
- 在 docker-compose 中添加 SANDBOX_IMAGE 配置
- 优化项目根目录检测逻辑,自动处理单层嵌套目录
2025-12-17 19:22:00 +08:00
lintsinghua dbf03c5ac3 refactor(沙箱工具): 将沙箱镜像配置改为从settings读取
默认镜像配置改为从settings.SANDBOX_IMAGE读取,提高配置灵活性
2025-12-17 18:07:11 +08:00