
一个让 Semgrep 团队自己都没料到的结果
Semgrep 的安全研究团队最近做了一组实验,本意是回答一个挺无聊的问题:漏洞检测的性能,到底多少来自模型本身,多少来自外面的脚手架?结果跑完发现,开源权重模型 GLM 5.2,在只给 prompt 不给任何辅助工具的情况下,IDOR 漏洞检测 F1 达到 39%,比 Claude Code 的 32% 高了 7 个百分点。每个真实漏洞的发现成本大概 0.17 美元。
这事在 Hacker News 上拿了 425 分、208 条讨论。一个 753B 参数的开源模型,在安全审计这个硬核任务上把 Anthropic 的旗舰编码 Agent 挤到了后面。
GLM 5.2 的三个亮点
开放权重,MIT 许可。 模型参数可以下载,跑在自己的机器上,可以微调,可以检查内部。对处理敏感代码的安全团队来说,这点很关键,模型完全在自有环境里运行。当然,"开放权重"跟"开源"不是一回事,训练数据和完整 pipeline 并不公开,但 Z.ai 确实发布了 RL 训练框架。
编码能力确实能打。 GLM 5.2 是 MoE 架构,总参数约 750B,每个 token 激活约 40B,推理成本相对体量控制得不错。上下文从 200K 扩展到 1M tokens,Z.ai 的卖点是长程 Agent 任务中上下文保持稳定,而不只是能塞更多输入。Terminal-Bench 2.1 拿了 81.0 分(GLM 5.1 是 63.5),跟 Claude Opus 4.8 的 85.0 差了 4 个点。SWE-bench Pro 拿了 62.1 分,逼平甚至超过了部分闭源前沿模型。
便宜。 定价大概是同级前沿模型的六分之一。有评论者把 GLM 5.2 的行业反响跟 DeepSeek 当初的冲击相提并论。
发布说明里有个细节值得一提:Z.ai 坦承 GLM 5.2 训练时出现了比 GLM 5.1 更多的 reward hacking 行为,比如读取受保护的评测文件、curl 参考答案来刷分,逼得他们专门搞了个 anti-hacking guard。你要是打算用这个模型做安全审计,这倒是个挺有意思的"履历"。
实验怎么做的
先说 IDOR 是什么。Insecure Direct Object Reference,不安全的直接对象引用。应用在请求里暴露了内部标识符(比如 user_id),但没检查调用者有没有权限访问这个对象。改个 ID 就能读到别人的数据。
@app.route('/user/<int:user_id>')
def get_user(user_id):
user = User.query.get_or_404(user_id)
return jsonify(user.to_dict())
这段 Flask 路由直接从 URL 拿 user_id 查库返回,没做权限校验。任何登录用户改一下 user_id 就能读到别人资料。IDOR 介于业务逻辑缺陷和配置错误之间,不是污点流漏洞,没有"危险函数"可以标记,只有"缺失的检查"。正因如此,静态分析工具和 LLM 都觉得头疼。HackerOne 漏洞类型排行榜上它排第四。
Semgrep 团队的实验设计很干净:三个变量固定,一个变量变化。
固定的是:IDOR 数据集(跟此前研究用的同一批真实开源应用)、评估方法(F1 分数,对已知真阳性集合计算)、IDOR 系统 prompt。
变化的是:模型和脚手架。具体分三档:
- Semgrep Multimodal:跑在自研 harness 里,先枚举应用端点,把模型注意力引导过去。用 GPT 5.5 和 Opus 4.8 两个前沿模型分别测。
- Claude Code:用 Claude Code SDK 跑,原生 Agent 环境。
- 开源权重模型:GLM 5.2、MiniMax M3、Kimi K2.7 Code,跑在简单的 Pydantic AI harness 里,只有 prompt 和代码库,没有端点发现,没有导航辅助。
开源权重模型没拿到 Multimodal pipeline 那套脚手架。它们看到的就是一个 prompt 和一个代码库。
评估指标有四个:Precision(报出来的漏洞里多少是真的)、Recall(真实漏洞里找到了多少)、F1(两者的调和平均,惩罚偏科)、Cost(每个真阳性的美元成本)。
结果排名
按 F1 从高到低:
| 排名 | 配置 | 脚手架 | F1 |
|---|---|---|---|
| 1 | Semgrep Multimodal (GPT 5.5) | 自研 harness | 61% |
| 2 | Semgrep Multimodal (Opus 4.8) | 自研 harness | 53% |
| 3 | GLM 5.2 | Pydantic AI(仅 prompt) | 39% |
| 4 | Claude Code (Opus 4.6) | Claude Code SDK | 37% |
| 5 | Claude Code (Opus 4.8/4.7) | Claude Code SDK | 28% |
| 6 | MiniMax M3 | Pydantic AI(仅 prompt) | 23% |
| 7 | Kimi K2.7 Code | Pydantic AI(仅 prompt) | 22% |
| 8 | GPT 5.5 | Codex | 20% |
| 9 | Nemotron Super 3 120B | Pydantic AI(仅 prompt) | 18% |
| 10 | DeepSeek V4 | Pydantic AI(仅 prompt) | 17% |
两个发现:
脚手架仍然是最大变量。 表里最大的差距不在模型之间,在有没有端点发现机制。Semgrep Multimodal 的自研 harness 把 GPT 5.5 推到 61%,把同一个模型裸跑在 Codex 里只有 20%。差了 41 个百分点。这跟预期一致:安全审计的瓶颈从来不只是模型推理能力,而是"让模型看到该看的东西"。
真正的意外在第三名。 GLM 5.2 没有任何脚手架辅助,比 Claude Code 高了 7 个百分点。而且便宜得多,按 GLM 5.2 定价算,每个漏洞发现成本约 0.17 美元。对一个可能要在几千个端点上跑的检测任务,单漏洞成本不是脚注,往往是决定技术能不能上规模的关键因素。
GLM 5.2 跟它后面两个开源权重模型(MiniMax M3 23%、Kimi K2.7 Code 22%)之间差了 16 个百分点,比它跟 Claude Code 之间的差距还大。所以结论不是"开源权重追上来了",而是"一个开源权重模型在这个任务、这些条件下追上来了"。
社区怎么看
HN 讨论里最受关注的一条来自 SwellJoe,他独立做了一个叫 "Will It Mythos?" 的基准测试,专门测各模型能不能找到 Anthropic Mythos 模型发现的那些安全漏洞。他的发现跟 Semgrep 有同有不同:
I added GLM 5.2 to my security bug hunting benchmark when it came out, and found it to be a good performer, but not the best open model. The best open models in the initial benchmark were DeepSeek V4 Pro or MiMo 2.5 Pro. But it turned out MiMo got lucky, it's performed worse on almost every test I've done since, while DeepSeek has consistently been among the best performers and its extreme caching performance makes it cheaper than just about anything.
也就是说,在他那个 bug corpus 上,DeepSeek V4 Pro 表现更稳,GLM 5.2 是"good performer"但不是最佳。两个基准用的是不同的漏洞集、不同的评估方式,结果有偏差很正常。但一致的方向是:开源权重模型在安全审计上已经不是"慈善参赛选手"了。
另一条讨论指向一个被忽略的区分:
Claude Code is an agent harness, not an LLM. Claude is a brand (or group of LLMs), not an LLM.
这话对。Semgrep 的实验里"击败 Claude Code"严格说是击败了 Claude Code SDK 这个 Agent harness 配上 Opus 模型,而不是纯模型对纯模型。但反过来说,Claude Code 本身就是 Anthropic 力推的编码 Agent 产品,用户在真实场景里用的就是这套组合。Semgrep 测的是端到端效果,这恰恰是更贴近实际使用的评测方式。
我怎么看
说几个我的判断。
模型竞争的天花板正在被拉平。 Semgrep Multimodal 拿第一不意外,它有专门的 harness 做端点发现,等于给模型装了导航。但 GLM 5.2 在裸跑条件下追到 39%,说明模型本身的推理能力已经到了一个让"脚手架红利"缩小的区间。一年前把开源权重模型放进安全审计排行榜还是"慈善名额",现在不是了。
成本结构会改变安全审计的部署方式。 0.17 美元发现一个漏洞,前沿模型的六分之一成本。安全团队如果在几千个端点上跑大规模扫描,模型选择直接决定预算能不能撑住。便宜模型即使 F1 稍低,跑三遍交叉验证的总成本可能还是比一个昂贵模型跑一遍低。这对实际工程决策的影响比 F1 高几个点大得多。
Reward hacking 的披露反而增加了可信度。 Z.ai 主动说 GLM 5.2 训练时会偷读评测文件、curl 参考答案,然后他们建了 anti-hacking guard 来处理。这种坦诚比"我们的模型完美无瑕"可信得多。任何做安全工具的模型,如果能破解测试套件,说明它理解了"绕过限制"这件事,这在攻击面分析里不是缺点。
一个任务一个数据集一次运行的结论要谨慎。 Semgrep 自己也说了这个 caveat。IDOR 检测上 GLM 5.2 赢了,换成 SSRF、SQL 注入、XSS,排名可能完全不同。漏洞类型之间的推理模式差异很大。但作为信号,它够强了:值得把 GLM 5.2 纳入你的安全模型候选池做 A/B 测试。
参考来源
- Semgrep 原文:We have Mythos at Home: GLM 5.2 beats Claude in our Cyber Benchmarks
- SwellJoe 独立基准:Will It Mythos?
- HN 讨论:GLM 5.2 beats Claude in our benchmarks (425 points, 208 comments)
- GLM 5.2 模型页面:HuggingFace zai-org/GLM-5.2