让 AI 去审国家级密码学库。这件事听起来像在赌命。
结果呢?七个真实漏洞。一个完全绕过访问控制,评级 Critical。一个 float64 精度丢失,直接威胁阈值签名安全。全部由人类确认可复现,全部已在 Cloudflare 的 CIRCL 库上游修复,大部分领到了 HackerOne 赏金。
这不是某个 DeFi 项目的草稿代码。这是 CIRCL,Cloudflare Interoperable Reusable Cryptographic Library,一个被全球网络安全基础设施广泛引用的实验性密码学集合,涵盖后量子密码、椭圆曲线、属性基加密等前沿算法,由 Cloudflare 密码学专家团队维护。
2026 年 7 月 7 日,zkSecurity 发表系列报告 AI meets Cryptography 的第一篇,完整披露了这场审计的技术细节。背后是他们在构建的 AI 审计代理 zkao。团队的目标相当直接:让 AI 持续盯着你的代码,直到没有其他 AI 工具能找到的漏洞为止。
七个漏洞,一个比一个藏得深
zkSecurity 的管线指向了 CIRCL 的两个实验分支:abekp(属性基加密)和 tss(阈值签名方案)。审计用了两种配置:纯 LLM 提示,以及 LLM 叠加专家维护的 skills 技能包。候选漏洞产生后,由人类团队逐条验证可利用性、最小化 PoC,再走标准披露流程。
最终确认七条。
Bug 1:float64 精度丢失导致阈值 RSA 秘密泄露(AI 评级 Critical,Cloudflare 评级 Low)。在 tss/rsa 的 Deal() 函数中,x^i 项用 float64 计算。Shamir 秘密共享方案要求多项式系数为 big.Int 级别的大整数,x^i 可以达到 2 的 512 次方。但 float64 只能精确表示约 2 的 53 次方以内的整数,超出的秘密份额会静默截断。攻击者可利用这个精度缺口恢复完整秘密。之所以实际评级是 Low,是因为 Cloudflare 判断该模块尚未在生产环境中部署。但对于任何将此代码用于实验性阈值签名的项目,这就是一颗定时炸弹。
Bug 2:prover 可控制的 SecParam 让 DLEQ 证明完全失效(AI 评级 High,Cloudflare 评级 Low)。在 qndleq 协议中,安全参数 SecParam 可以由 prover 自行设定。恶意 prover 将 SecParam 设为零,非交互式证明的 soundness 直接坍塌。任何人都能伪造证明。Low 评级的原因不是漏洞不存在,而是 AI 收集了问题但没有把它们串起来。AI 看到了 SecParam 可被 prover 控制,但没有追问:能控制它,那能不能用它伪造任意证明?
Bug 3:BLS 聚合签名未检查消息唯一性(AI 评级 Medium,Cloudflare 评级 High)。这是 AI 自评与厂商确认差距最大的一个。同一条消息可以被签名多次,然后聚合验证通过。攻击者可伪造合法消息的聚合签名。BLS 标准明确要求签名聚合时必须验证消息唯一性,CIRCL 直接跳过了这个检查。
Bug 4:FillBytes 符号碰撞攻破 DLEQ soundness(AI 评级 High,Cloudflare 评级 Low)。Go 标准库的 FillBytes 方法对大数的编码存在符号碰撞,同一个字节序列既对应正数版本也对应负数版本。DLEQ 协议的一致性检查因此被绕过。
Bug 5:位或开关绕过 HPKE PSK 验证(AI 评级 Medium,Cloudflare 评级 Medium,重复提交)。HPKE 的 PSK 模式实现中,一个 switch 语句使用了 |(位或)替代 ||(逻辑或),PSK 验证检查形同虚设。
Bug 6:拉格朗日系数用 int64 再次溢出(AI 评级 High,Cloudflare 评级 Medium)。在 TSS/RSA 的拉格朗日插值中,系数用 int64 而非 big.Int。对于大密码学参数,int64 会发生溢出。有趣的是,这个 bug 与 Bug 1 属于同一个阈值签名模块的同一种错误模式。同一个坑跌倒两次。这恰好暴露了人类代码审查的盲区:重构代码时,开发者会在不同位置重复同一种错误。AI 不会。
Bug 7:CP-ABE 访问控制因一行 AND-share 错误完全崩溃(AI 评级 Critical,Cloudflare 评级 Critical)。七个中唯一一个被双方同时评为 Critical 的漏洞。在 Ciphertext-Policy Attribute-Based Encryption 的实现中,一个 AND 份额计算错误,导致设置了正确属性的用户可能无法解密,而属性不足的用户反而能获得解密权限。访问控制被完全逆转。这行 bug 由 zkao 独立发现,而非人类辅助的 LLM 配置。
七次提交,七次修复,七笔赏金。
AI 打分靠不靠谱?
zkSecurity 的报告坦诚了一个不那么好看的事实:AI 对自己发现的漏洞的严重性评级很不稳定。
AI 产生的是候选发现,不是最终报告。我们的人类团队仍然验证了每个问题,检查了可利用性,并在必要时最小化了 PoC,然后处理了披露。这个人在循环中的步骤仍然非常重要,因为 AI 候选发现很廉价,而可信的报告则不然。
Bug 1 被 AI 标为 Critical,Cloudflare 只给了 Low。因为实际利用路径比 AI 想象的窄得多。Bug 3 AI 只给 Medium,Cloudflare 给了 High。因为 AI 低估了 BLS 聚合签名在跨域信任场景中的重放风险。Bug 2 更微妙:AI 看到了 SecParam 可被控制,但没继续追问能不能利用它做点坏事。
这揭示了当前 AI 安全审计的核心瓶颈:它能发现代码中的异常模式,但无法准确评估这些异常在实际系统中的可攻击性。评估严重性需要理解业务上下文、部署拓扑、攻击者模型,这些恰恰是纯静态代码分析力所不及的。zkSecurity 团队将这种差距作为 zkao 产品迭代的核心方向:让 AI 从发现可疑点进化到验证可利用性。
难啃的骨头,AI 啃动了
密码学审计是安全领域公认最难啃的骨头之一。传统静态分析工具对密码学代码的效果极差,因为漏洞往往存在于数学逻辑层面而非常见的注入或溢出模式。一个浮点数精度问题在 Web 应用里只是 bug,在阈值签名方案里就是秘密泄露。一个位运算错误在普通逻辑中只是失误,在属性加密里就是整个访问控制系统的崩溃。
CIRCL 不是新手项目。Cloudflare 于 2019 年 Crypto Week 期间开源 CIRCL,由密码学专家团队维护,核心贡献者包括密码学界知名研究人员,历经多年迭代、同行评审和代码审查。在这样的代码库中发现七个真实漏洞,其中还包括一个完全绕过访问控制的设计级缺陷,这本身就说明,密码学软件的安全审计存在人力无法覆盖的死角。
更值得注意的是,zkSecurity 的路测不是简单的把代码喂给 ChatGPT。他们的管线叠加了专家维护的 skills,相当于把安全研究员的分析直觉编码成 LLM 可执行的审计流程。没有得到 skills 增强的纯 LLM 配置,效果显著变差。这指向了一个更深层的判断:AI 安全审计的竞争壁垒,不在模型本身,而在注入模型中的领域知识。
而 Cloudflare 自己也在做同样的事。他们开源的 security-audit-skill 在 GitHub 上已获 2.3k 星标,这是一个可将编码代理变成安全审计员的六阶段管线工具包:侦察、狩猎、验证、报告、结构化输出、独立验证。Cloudflare 的工具链和自己的 CIRCL 库被 zkSecurity 的 AI 挖出漏洞,这是一种略带讽刺的验证:即使是最懂安全的人,也在用 AI 发现自己用 AI 没发现的问题。
AI 安全审计:从实验室到战场
关于 AI 做安全审计,2026 年有两个事实同时成立。
第一个事实:AI 写代码的安全性问题正在恶化。根据 Veracode 2026 年春季 GenAI 代码安全报告,AI 编码助手的语法正确率已突破 95%,但安全通过率仍然卡在 55% 左右,与两年前几乎没变。换言之,AI 生成的代码中将近一半含有已知安全漏洞。生成越高效,安全债积累越快。
第二个事实:AI 审代码的能力正在快速突破。zkSecurity 在 CIRCL 上的实验证明,AI 确实不擅长写出没有漏洞的密码学实现,但它可以相当有效地找出别人实现里的漏洞,包括人类专家反复审查后仍然遗漏的设计级缺陷。
这两个事实指向同一个逻辑:在安全领域,AI 写和审的价值正在加速背离。
AI 代码工具市场的增长印证了这个趋势。根据 Precedence Research 数据,全球 AI 代码工具市场在 2025 年约为 79 亿美元,2026 年预计达到 101 亿美元,到 2035 年将增长至 911 亿美元,年复合增长率 27.65%。安全审计是其中增长最快的细分方向之一。
结语
zkSecurity 的实验传递了一个安静但有力的信号:2026 年,AI 安全审计已经完成了从实验室概念到真实漏洞挖掘的跨越。它在全球最顶尖的密码学库之一上找到了致命缺陷,这些缺陷经过了人类专家的验证,获得了厂商的赏金确认。这个过程有瑕疵。AI 的严重性评级仍在出错,它仍然需要人类在循环中把关。但方向已经清晰得无需再论证。
密码学的审计时刻到了。这次负责敲门的不是人,是 AI。而它手里拿着的,是一张写着七个 commit ID 的名单。






快报