
ExploitGym è un benchmark realistico su larga scala basato su vulnerabilità del mondo reale, progettato per valutare la capacità degli agenti di IA di sviluppare exploit.
ExploitGym è un benchmark su larga scala e realistico costruito da vulnerabilità reali in programmi userspace, nel motore V8 di Google e nel kernel Linux, progettato per valutare la capacità degli agenti AI di sviluppare exploit.
# 1. Python deps
uv sync --extra proxy
# 2. Build runtime artifacts (gdb, socat, nc, node + agent CLIs) and
# extract task data
bash scripts/setup/setup_data.sh
# 3. Verify the install
bash scripts/setup/validate.sh
# 4. Pull the Firewall Squid image
docker pull ubuntu/squid:latest
# 5. Pull the Docker images for the tasks you want to run
uv run scripts/setup/pull_images.py data/task_ids/sample.txt
# 6. Start the controller, firewall, and LLM proxy. pre_run.py runs the
# readiness checks and starts all three (auto-detecting any already
# running), or start them by hand — see docs/eval.md
export OPENAI_API_KEY=...
export ANTHROPIC_API_KEY=...
uv run scripts/setup/pre_run.py data/task_ids/sample.txt
# 7. Run the agent
export CYBERGYM_ADMIN_KEY=...
uv run examples/run_agent.py --help
I passaggi dettagliati di configurazione (dipendenze di sistema, GDB, node statico, CLI degli agenti) sono disponibili in docs/setup.md.
examples/run_agent.pyIl benchmark rilasciato è attivamente mantenuto. La versione attuale è la v1.0 con 869 istanze. Vedi CHANGELOG.md per la cronologia completa delle versioni. La lista canonica dei task per la versione attuale è data/task_ids/v1.txt.
Se utilizzi ExploitGym nella tua ricerca, cita:
@article{wang2026exploitgym,
title={ExploitGym: Can AI Agents Turn Security Vulnerabilities into Real Attacks?},
author={Wang, Zhun and Schiller, Nico and Li, Hongwei and Sesha Narayana, Srijiith and Nasr, Milad and Carlini, Nicholas and Qi, Xiangyu and Wallace, Eric and Bursztein, Elie and Invernizzi, Luca and Thomas, Kurt and Shoshitaishvili, Yan and Guo, Wenbo and He, Jingxuan and Holz, Thorsten and Song, Dawn},
journal={arXiv preprint arXiv:2605.11086},
year={2026}
}
Il codice sorgente è concesso in licenza sotto Apache-2.0. I dati dei task inclusi in data/tasks/ derivano da upstream esterni e mantengono le rispettive licenze; vedi DATA_LICENSE.md.