--- name: cve-vulnerability-analysis description: 分析Java和JavaScript组件的CVE漏洞,判断误报并提供升级建议。当用户提供CVE编号和受影响对象时使用,例如:CVE-2024-38816和spring-webmvc-5.3.39.jar。支持误报分析、兼容性风险评估和标准报告生成。 --- # CVE漏洞分析技能 ## 概述 本技能用于分析Java和JavaScript组件的CVE(通用漏洞披露)漏洞,提供误报判断、兼容性风险评估和升级建议。技能遵循系统化工作流程,确保分析的一致性和准确性。 ## 工作流程 执行CVE漏洞分析时,遵循以下步骤: 1. **获取CVE详情** - 从NVD(国家漏洞数据库)API获取漏洞详细信息 - 提取漏洞描述、CVSS评分、影响范围等关键信息 2. **误报分析** - 检查GitHub issues仓库中的误报报告: - https://github.com/jeremylong/DependencyCheck/issues - https://github.com/dependency-check/DependencyCheck/issues - 比较CVE描述中提到的仓库地址与受影响对象的仓库地址 - 检查受影响对象仓库中的issues、公告和声明 3. **误报判断标准** - **如果满足以下任一条件,判断为误报**: 1. GitHub issues中提到了CVE误报,且issues中的对象与提供的对象相匹配 2. CVE漏洞描述中提到的仓库地址与被疑似误报的仓库地址不是同一个 3. 被疑似误报对象的仓库中的issues、公告、声明中明确表示这不是一个误报 - **如果不满足以上条件,判断为真实漏洞** 4. **升级可行性分析** - 查找可用的安全更新版本 - 分析版本升级的兼容性风险 - 提供具体的升级建议 5. **生成标准报告** - 按照预设模板生成详细分析报告 - 包含证据链接和具体建议 ## 误报分析详细指南 ### GitHub Issues搜索 - 使用GitHub API或web搜索查找相关issues - 搜索关键词:CVE编号 + "false positive" + 受影响对象名称 - 检查issue状态:open/closed、评论内容、解决方案 ### 仓库地址比对 - 从CVE描述中提取提到的仓库URL - 获取受影响对象的实际仓库URL(从pom.xml、package.json等) - 比较两个URL是否指向同一仓库 ### 官方声明核实 - 检查受影响对象仓库的Security Advisories - 查看RELEASES.md、CHANGELOG.md等文件 - 搜索仓库中的安全公告和漏洞声明 ## 兼容性风险评估规则 评估版本升级的兼容性风险: | 版本变更类型 | 风险等级 | 说明 | |-------------|---------|------| | 大版本变更 | 高风险 | 如9.3.2变更为11.3.8,可能涉及重大API变更和架构调整 | | 中间版本变更 | 中风险 | 如5.3.39变更为5.4.0,存在值得注意的兼容性问题 | | 小版本变更 | 低风险 | 如5.3.39变更为5.3.40,通常只包含bug修复和安全更新 | ### 风险评估指导 - **高风险**:建议进行全面的测试,检查API变更、配置变更和依赖关系 - **中风险**:建议检查主要功能,关注变更日志中的破坏性变更 - **低风险**:可以直接升级,但仍建议进行基本功能测试 ## 输出格式模板 **始终使用以下标准报告格式**: ``` # CVE漏洞分析报告 ## 执行摘要 [概述:是否误报、风险等级、关键发现] ## 漏洞详情 - **CVE编号**:[CVE编号] - **漏洞描述**:[简要描述] - **CVSS评分**:[评分及严重等级] - **受影响对象**:[提供的对象名称和版本] - **影响范围**:[受影响版本范围] ## 误报分析 ### GitHub Issues检查 - [是否找到相关issues] - [issues内容摘要] - [链接] ### 仓库地址比对 - CVE描述中提到的仓库:[URL] - 受影响对象的实际仓库:[URL] - 比对结果:[是否一致] ### 官方声明核实 - [是否找到相关公告] - [公告内容摘要] - [链接] ### 误报判断 - **结论**:[是误报/不是误报] - **判断依据**:[详细说明] ## 升级建议 ### 可用安全版本 - [推荐升级到的版本] - [其他可选版本] ### 兼容性风险评估 - **当前版本**:[版本号] - **目标版本**:[版本号] - **版本变更类型**:[大/中/小版本变更] - **风险等级**:[高/中/低] - **风险评估说明**:[详细说明] ### 具体升级建议 - [具体的升级步骤] - [需要注意的事项] - [测试建议] ## 参考链接 - [相关GitHub issues链接] - [安全公告链接] - [官方文档链接] - [其他相关资源] ``` ## 资源使用 ### scripts/ 目录 包含可执行脚本,用于自动化分析任务: - `fetch_cve_details.py` - 从NVD API获取CVE详情 - `check_github_issues.py` - 搜索GitHub issues - `analyze_version_compatibility.py` - 分析版本兼容性 - `generate_report.py` - 生成标准报告 ### references/ 目录 包含详细参考文档: - `cve_analysis_workflow.md` - 完整工作流程详解 - `false_positive_criteria.md` - 误报判断标准详细说明 - `compatibility_risk_assessment.md` - 兼容性风险评估指南 ### assets/ 目录 包含报告模板和其他资源文件 ## 注意事项 1. **数据来源验证**:始终验证从外部API获取的数据的准确性 2. **版本识别**:准确识别受影响对象的版本号,避免误判 3. **风险沟通**:明确传达兼容性风险,提供缓解建议 4. **链接时效性**:提供的参考链接应确保可访问和最新 5. **安全边界**:仅分析公开信息,不尝试主动探测漏洞 ## 工具使用建议 - 使用WebFetch工具获取NVD API响应 - 使用Bash工具执行脚本和命令行操作 - 使用GitHub API时注意速率限制 - 优先使用官方文档和公告作为信息源