openeuler/cve-void部署教程:从环境搭建到代码编译的终极指南
openeuler/cve-void部署教程:从环境搭建到代码编译的终极指南
【免费下载链接】cve-voidThis tool is used to fix CVEs from list. Automated repetitive work allows developers to focus on whether CVE's patches need to be merged, greatly improving the efficiency of CVE remediation.项目地址: https://gitcode.com/openeuler/cve-void
前往项目官网免费下载:https://ar.openeuler.org/ar/
openeuler/cve-void是一款面向内核维护场景的CVE自动化合入工具,能够从openEuler、Ubuntu及上游社区抓取已修复补丁并自动合入待修复内核分支,显著提升漏洞修复效率。
一、工具核心价值解析
cve-void将CVE修复流程全面自动化,核心优势包括:
- 全流程自动化:补丁检索、cherry-pick合入、提交信息规范化、编译验证和kabi校验一体化
- 智能错误处理:对失败补丁提供来源链接、提交信息和依赖分析
- 结构化数据输出:每个CVE处理结果清晰可追踪
- 批量处理能力:大幅降低维护人员漏洞修复成本
二、环境准备与依赖安装
2.1 系统要求
- 操作系统:Linux(推荐openEuler系统)
- Python版本:3.6及以上
- 内核源码:需提前准备待修复的内核代码仓库
2.2 安装Python依赖
项目依赖文件requirements.txt包含以下核心组件:
- requests:网络请求处理
- selenium:动态网页爬取
- beautifulsoup4:HTML解析
- fake-useragent:模拟浏览器请求头
执行以下命令安装依赖:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt三、详细部署步骤
3.1 获取项目代码
git clone https://gitcode.com/openeuler/cve-void cd cve-void3.2 配置内核仓库
# 克隆内核仓库(请替换为实际仓库地址) git clone <your-kernel-repo-url> cd <your-kernel-repo-dir> # 添加openEuler远程仓库 git remote add euler https://gitee.com/openeuler/kernel.git git fetch euler git worktree add ../project/OLK-6.6 OLK-6.6 # 添加Linux LTS远程仓库 git remote add linux https://mirrors.tuna.tsinghua.edu.cn/git/linux-stable.git git fetch linux git worktree add ../project/linux-6.6.y linux-6.6.y git worktree add ../project/linux-rolling-lts linux-rolling-lts3.3 配置个人信息
编辑配置文件config.json,设置个人信息、修复单号及编译命令:
{ "person_info": [ "Signed-off-by: Your Name <your.email@example.com>", "Reviewed-by: Reviewer Name <reviewer.email@example.com>" ], "CTKfeat": "your-feature-number", "make_defconfig": "make openeuler_defconfig", "check_kabi": "python3 build/check-kabi -k build/Module.kabi_$(uname -m) -s Module.symvers" }四、使用指南
4.1 准备CVE列表
创建CVE列表文件(可参考项目中的cve_list文件),每行填写一个CVE编号,例如:
CVE-2023-1234 CVE-2023-56784.2 运行自动化工具
基本使用命令:
python3 cve_void.py --cve_list cve_list \ --openeuler_dir project/OLK-5.10/ \ --linux_lts_dir project/linux-5.10.y/ \ --linux_rolling_lts_dir project/linux-rolling-lts/ \ --fix_cve_dir project/feature-batch-cve/4.3 高级选项
编译验证:添加
--compile_each_cve参数,每合入一个补丁后编译内核python3 cve_void.py --cve_list cve_list ... --compile_each_cve调试模式:添加
--debug参数获取详细日志python3 cve_void.py --cve_list cve_list ... --debug离线模式:添加
--offline参数在无网络环境运行python3 cve_void.py --cve_list cve_list ... --offline
五、后续处理
5.1 手动调整提交信息
工具会输出含有CAN_NOT_PROCESS_THIS_COMMIT的提交列表,需要手动修改这些提交信息:
git commit --amend5.2 处理合入失败的补丁
对于无法自动合入的补丁,工具会输出详细信息,包括:
- 补丁来源链接
- 相关commit ID
- 依赖分析结果
维护人员需根据这些信息进行人工合入和冲突解决。
六、常见问题解决
6.1 依赖安装失败
确保pip版本为最新:
pip install --upgrade pip6.2 编译验证失败
检查config.json中的make_defconfig和check_kabi配置是否与实际环境匹配。
6.3 补丁合入冲突
使用工具提供的冲突分析信息,手动解决冲突后重新提交。
通过以上步骤,您可以快速部署并使用openeuler/cve-void工具,实现CVE补丁的自动化合入,大幅提升内核漏洞修复效率。如有更多问题,可参考项目文档或提交issue获取社区支持。
【免费下载链接】cve-voidThis tool is used to fix CVEs from list. Automated repetitive work allows developers to focus on whether CVE's patches need to be merged, greatly improving the efficiency of CVE remediation.项目地址: https://gitcode.com/openeuler/cve-void
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
