发布时间:2026/7/9 8:01:13
C++ VulKey 实现 31.5% 修复准确率,超越 GPT-5
在软件安全领域漏洞自动修复一直是一个极具挑战性的问题。近期一项名为 VulKey 的 C 实现方案在漏洞修复任务上取得了 31.5% 的准确率这一成绩甚至超越了目前最先进的通用大语言模型 GPT-5。本文将深入剖析 VulKey 的技术原理、实现细节以及它为何能在特定场景下超越通用大模型。1. 背景与挑战传统漏洞修复依赖人工分析效率低且容易遗漏。近年来基于大语言模型的修复方法虽然在某些基准上表现出色但通用模型往往缺乏对二进制层面漏洞的细粒度理解尤其在 C/C 这类内存不安全语言中堆溢出、UAFUse-After-Free、类型混淆等漏洞的修复往往需要精确的上下文编码。VulKey 正是针对这一痛点提出的一种专用修复框架它通过将漏洞签名与修复模式编码为一种可检索的“键”在修复时快速匹配并合成补丁。2. VulKey 核心设计思想2.1 漏洞签名编码VulKey 的核心是将已知漏洞的语义特征如变量类型、内存操作、条件分支转化为低维度向量编码形成“漏洞键”。这种编码不仅包含漏洞触发路径还融合了控制流和数据流信息使得相似的漏洞能够被迅速检索。2.2 修复模板库对于每一类漏洞VulKey 维护了一个预编译的修复模板库。这些模板以抽象语法树AST差分为形式表达当检索到最相似的签名后通过模板实例化生成具体补丁从而保证了修复的精确性和可靠性。2.3 纯 C 实现VulKey 完全使用 C 构建充分利用了 C17/20 的特性如std::vector、std::unordered_map、concepts等避免了 Python 等胶水语言带来的性能损耗并可以直接集成到现有的 C/C 工具链中。其核心检索和匹配部分针对大型代码库进行了优化支持毫秒级响应。3. 实验设置与数据集VulKey 在公开漏洞数据集 Big-Vul 和 CVEfixes 上进行了测试涵盖内存损坏、整数溢出、格式化字符串等常见 C/C 漏洞类型。训练集包含超过 4 万条漏洞修复对测试集独立抽取 5000 条真实世界漏洞修复前版本。基线对比方法包括GPT-5OpenAI 最新通用模型prompt 经过优化Seq2Seq基线基于 Transformer 的代码修复模型VRepair专门的漏洞修复模型评估指标采用准确率生成补丁与人工补丁完全匹配的比例和可编译率生成代码能通过编译的比例。4. 实验结果对比方法准确率完全匹配可编译率平均修复时间GPT-528.3%92.1%1.2sSeq2Seq22.6%88.5%0.4sVRepair26.7%90.3%0.8sVulKey (C)31.5%94.7%0.6s从表可见VulKey 在准确率上领先 GPT-5 约 3.2 个百分点可编译率也更高。这主要得益于其专用签名检索带来的精确模板匹配减少了通用模型常见的“幻觉”导致的语义错误。5. VulKey 架构与关键实现简析下面展示 VulKey 中漏洞签名检索与模板匹配的核心 C 接口简化版#include vector #include unordered_map #include string // 漏洞签名结构 struct VulSignature { std::vectorfloat embedding; std::string vul_type; // e.g., heap_overflow int loc_hash; }; // 修复模板 struct FixTemplate { std::string pattern; // AST 差分的序列化表示 std::string description; }; class VulKeyEngine { public: // 基于签名检索最匹配的修复模板 FixTemplate retrieve_fix(const VulSignature sig) const { auto best_match std::min_element( templates_.begin(), templates_.end(), [sig](const auto a, const auto b) { return similarity(sig, a.first) similarity(sig, b.first); }); if (best_match ! templates_.end()) { return best_match-second; } return default_fix_; } // 相似度计算余弦相似度 static float similarity(const VulSignatureamp; a, const VulSignatureamp; b) { // 简化实现实际会使用优化库 float dot 0.0f, norm_a 0.0f, norm_b 0.0f; for (size_t i 0; i lt; a.embedding.size(); i) { dot a.embedding[i] * b.embedding[i]; norm_a a.embedding[i] * a.embedding[i]; norm_b b.embedding[i] * b.embedding[i]; } return dot / (std::sqrt(norm_a) * std::sqrt(norm_b)); } void add_template(const VulSignatureamp; key, const FixTemplateamp; tmpl) { templates_.emplace(key, tmpl); } private: std::unordered_mapVulSignature, FixTemplate, VulSigHasher templates_; FixTemplate default_fix_; };实际系统中VulSignature的哈希和相似度搜索使用了局部敏感哈希LSH进行加速以应对数百万个签名的检索场景。整个引擎无外部依赖仅需 C17 标准库和少量线性代数运算非常轻量。6. 超越 GPT-5 的原因分析VulKey 能够在对口任务上超越 GPT-5主要归因于以下几点领域特化检索GPT-5 面对海量训练数据对特定漏洞模式的记忆是稀疏的而 VulKey 专门存储了大量已知漏洞签名检索命中率更高。确定性模板补丁生成不依赖概率采样而是通过模板实例化避免了生成错误逻辑的风险确保了修复的稳定性和可编译性。轻量高效完全使用 C 实现内存和计算开销小可以在 CI/CD 管道中快速集成而 GPT-5 的 API 调用则存在延迟和成本问题。上下文编码能力VulKey 的签名编码融合了细粒度的二进制级控制流信息通用模型难以在这种粒度上稳定工作。当然GPT-5 在未知漏洞类型的修复上仍具有强大的泛化能力但 VulKey 证明了在限定领域内专用方法可以显著超越通用大模型。7. 局限性与未来方向VulKey 目前主要依赖已知漏洞签名库对于全新 0day 漏洞的修复准确率仍有限。其修复模板库的质量直接影响最终效果因此需要持续从开源 CVE 修复中自动扩充。未来工作方向包括与符号执行引擎如 KLEE结合自动生成签名和补丁验证引入强化学习在编译反馈下优化模板选择将 VulKey 扩展至 Rust、Go 等内存安全语言辅助安全代码迁移。8. 总结VulKey 的 C 实现展示了在软件漏洞自动修复领域专用检索式方法可以取得超越通用大语言模型的成绩。31.5% 的修复准确率不仅是一个数字更是一种技术路线的验证将领域知识与高效工程实现结合能够在关键任务上实现“小而美”的突破。对于安全工程师而言VulKey 带来的不仅是补丁生成工具更是一种新的防御范式——将漏洞修复知识结构化、可检索、可复用从而加速响应威胁。

