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.

Overall aggregates 25 Linux and 20 Windows task instances. Split bars show each platform’s contribution to the overall success rate.

Model Type
# Model Success Linux Windows Provider
1
Opus 4.6Claude Code
68.9%
31/45
LinuxWindows
23/25 8/20 Anthropic
2
Sonnet 4.6Claude Code
53.3%
24/45
LinuxWindows
19/25 5/20 Anthropic
3
GPT-5.4Codex
42.2%
19/45
LinuxWindows
12/25 7/20 OpenAI
4
Sonnet 4.6OpenCode
35.6%
16/45
LinuxWindows
10/25 6/20 Anthropic
5
24.4%
11/45
LinuxWindows
6/25 5/20 OpenAI
6
11.1%
5/45
LinuxWindows
3/25 2/20 OpenAI
7
Haiku 4.5OpenCode
4.4%
2/45
LinuxWindows
2/25 0/20 Anthropic
8
GPT-5.4 MiniOpenCode
4.4%
2/45
LinuxWindows
2/25 0/20 OpenAI
9
Kimi K2.5OpenCode
Open
4.4%
2/45
LinuxWindows
2/25 0/20 Moonshot AI
10
Gemma 4 31BOpenCode
Open
2.2%
1/45
LinuxWindows
1/25 0/20 Google
11
Haiku 4.5Claude Code
0.0%
0/45
LinuxWindows
0/25 0/20 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.