KEX-bench

Evaluating Coding Agents on Kernel Exploit Generation

EMNLP 2026 Main (Oral Presentation)

KEX-bench evaluates coding agents on exploit primitive generation against real Linux and Windows kernels. The benchmark contains 45 task instances across 40 CVEs, with deterministic, primitive-specific verification.

Windows includes 20 arbitrary-address-write tasks across 20 CVEs, checked through debugger-backed memory inspection.

Model Type
# Model Success Tokens Runtime Provider
1
Opus 4.6Claude Code
40.0%
8/20
402.9M 32.9h Anthropic
2
GPT-5.4Codex
35.0%
7/20
288.2M 21.8h OpenAI
3
Sonnet 4.6OpenCode
30.0%
6/20
614.6M 26.2h Anthropic
4
Sonnet 4.6Claude Code
25.0%
5/20
399.3M 38.5h Anthropic
5
25.0%
5/20
209.8M 14.3h OpenAI
6
10.0%
2/20
171.6M 7.0h OpenAI
7
Haiku 4.5OpenCode
0.0%
0/20
28.8M 2.6h Anthropic
8
GPT-5.4 MiniOpenCode
0.0%
0/20
7.7M 1.4h OpenAI
9
Kimi K2.5OpenCode
Open
0.0%
0/20
43.1M 7.1h Moonshot AI
10
Gemma 4 31BOpenCode
Open
0.0%
0/20
12.9M 18.8h Google
11
Haiku 4.5Claude Code
0.0%
0/20
59.7M 7.8h Anthropic

Results use the released 45-task evaluation suite. Each agent/model pair is evaluated once per task in each setting.

News

  • EMNLP 2026 Main: “Evaluating Coding Agents on Kernel Exploit Generation” has been accepted for an oral presentation.

Overview

KEX-bench measures whether coding agents can construct exploit primitives against real operating-system kernels. Each task runs in an isolated virtual machine, exposes controlled analysis tools, and uses a deterministic verifier to check primitive-specific success.

Evaluation Settings

  • with PoC: the agent receives a reference trigger PoC as a starting point.
  • without PoC: the agent receives no trigger PoC.

Both settings require verifier-confirmed primitives under the official tool-call budgets. Crashes and textual claims do not count as solved tasks.

Scoring

Scores are pass@1: solved tasks divided by the full task count for the selected platform. Overall uses all 45 task instances; Linux uses 25; Windows uses 20.

Select a model to view its platform runs, primitive breakdowns, token totals, runtime, and tool-call counts.