相关新闻

UE4SS游戏脚本工具快速实战指南:如何为游戏添加脚本功能
2026/7/9 8:01:13

UE4SS游戏脚本工具快速实战指南:如何为游戏添加脚本功能

UE4SS游戏脚本工具快速实战指南:如何为游戏添加脚本功能 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_mirrors/re/RE-UE4SS…

阅读更多
YOLOv8 与 Mask R-CNN 实例分割对比:COCO 数据集上 3 个关键指标实测
2026/7/9 7:01:13

YOLOv8 与 Mask R-CNN 实例分割对比:COCO 数据集上 3 个关键指标实测

YOLOv8 与 Mask R-CNN 实例分割对比:COCO 数据集上 3 个关键指标实测 在计算机视觉领域,实例分割技术正逐渐成为工业界和学术界的热点。面对实际项目选型时,工程师们常常需要在速度和精度之间寻找平衡点。本文将以 COCO 数据集为基准&#xf…

阅读更多
安卓短信备份恢复终极指南:SMS Backup+ 完整使用教程
2026/7/9 7:01:13

安卓短信备份恢复终极指南:SMS Backup+ 完整使用教程

安卓短信备份恢复终极指南:SMS Backup 完整使用教程 【免费下载链接】sms-backup-plus Backup Android SMS, MMS and call log to Gmail / Gcal / IMAP 项目地址: https://gitcode.com/gh_mirrors/sms/sms-backup-plus 还在为手机短信丢失而烦恼吗&#xff1…

阅读更多
如何永久保存B站缓存视频?m4s-converter开源工具3分钟搞定
2026/7/9 9:01:13

如何永久保存B站缓存视频?m4s-converter开源工具3分钟搞定

如何永久保存B站缓存视频?m4s-converter开源工具3分钟搞定 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否遇到过这样的烦恼&a…

阅读更多
主权AI与税收红利:韩国如何构建自主可控的人工智能生态
2026/7/9 9:01:13

主权AI与税收红利:韩国如何构建自主可控的人工智能生态

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 上周和一位在韩国工作的工程师朋友聊天,他提到一个细节:现在韩国科技圈讨论最多的不是某个具体模型参数&#…

阅读更多
深度学习变分推断与变分学习 —— 用简单分布近似复杂后验(九十九)
2026/7/9 9:01:13

深度学习变分推断与变分学习 —— 用简单分布近似复杂后验(九十九)

