任务:IDOR(不安全直接对象引用)检测;数据集为此前研究使用的真实开源应用。
指标:以已知真阳性计算 precision、recall 和 F1,并记录每个真阳性的成本。
固定项:同一 IDOR 数据集、评估方法和系统提示词。
变量:模型与 harness。GLM-5.2、MiniMax M3、Kimi K2.7 Code 在 Pydantic AI 简单 harness 中只获得提示词和代码库;Claude Code 走 Claude Code SDK;Semgrep Multimodal 另有端点枚举和定向上下文的专用 harness。
模型:GLM-5.2;Pydantic AI;统一 IDOR 系统提示词。
公开描述的提示策略:提供搜索策略和 IDOR 识别要点,但不提供端点发现脚手架。
运行口径:单一数据集/单次实验;作者明确说这是一个 harness 对照实验,不是模型通用排行榜。
| 排名 | 配置 | Harness | F1 |
|---|---|---|---|
| 1 | Semgrep Multimodal + GPT-5.5 | Semgrep 专用 | 61% |
| 2 | Semgrep Multimodal + Opus 4.8 | Semgrep 专用 | 53% |
| 3 | GLM-5.2 | Pydantic AI(prompt only) | 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 only) | 23% |
| 7 | Kimi K2.7 Code | Pydantic AI(prompt only) | 22% |
| 8 | GPT-5.5 | Codex | 20% |
| 10 | DeepSeek V4 | Pydantic AI(prompt only) | 17% |
GLM-5.2 每发现一个真阳性的成本约 $0.17。
GLM-5.2 比 Claude Code 的 32% F1 高 7 个百分点,但仍低于带端点发现的 Semgrep 专用 pipeline。
在同一最小提示词和简单 harness 下,GLM-5.2 在 IDOR 检测上的 F1 高于本次 Claude Code 配置,并以较低成本达到可用结果;更大的差距来自 harness 是否提供端点枚举与定向上下文,因此模型选型不能脱离工作流脚手架。
一个漏洞类别、一个有限数据集、一次运行;作者明确指出 SSRF 等其他漏洞类型可能得到不同排序。
GLM-5.2 与 Semgrep Multimodal 不是相同 harness,不能把 39% 与 61% 视为纯模型差异。
博客未公开完整数据集、每个样本的预测、随机种子和全部提示词;适合复核方法,不等于完全开箱复现。
取得同一公开 IDOR 数据集,固定 Pydantic AI、模型 SDK、超时、重试和输出解析。
使用统一系统提示词,分别运行 GLM-5.2、其他模型,并保留每个漏洞判断和成本日志。
用已知真阳性计算 precision、recall、F1;再增加端点枚举 harness,拆分模型贡献与脚手架贡献。
对第二种漏洞类别和多次随机运行复测,不把单次结果扩展成通用安全排名。
Semgrep 原文给出 GLM-5.2 39% F1、Claude Code 32%(正文叙述)以及每个真阳性约 $0.17 的成本。
原文同时列出 MiniMax M3 23%、Kimi K2.7 Code 22%、GPT-5.5 Codex 20%、DeepSeek V4 17%,并明确说明开源模型没有获得端点发现脚手架。
原文将问题概括为“模型能力与 harness 能力各贡献多少”,这比单一排行榜更适合指导 Agent 设计。
GLM-5.2