> ## Content Index
> Fetch the complete content index at: https://taiwanding.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# ExploitGym 到底是什麼？869 個真實漏洞，AI 真的開始自動寫 Exploit 了
- URL: https://taiwanding.com/exploitgym-dao-di-shi-shi-mo-869-ge-zhen-shi-lou-dong-ai-zhen-de-kai-shi-zi-dong-xie-exploit-liao/
- Published: 2026-07-10T04:39:42.000Z
- Updated: 2026-07-15T02:50:33.000Z
- Author: Kevin Chen
- Tags: #exploitgym, AI

最近在聊 AI 模型的資安能力時，我看到一個名字：**ExploitGym**。

第一反應是：這又是哪個新的靶機平台？類似 Hack The Box、VulnHub，還是某種給 AI 玩的 CTF？

查完之後才發現，不太一樣，

ExploitGym 不是叫 AI 找出一個 SQL Injection，也不是給幾道刻意設計的 pwn 題讓模型解，它直接拿**真實軟體漏洞**，先給模型一個已經能讓程式 Crash 的 PoV，再要求模型把這個 Crash 一路發展成完整 Exploit，最後取得目標環境裡的秘密 Flag。

這個差別很重要。

以前很多 AI 資安 Benchmark 測的是：

```text
找到漏洞
→ 寫出會 Crash 的輸入
→ 任務完成

```

ExploitGym 測的是：

```text
已知漏洞會 Crash
→ 理解漏洞原理
→ 建立讀寫 Primitive
→ 繞過或處理記憶體配置
→ 完成 Exploit Chain
→ 執行任意程式碼
→ 讀取秘密 Flag

```

已經不是「會不會找 Bug」而已，是在問：

> AI 能不能把一個已知漏洞，真的變成攻擊？

## 先講結論

ExploitGym 目前有幾個重點：

- 公開 Task Set 共 **869 題**
- 題目來自真實 Userspace、Chrome V8 與 Linux Kernel 漏洞
- 每題提供原始碼、編譯方式、PoV 與隔離執行環境
- 目標是完成 Code Execution 並讀取秘密 Flag
- 人類技術上可以玩，但沒有 HTB 式的操作介面
- 官方目前沒有公布 Human Baseline 或人類排行榜

專案與論文都已公開：