1. 定位导航 🎉 变分推断:近似难解后验的强大框架。 第 98 篇讲了 ELBO 和 EM——但 EM 的 E 步需要精确后验。当后验难算时(多数深度模型),E 步也做不了。变分推断的思路:不求精确后验,而在一个受限的简单分布族里找最接近的近似。这是 VAE(第 49 篇)的理论根基。…

阅读更多
Python 实现 SFS 算法优化:3 种停止策略与并行计算对比,速度提升 70%
2026/7/9 9:01:13

Python 实现 SFS 算法优化:3 种停止策略与并行计算对比,速度提升 70%

Python 实现 SFS 算法优化:3 种停止策略与并行计算对比,速度提升 70%在机器学习实践中,特征选择是提升模型性能的关键环节。序列前向选择法(Sequential Forward Selection, SFS)作为包裹式特征选择的经典算法&#xff…

阅读更多
试点期的价值证明:如何用一张ROI画布向CEO汇报BI+AI成果
2026/7/9 9:01:13

试点期的价值证明:如何用一张ROI画布向CEO汇报BI+AI成果

导语 试点期最大的风险,从来不是模型不够聪明,也不是仪表板不够炫,而是价值讲不进CEO的耳朵里。我见过不少企业的BIAI试点,技术侧的验收报告写得极其漂亮:查询响应从分钟级压到秒级、指标口径统一了几百个、AI助手能自…

阅读更多
如何用AI在3分钟内实现专业级OBS背景移除?终极免费方案揭秘
2026/7/9 8:01:13

如何用AI在3分钟内实现专业级OBS背景移除?终极免费方案揭秘

如何用AI在3分钟内实现专业级OBS背景移除?终极免费方案揭秘 【免费下载链接】obs-backgroundremoval An OBS plugin for removing background in portrait images (video), making it easy to replace the background when recording or streaming. 项目地址: htt…

阅读更多
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御
2026/7/8 4:53:25

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

阅读更多
3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略
2026/7/9 0:51:16

3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略

3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾为Windows右键菜单中那些…

阅读更多
GXDE OS下Wayland兼容性实战:从deepin-mutter原理到VMware Tools修复
2026/7/8 22:48:04

GXDE OS下Wayland兼容性实战:从deepin-mutter原理到VMware Tools修复

如果你正在用 GXDE OS 或者任何基于 Deepin 的发行版,并且遇到了“检测到窗口系统采用 Wayland 协议,程序即将退出”这类弹窗,或者发现 VMware Tools 在 Ubuntu 24.04 这类默认 Wayland 的系统上启动失败,那这篇文章就是为你准备的…

阅读更多
Unity WebGL部署Apache Tomcat:MIME配置、Gzip压缩与缓存优化实战
2026/7/9 0:01:12

Unity WebGL部署Apache Tomcat:MIME配置、Gzip压缩与缓存优化实战

1. 项目概述:当Unity WebGL遇上Apache Tomcat如果你是一名Unity开发者,想把精心制作的WebGL游戏或应用部署到自己的服务器上,那么Apache Tomcat大概率是你绕不开的一环。这不仅仅是把一堆构建出来的文件扔进一个文件夹那么简单。我见过太多项…

阅读更多
掌握Docker多阶段构建镜像优化技巧
2026/7/9 0:01:12

掌握Docker多阶段构建镜像优化技巧

掌握Docker多阶段构建镜像优化技巧在容器化技术日益普及的今天,Docker已成为开发与运维领域的基石工具。然而,随着应用复杂度提升,构建出的Docker镜像体积庞大、层数繁多、安全性欠佳等问题逐渐凸显,直接影响着部署效率、传输速度…

阅读更多
Ansible的AWX与作业模板调度
2026/7/9 0:01:12

Ansible的AWX与作业模板调度

在当今快速迭代的IT运维与开发领域,自动化已成为提升效率、保障一致性的核心支柱。Ansible作为一款强大的IT自动化工具,以其无代理、简单易用的特点广受欢迎。而AWX,作为Ansible上游项目提供的企业级Web界面、API及任务引擎,则将A…

阅读更多
基于Dify与DeepSeek构建私有知识库问答系统实战指南
2026/7/8 18:15:39

基于Dify与DeepSeek构建私有知识库问答系统实战指南

在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…

阅读更多
FAE放射组学分析工具:医学影像特征探索的完整解决方案
2026/7/8 10:11:21

FAE放射组学分析工具:医学影像特征探索的完整解决方案

FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE 你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…

阅读更多
DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!
2026/7/9 3:17:42

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖! 【免费下载链接】DesktopNaotu 桌面版脑图 (百度脑图离线版,思维导图) 跨平台支持 Windows/Linux/Mac OS. (A cross-platform multilingual Mind Map Tool) 项目地址:…

阅读更多