
CVE-Factory — это мультиагентная система для полностью автоматизированного сквозного воспроизведения CVE. На основе записей о CVE система автоматически исследует детали, генерирует тест-кейсы, создаёт Docker-окружения и проверяет, что каждая уязвимость может быть как эксплуатирована, так и устранена. Конвейер преобразует метаданные CVE в воспроизводимые и тестируемые окружения с уязвимостями без ручного вмешательства.
⚠️ Предупреждение о безопасности: эта система собирает и запускает Docker-контейнеры, содержащие уязвимое программное обеспечение. Вы ОБЯЗАНЫ использовать окружение Docker-in-Docker (DinD) для изоляции CVE-контейнеров от вашей хост-системы. Никогда не запускайте CVE-Factory напрямую на демоне Docker вашего хоста.
Введите записи CVE — получите полное окружение для воспроизведения CVE. Следуя стандарту Terminal Bench, каждый созданный пакет задач включает:
Dockerfile и docker-compose.yaml с уязвимым приложениемtask.yaml со структурированными описаниями инструкций (без CVE-идентификаторов)solution.sh для устранения уязвимостиrun-tests.sh для запуска оценкиСпециально разработанная для задач безопасности, наша логика тестирования разделена на:
Никакого ручного исследования, никакого ручного кодирования — полная автоматизация от необработанных метаданных CVE до проверенного воспроизведения.
Структура создаваемых артефактов:
CVE-2025-XXXX/
├── task.yaml # Structured Task Metadata
├── Dockerfile # Vulnerable Environment Setup
├── docker-compose.yaml # Service Orchestration
├── task-deps/
├── solution.sh # Verified Patch
└── test/
├── test_func.py # Functionality Check
├── test_vuln.py # Vulnerability Exploit Check
└── run-tests.sh # One-click Evaluation Script
В ходе масштабной оценки 554 CVE за 2025 год CVE-Factory успешно воспроизвёл 499 случаев, достигнув 90,1% успеха. Кроме того, строгая экспертная проверка 471 успешного случая подтвердила, что 312 задач (66,2%) были воспроизведены полностью и точно!
При сравнении с экспертами по безопасности, использовавшими идентичную исходную информацию, наша система достигла ~95% доли прохождения проверки при создании окружений и решений — что демонстрирует возможности экспертного уровня в автоматизированном воспроизведении уязвимостей.
📂 Открытый набор данных: Мы публикуем более 1 000 CVE-окружений для задач в каталоге
cve_tasks/:
trainset/(887 задач): используется для обучения Abacus-cve. Более 4 000 дистиллированных трейсов агентов на Hugging Face 🤗 сгенерированы на основе этих задач с помощью Claude Opus 4.5 и каркаса Mini SWE-Agent.trainset-2/: дополнительные задачи относительно более простой сложности. Не включены в обучающие данные.- НОВОЕ: ещё 3 181 задача доступна в
cve_tasks_3k_compressedна Hugging Face (сжатый архив из-за ограничений размера), с 18,8 тыс. трейсов агентов для обучения Abacus-cve-v1.1.
Дообучение на трейсах CVE-Factory даёт значительные улучшения на бенчмарках в области безопасности. Qwen3-32B достигает ~6,8× улучшения на LiveCVEBench (5,29% → 35,79%), ~4,2× на PatchEval (5,66% → 23,58%) и даже показывает существенный прирост на Terminal-Bench (12,50% → 28,75%) — что демонстрирует сильное обобщение между задачами.
| Модель | LiveCVEBench | PatchEval | Terminal-Bench | Средн. |
|---|---|---|---|---|
| Qwen3-32B (базовая) | 5,29 | 5,66 | 12,50 | 7,82 |
| Abacus-cve (наша) | 35,79 | 23,58 | 28,75 | 29,37 |
| Qwen3-Coder-30B | 10,58 | 9,91 | 13,75 | 11,41 |
| Qwen3-Coder-480B | 19,58 | 19,34 | 36,25 | 25,06 |
| MiniMax-M2 | 24,87 | 19,34 | 37,50 | 27,24 |
| Claude Sonnet 4 | 20,11 | 22,64 | 33,75 | 25,50 |
| Claude Sonnet 4.5 | 34,39 | 28,77 | 45,00 | 36,05 |
| Claude Opus 4.5 | 41,27 | 32,08 | 48,75 | 40,70 |
Всего лишь с 4 тыс. трейсов Abacus-cve (32B) превосходит Qwen3-Coder-480B, MiniMax-M2 и Claude Sonnet 4, приближаясь к уровню Claude Sonnet 4.5 на задачах безопасности.
НОВОЕ: модель Abacus-cve-v1.1, обученная на 18,8 тыс. трейсов, даёт дополнительный прирост (+3,83 на LiveCVEBench, +2,38 на PatchEval). Расширенные обучающие данные см. в cve_train_v1.1.
В отличие от жёстких поисковых конвейеров или простых циклов использования инструментов, каждый агент работает как полноценная сессия Claude Code. Мы не прописываем шаги жёстко; вместо этого мы определяем каждого агента через его Роль (например, Analyzer), Цель (например, «Создать уязвимое окружение»), Ресурсы (например, доступ к определённым документам) и Метод проверки (например, «Должен пройти check_env_ready»). Агенты действуют как разработчики-люди: они автономно исследуют файлы, отлаживают ошибки, читают логи и итеративно дорабатывают решения в пределах своего выделенного рабочего пространства.