> 專案：[sunblaze-ucb/exploitgym](https://github.com/sunblaze-ucb/exploitgym?ref=taiwanding.com)  
> 官方介紹：[ExploitGym](https://www.cybergym.io/exploitgym/?ref=taiwanding.com)  
> 論文：[ExploitGym: Can AI Agents Turn Security Vulnerabilities into Real Attacks?](https://arxiv.org/abs/2605.11086?ref=taiwanding.com)

## 869 題是怎麼組成的？

目前公開版分成三類：

| 類型              | 題數      |
| --------------- | ------- |
| Userspace C／C++ | 502     |
| Chrome V8       | 181     |
| Linux Kernel    | 186     |
| **合計**          | **869** |

### Userspace

這一區主要是 C／C++ 專案，來源包括 OSS-Fuzz、OSV 與 CyberGym，會碰到的東西可能包括：

- Heap Overflow
- Use-After-Free
- Out-of-Bounds Read／Write
- Integer Overflow
- Stack Corruption
- Format String
- 各種奇怪的 Parser 與 Codec 問題

部分目標甚至來自 FFmpeg、OpenSSL 這類大型真實專案。

### Chrome V8

這區直接進入瀏覽器引擎 Exploitation：

- JIT Compiler Bug
- Type Confusion
- Out-of-Bounds Access
- Fake Object
- Arbitrary Read／Write
- Pointer Leak
- Sandbox Escape

這已經不是普通 CTF pwn 題的難度。

### Linux Kernel

Kernel 題會在虛擬機裡執行，目標通常是從低權限一路做到完整 Privilege Escalation。

可能需要處理：

- Kernel Heap
- Race Condition
- UAF
- `modprobe_path`
- Kernel ROP
- SMEP／SMAP
- KASLR
- 不同的 Kernel Hardening

把這三類放在一起，就能理解為什麼「有沒有人類全通」這個問題有點恐怖，這三塊原本就是三個可以各自研究很多年的領域。

## 為什麼有些地方寫 898 題？

ExploitGym 論文使用的早期資料快照是 **898 題**，但正式公開時變成了 **869 題**。

原因是研究團隊後來重新檢查題目，移除了 29 個被判定為：

- 在指定環境下無法可靠利用
- PoV 或環境存在問題
- 不適合納入正式公開 Benchmark

所以這兩個數字都不是亂寫：

```text
論文早期快照：898
正式公開 Task Set：869

```

正式題目清單放在：

```text
data/task_ids/v1.txt

```

專案另外提供一個只有 20 題的：

```text
data/task_ids/sample.txt

```

想自己架來研究，不需要一開始就把 869 個 Target Image 全部拉下來。

## 人類可以玩嗎？

**可以，但它不是為一般玩家設計的。**

ExploitGym 是開源的，Target Image、Controller、Agent Container 與評分工具都可以自行執行。

人類當然也可以啟動目標後，自己使用：

- GDB
- pwndbg
- Python
- pwntools
- `nc`
- QEMU
- 自己寫的 Fuzzer 或 Exploit Script

去手動處理題目。

基本安裝流程大致是：

```bash
git clone https://github.com/sunblaze-ucb/exploitgym
cd exploitgym

uv sync --extra proxy
bash scripts/setup/setup_data.sh
bash scripts/setup/validate.sh

```

接著先拉 Sample 題目：

```bash
uv run scripts/setup/pull_images.py data/task_ids/sample.txt
uv run scripts/setup/pre_run.py data/task_ids/sample.txt

```

但它沒有：

- 玩家導向的網頁介面
- 難度標籤與題目分類頁面
- Hint 系統
- Writeup 解鎖
- Human Mode
- 人類積分榜

所以它比較像：

> 一座開放給人類進去研究的 AI Exploit 實驗室。

而不是另一個 HTB。

## 最有趣的不是成功率，而是 AI 會打歪

ExploitGym 有一個我覺得很漂亮的設計：

> 拿到 Flag 還不一定算真的解掉。

系統除了檢查 Agent 有沒有取得 Flag，還會由 Judge 確認它是否真的利用了題目指定的漏洞，結果發現，AI 很常自己跑去找別的洞。

官方列出的其中一組結果是：

| 模型                    | 成功取得 Flag | 使用指定漏洞 |
| --------------------- | --------- | ------ |
| GPT-5.5               | 210       | 120    |
| Claude Mythos Preview | 226       | 157    |

換句話說，GPT-5.5 有 90 題雖然拿到 Flag，卻不是靠原本提供的漏洞。

有些 Agent 會：

- 發現旁邊另一條驗證比較弱的 Code Path
- 覺得原漏洞不好利用，直接重新審計原始碼
- 對目標進行動態 Fuzzing
- 找到題目作者原本沒指定的攻擊面

站在 Benchmark 的角度，這叫沒有完成指定任務。

但站在真實 Red Team 或漏洞研究的角度，這其實更鬼。

它不是只會照著題目解，而是發現：

> 你叫我打這個洞，但旁邊那個比較好打，我先從那裡進去。

## ExploitGym 適合什麼人？

它不適合拿來當第一套 pwn 靶場，建議熟悉下列概念：

- Stack／Heap
- ELF
- GDB
- ROP
- ASLR
- Canary
- Use-After-Free
- Arbitrary Read／Write

如果直接跳進 ExploitGym，大概只會看到一堆大型原始碼和 Crash Log，然後開始懷疑人生。

我覺得比較合理的路線是：

```text
pwn.college
→ 一般 CTF pwn 題
→ 真實 CVE 重現
→ ExploitGym sample.txt
→ 挑單一 Userspace 題研究
→ V8／Kernel

```

不需要有「我要全通 869 題」這種想法。

光是挑一題，完整比較：

- 自己手動分析
- 讓不同 Agent 跑
- 比較兩邊的 Exploit Chain
- 打開與關閉 Mitigation
- 檢查 Agent 是否走預期漏洞

就已經是一個很有意思的研究題目。

## 最後

ExploitGym 最值得注意的地方，不是某個模型到底拿了幾分。

而是 AI 資安能力的評測，已經從：

```text
你能不能看出這裡有漏洞？

```

一路走到：

```text
這裡有一個真實漏洞和 Crash，
你能不能自己把它變成完整 Exploit？

```

現在還不能因為排行榜，就直接宣布 AI 超越所有人類 Exploit Researcher。

但有一件事已經很明顯：

> 自動化 Exploit Development 不再只是「以後可能會發生」的想像。

它已經可以被大量測試、重現、比較，甚至開始出現「模型沒照題目打，自己找到另一條洞」這種結果。

這才是 ExploitGym 真正讓人背脊發涼的地方。

## 參考資料

- [ExploitGym 官方介紹](https://www.cybergym.io/exploitgym/?ref=taiwanding.com)
- [ExploitGym GitHub](https://github.com/sunblaze-ucb/exploitgym?ref=taiwanding.com)
- [ExploitGym Changelog](https://github.com/sunblaze-ucb/exploitgym/blob/main/CHANGELOG.md?ref=taiwanding.com)
- [ExploitGym Sample Task List](https://github.com/sunblaze-ucb/exploitgym/blob/main/data/task%5Fids/sample.txt?ref=taiwanding.com)
- [ExploitGym 論文](https://arxiv.org/abs/2605.11086?ref=taiwanding.com)
- [pwn.college](https://pwn.college/?ref=taiwanding.com)