vulnhuntr
用大语言模型自动追踪代码调用链,零样本发现远程可利用漏洞的 AI 安全分析工具
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用大语言模型自动追踪代码调用链,零样本发现远程可利用漏洞的 AI 安全分析工具
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2024 年,一个令人不安的事实在 AI 安全圈引发震动:全球最流行的开源 AI 项目中,有大量尚未被发现的零日漏洞正在被黑客利用。这些漏洞藏得很深——它们不是简单的语法错误,而是跨越多个文件、从用户输入一路延伸到服务器输出的复杂调用链。传统静态分析工具对这些"深埋型"漏洞束手无策,因为它们需要理解整个代码库的上下文。
正是在这一背景下,Vulnhuntr 应运而生。这是 ProtectAI 团队开源的全球首个基于大语言模型的零样本漏洞发现工具,它不需要任何先验知识,只需要一个 GitHub 仓库地址和 LLM API Key,就能自动构建完整调用链并发现可远程利用的安全漏洞。
过去两年,开源 AI 应用呈现爆发式增长。从 gpt_academic(67k★)到 ComfyUI(66k★),从 Langflow(46k★)到 Ragflow(31k★),这些项目拥有数十万用户,但它们的开发优先级是功能而非安全。当这些项目被部署到生产环境时,任何一个远程可利用的漏洞都可能影响数以万计的用户。
ProtectAI 团队敏锐地捕捉到了这一空白。他们组建了 Vulnhuntr 项目,目标是:用 AI 对抗 AI 代码中的安全漏洞。项目由 Dan 和 Marcello 主导,采用 AGPL-3.0 开源协议,自上线以来已发现超过 8 个高危 0-day 漏洞,并推动相关项目完成修复。
Vulnhuntr 的工作原理可以类比为"代码侦探"。当给定一个目标仓库时,它会像经验丰富的安全研究员一样执行以下步骤:
第一步:系统提示构建。Vulnhuntr 首先读取目标仓库的 README 文件,将其内容注入 LLM 的系统提示中。这相当于给 AI 侦探一本"案件背景手册",让它对项目用途和技术栈有基本认知。
第二步:初始扫描。LLM 对整个文件进行初步分析,识别潜在漏洞点。但此时的分析是粗粒度的——LLM 只知道当前文件的内容,不知道被调用的其他函数定义在哪里。
第三步:上下文扩展。这是 Vulnhuntr 的核心创新。当 LLM 发现一个可疑的漏洞点时,它会主动请求补充信息:被调用的函数在哪个文件?第几行?变量从哪里来?Vulnhuntr 使用 Jedi(Python 静态分析引擎)精确回答这些问题,将新的代码片段补充给 LLM。
第四步:二次深度分析。有了完整的调用上下文,LLM 会进行针对性的二次分析,输出:漏洞推理过程、可用的 Proof-of-Concept 漏洞利用脚本、以及置信度评分(0-10)。
整个过程循环往复,直到调用链从"用户输入端"延伸到"服务器输出端"。最终,Vulnhuntr 输出完整的漏洞报告,包含发现的所有漏洞详情。
Vulnhuntr 已经帮助发现了多个高影响力漏洞,包括 gpt_academic 中的本地文件包含(LFI)和跨站脚本(XSS),ComfyUI 中的跨站脚本,Langflow 中的远程代码执行(RCE)和不安全的直接对象引用(IDOR),以及 FastChat 中的服务器端请求伪造(SSRF),每个都分配了对应的 CVE 编号。
此外还有 Ragflow 的远程代码执行、LLaVA 的服务器端请求伪造、gpt-researcher 的任意文件覆盖,以及 Letta 的任意文件覆盖漏洞。其中置信度评分在 7 分以上的问题被标记为需要立即处理。
Vulnhuntr 采用模块化 Python 架构,在顶层包含 __main__.py 作为 CLI 入口、LLMs.py 处理 LLM 客户端(包括 Claude、GPT 和 Ollama)、prompts.py 管理提示词模板、symbol_finder.py 封装 Jedi 静态分析引擎,以及 __init__.py 作为主逻辑模块,依赖项仅包括 Jedi、parso、pydantic 和 rich 等关键库。
系统支持 Claude Opus/Sonnet、GPT-4o 等主流模型以及 Ollama 的本地部署,可通过 pipx 或 Docker 容器化安装,在 macOS、Linux 和 Windows 环境下运行,但严格依赖 Python 3.10 版本。
不过目前只能分析 Python 代码库,覆盖的漏洞类型包括本地文件包含、任意文件覆盖、远程代码执行、跨站脚本、SQL 注入、服务器端请求伪造和不安全直接对象引用等七类,暂不支持其他编程语言。
从代码质量来看,项目结构清晰、依赖管理规范,使用 pydantic 确保数据验证,structlog 提供结构化日志,rich 增强命令行交互体验。安装过程简洁,可通过 Docker 一键部署或 pipx 快速安装,开发环境还提供 DevContainer 配置。不过作为纯 CLI 工具缺少 Web 界面,加上 LLM API 调用会产生较高的使用成本,需要持续关注 API 费用。
此外,对 Python 3.10 的严格要求限制了某些项目的兼容性。整体而言,Vulnhuntr 的出现代表了 AI 安全领域的重要进展——它首次系统化地将 LLM 的推理能力应用于代码安全的深度分析,成功挖掘了多个主流开源 AI 项目中的零日漏洞。随着 AI 应用逐步渗透核心业务场景,这类工具的战略价值日益凸显。
从技术演进看,LLM 在代码安全分析中的优势在于能理解语义和上下文,这正是传统静态分析工具的瓶颈所在。未来随着模型能力的提升和分析流程的优化,Vulnhuntr 有望扩展支持更多编程语言和漏洞类型,成为 AI 应用安全审计的标准配置。