🏭 An open-source recipe for turning real-world vulnerability artifacts into executable tasks, verifiable agent trajectories, and an internalized cybersecurity workflow.\n\n🔗 **[Hugging Face Collection](https://huggingface.co/collections/Multilingual-Multimodal-NLP/cyberfactory)** · 💻 **[GitHub](https://github.com/CSJianYang/CyberFactory)**\n\n## 🔍 What is CyberFactory?\n\nCybersecurity agents need more than static vulnerability descriptions or final answers. They must inspect source code, use tools, interact with real environments, interpret execution feedback, and refine their decisions over long horizons.\n\n**CyberFactory** is a unified, open-source framework that connects:\n\n- 🧱 **Instance construction** from public vulnerability artifacts, including CVEs from the wild;\n- 🤖 **Agentic trajectory synthesis** through tool and environment interaction;\n- 🧠 **Model training** across proof-of-concept generation, vulnerability patching, and cybersecurity question answering;\n- ✅ **Executable verification** so that supervision is grounded in observable program behavior.\n\nUsing the resulting trajectories, we train **OpenAegis**, a 397B-A17B cybersecurity model initialized from Qwen3.5-397B-A17B.\n\n| Stage | What CyberFactory provides | Output |\n| :-- | :-- | :-- |\n| 🧱 Instance construction | Reconstructs executable tasks from public vulnerability artifacts | PoC, patching, and CyberQA instances |\n| 🧭 Skill-guided synthesis | Guides a teacher through source inspection, domain-guided analysis, and evidence-based validation | Tool-interactive agent trajectories |\n| ✅ Verification | Retains outputs that satisfy task-specific executable criteria | Grounded supervision |\n| 🧠 Model training | Fine-tunes Qwen3.5-397B-A17B on the verified trajectories | **OpenAegis** |\n\n## ✨ Why does this matter?\n\nExisting open-source efforts leave several gaps:\n\n- 🔒 Frontier open-weight models often lack reproducible cybersecurity training recipes.\n- 🧩 Existing training methods usually address isolated tasks instead of a unified capability.\n- 📝 Available supervision rarely captures complete, tool-interactive agent behavior.\n- 📈 Simple rollouts are difficult to scale without a strong domain prior.\n\nCyberFactory addresses these gaps with an end-to-end recipe for creating executable tasks, synthesizing verifiable agent trajectories, and transferring the resulting workflow into model parameters.\n\n## 🏗️ From vulnerability artifacts to agentic data\n\nCyberFactory builds proof-of-concept tasks from **ARVO**, **OSS-Fuzz**, and **CVEs from the wild**. For each instance, it reconstructs the vulnerable and patched program states, creates a task description, and removes privileged verification signals before trajectory synthesis and training.\n\nA candidate proof of concept succeeds only when it:\n\n1. 💥 triggers the target vulnerability in the pre-patch build; and\n2. 🩹 does **not** trigger it in the post-patch build.\n\nThis differential oracle turns vulnerability reproduction into a machine-checkable **propose → verify → refine** loop.\n\nCyberFactory also constructs:\n\n- 🔧 **Patch-generation data** grounded in vulnerability-fix records;\n- 📚 **CyberQA data** through an answer-first pipeline grounded in execution results, code structure, and authoritative reports.\n\n| Data source / task | Construction procedure | Verification or grounding |\n| :-- | :-- | :-- |\n| 🧪 ARVO | Uses available vulnerable and patched environments | Ground-truth PoC and differential execution |\n| 🐞 OSS-Fuzz | Locates the corresponding fix and reconstructs the program states | Crash evidence used only during instance verification |\n| 🌍 CVEs from the wild | Locates fix commits from affected-version ranges and constructs pre-/post-patch environments | Vulnerability metadata used for verification, then removed before training |\n| 🔧 Patch generation | Builds instances from vulnerability-fix records | Grounded in source-level fixes |\n| 📚 CyberQA | Generates questions from trusted answers | Execution-, code-structure-, or report-grounded facts |\n\n## 🧭 Skill-guided trajectory synthesis\n\nWe provide the teacher model with a reusable vulnerability-analysis skill during data synthesis. The skill encodes a task-independent workflow for:\n\n- 🔎 inspecting the target and its build constraints;\n- 🧪 applying domain-guided analysis and testing;\n- 📋 validating evidence;\n- 🔁 revising the approach when validation fails.\n\nThe skill does not reveal an instance-specific solution. The teacher still has to solve each vulnerability through interaction with the environment, and only trajectories satisfying task-specific verification criteria are retained.\n\nMost importantly, **OpenAegis does not receive the skill at inference time**. Supervised fine-tuning transfers the workflow from skill-guided trajectories into the model parameters.\n\n## 📊 Main results\n\nUnder the same scaffold and a one-hour CyberGym budget:\n\n| Model | Parameters | Pass@1 |\n| :-- | :--: | --: |\n| Qwen3.5 | 397B-A17B | 29.6% |\n| Kimi K2.7 | 1T-A32B | 51.7% |\n| GLM 5.2 | 744B-A40B | 43.3% |\n| **OpenAegis** | **397B-A17B** | **58.1%** |\n\n🎯 **OpenAegis improves over its Qwen3.5 base model by 28.5 points.** It also exceeds GLM 5.2 by 14.8 points and Kimi K2.7 by 6.4 points while using fewer total and active parameters than either model.\n\n## 🧠 From skill elicitation to skill internalization\n\nWe examine the skill at two stages:\n\n### ⚡ Explicit skill elicitation\n\nAdding the vulnerability-analysis skill to GLM 5.2 increases Pass@1 from **43.3%** to **46.5%**, even though each attempt is shortened from 60 to 15 minutes. Because the settings are not compute-matched, this result indicates higher trajectory-synthesis throughput rather than an equal-compute comparison.\n\n| GLM 5.2 configuration | Minutes per attempt | Repetitions | Pass@1 |\n| :-- | --: | --: | --: |\n| Without analysis skill | 60 | 1 | 43.3% |\n| **With analysis skill** | **15** | **5** | **46.5%** |\n\n| Behavioral metric | GLM 5.2 | GLM 5.2 + Skill |\n| :-- | --: | --: |\n| Exploration coverage | 3.78% | **99.85%** |\n| Exploration calls per trajectory | 0.05 | **2.06** |\n| Validation coverage | 0.13% | **98.41%** |\n| Validation calls per trajectory | 0.001 | **2.17** |\n| Operations per shell call | 5.27 | 4.67 |\n\n\n### 🌱 Training-time internalization\n\nThe same directional behavior appears after fine-tuning:\n\n- Domain-guided exploration becomes the dominant strategy in **85.2%** of OpenAegis trajectories, compared with **0.6%** for Qwen3.5.\n- Exploration calls increase from **0.01** to **1.32** per trajectory.\n- Validation calls increase from approximately **0** to **1.05** per trajectory.\n- OpenAegis uses stronger instrumentation, more consolidated environment interaction, and more selective submission behavior.\n\nThese results connect the complete training story:\n\n> 🧭 **Skill guides the teacher** → 🧾 **verified trajectories capture the workflow** → 🧠 **fine-tuning internalizes it** → 🚀 **OpenAegis applies it without the skill prompt**\n\n### 🧭 Dominant strategy distribution\n\nThe first model pair measures **explicit skill elicitation**; the second measures **training-time internalization**. Values are percentages of trajectories under mutually exclusive labels.\n\n| Strategy | GLM 5.2 | GLM 5.2 + Skill | Qwen3.5 | OpenAegis |\n| :-- | --: | --: | --: | --: |\n| Domain-prior-guided exploration | 2.6% | **99.7%** | 0.6% | **85.2%** |\n| Direct LibFuzzer setup | 32.1% | 0.0% | 60.8% | 5.6% |\n| Manual input construction | 16.9% | 0.0% | 27.7% | 4.8% |\n| Direct AFL-Fuzz setup | 3.5% | 0.0% | 0.9% | 0.5% |\n| No fuzzing | 44.8% | 0.1% | 8.3% | 3.4% |\n\nℹ️ When the displayed percentages do not sum to 100%, the remainder corresponds to unspecified strategies; the values above retain the percentages reported in the paper.\n\n\n⚠️ The near-total shift of GLM 5.2 + Skill also shows that inference-time skill injection can make the teacher over-dependent on the provided domain prior. OpenAegis retains a more varied strategy distribution while showing the same overall direction of change.\n\n### 🧰 Domain-guided operations\n\n| Metric (calls per trajectory) | GLM 5.2 | GLM 5.2 + Skill | Qwen3.5 | OpenAegis |\n| :-- | --: | --: | --: | --: |\n| Exploration | 0.05 | **2.06** | 0.01 | **1.32** |\n| Validation | 0.001 | **2.17** | 0.00 | **1.05** |\n\n### ⚙️ Tool use and command complexity\n\n| Metric | Qwen3.5 | OpenAegis |\n| :-- | --: | --: |\n| Shell calls | 70.1% | **89.9%** |\n| Read calls | 28.4% | **7.3%** |\n| Operations per shell call | 2.7 | **5.5** |\n| Single-operation calls | 31.4% | **13.5%** |\n| Calls with 6–10 operations | 4.3% | **30.8%** |\n| Calls with more than 10 operations | 1.5% | **9.0%** |\n\n### 🔬 Instrumentation and submission discipline\n\n| Metric | Qwen3.5 | OpenAegis |\n| :-- | --: | --: |\n| ASAN compilation events | 155 | **1,795** |\n| ASAN-output checks | 1,281 | **2,099** |\n| Exactly one submission | 37.9% | **48.2%** |\n| At least five submissions | 10.4% | **2.0%** |\n\n## 🗜️ Long-horizon context management\n\nCyberGym trajectories can approach a 256K-token context limit. At 90% context usage, CyberFactory compresses the trajectory into a continuation state that preserves verified evidence, failed attempts, open hypotheses, generated artifacts, build status, and pending actions.\n\n| Context strategy | Overall Pass@1 | Long-horizon Pass@1 | Context exhaustion |\n| :-- | --: | --: | --: |\n| Full history | 52.1% | 40.2% | 18.7% |\n| Simple truncation | 45.6% | 36.8% | 24.5% |\n| **Compact at 90%** | **58.1%** | **48.7%** | **7.0%** |\n\n**Compaction-trigger ablation**\n\n| Trigger threshold | Overall Pass@1 | Long-horizon Pass@1 | Context exhaustion |\n| :-- | --: | --: | --: |\n| Compact at 80% | 54.5% | 45.5% | 10.4% |\n| **Compact at 90%** | **58.1%** | **48.7%** | **7.0%** |\n| Compact at 95% | 56.8% | 47.1% | 8.2% |\n\n\nThe 90% compaction strategy delivers the strongest overall and long-horizon results while substantially reducing context-exhaustion failures.\n\n## 📦 Resources\n\n- 🤗 **Models, data, and artifacts:** [CyberFactory on Hugging Face](https://huggingface.co/collections/Multilingual-Multimodal-NLP/cyberfactory)\n- 💻 **Code and reproducible pipeline:** [CSJianYang/CyberFactory](https://github.com/CSJianYang/CyberFactory)\n- 🛡️ **Model:** OpenAegis\n- 🧰 **Tasks:** PoC generation, vulnerability patching, and CyberQA\n\n## ⚠️ Responsible use\n\nCyberFactory and OpenAegis are developed to support defensive cybersecurity research, reproducible evaluation, vulnerability inspection, and controlled study of security-oriented agents. Users should follow applicable laws, obtain authorization before testing systems, and avoid deployment against systems they do not own or have permission to assess.\n\n## 👥 Authors\n\nJian Yang, Haau-Sing Li, Shawn Guo, Zixi Zhao, Yibo Tan, Jiajun Wu, Aishan Liu, Zhoujun Li, Xianglong Liu, Tianyu Zheng, Bryan Dai, and Chengran Yang\n\n🏫 Beihang University · ELLIS · IQuest Research · Singapore Management University\n\n## 💬 In one sentence\n\n**CyberFactory makes cybersecurity training reproducible by turning real-world vulnerabilities into verifiable agentic supervision—and OpenAegis shows that a domain skill can be internalized from trajectories into model behavior.** 🛡️🤖","html":"<h1 class=\"relative group flex items-baseline\">\n\t<a id=\"🛡️-cyberfactory-scaling-cyber-security-capabilities-with-instances-from-the-wild\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#🛡️-cyberfactory-scaling-cyber-security-capabilities-with-instances-from-the-wild\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t🛡️ CyberFactory: Scaling Cyber Security Capabilities with Instances from the Wild\n\t</span>\n</h1>\n<blockquote>\n<p>🏭 An open-source recipe for turning real-world vulnerability artifacts into executable tasks, verifiable agent trajectories, and an internalized cybersecurity workflow.</p>\n</blockquote>\n<p>🔗 <strong><a href=\"https://huggingface.co/collections/Multilingual-Multimodal-NLP/cyberfactory\">Hugging Face Collection</a></strong> · 💻 <strong><a href=\"https://github.com/CSJianYang/CyberFactory\" rel=\"nofollow\">GitHub</a></strong></p>\n<h2 class=\"relative group flex items-baseline\">\n\t<a id=\"🔍-what-is-cyberfactory\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#🔍-what-is-cyberfactory\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t🔍 What is CyberFactory?\n\t</span>\n</h2>\n<p>Cybersecurity agents need more than static vulnerability descriptions or final answers. They must inspect source code, use tools, interact with real environments, interpret execution feedback, and refine their decisions over long horizons.</p>\n<p><strong>CyberFactory</strong> is a unified, open-source framework that connects:</p>\n<ul>\n<li>🧱 <strong>Instance construction</strong> from public vulnerability artifacts, including CVEs from the wild;</li>\n<li>🤖 <strong>Agentic trajectory synthesis</strong> through tool and environment interaction;</li>\n<li>🧠 <strong>Model training</strong> across proof-of-concept generation, vulnerability patching, and cybersecurity question answering;</li>\n<li>✅ <strong>Executable verification</strong> so that supervision is grounded in observable program behavior.</li>\n</ul>\n<p>Using the resulting trajectories, we train <strong>OpenAegis</strong>, a 397B-A17B cybersecurity model initialized from Qwen3.5-397B-A17B.</p>\n<div class=\"max-w-full overflow-auto\">\n\t<table>\n\t\t<thead><tr>\n<th align=\"left\">Stage</th>\n<th align=\"left\">What CyberFactory provides</th>\n<th align=\"left\">Output</th>\n</tr>\n\n\t\t</thead><tbody><tr>\n<td align=\"left\">🧱 Instance construction</td>\n<td align=\"left\">Reconstructs executable tasks from public vulnerability artifacts</td>\n<td align=\"left\">PoC, patching, and CyberQA instances</td>\n</tr>\n<tr>\n<td align=\"left\">🧭 Skill-guided synthesis</td>\n<td align=\"left\">Guides a teacher through source inspection, domain-guided analysis, and evidence-based validation</td>\n<td align=\"left\">Tool-interactive agent trajectories</td>\n</tr>\n<tr>\n<td align=\"left\">✅ Verification</td>\n<td align=\"left\">Retains outputs that satisfy task-specific executable criteria</td>\n<td align=\"left\">Grounded supervision</td>\n</tr>\n<tr>\n<td align=\"left\">🧠 Model training</td>\n<td align=\"left\">Fine-tunes Qwen3.5-397B-A17B on the verified trajectories</td>\n<td align=\"left\"><strong>OpenAegis</strong></td>\n</tr>\n</tbody>\n\t</table>\n</div>\n<h2 class=\"relative group flex items-baseline\">\n\t<a id=\"✨-why-does-this-matter\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#✨-why-does-this-matter\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t✨ Why does this matter?\n\t</span>\n</h2>\n<p>Existing open-source efforts leave several gaps:</p>\n<ul>\n<li>🔒 Frontier open-weight models often lack reproducible cybersecurity training recipes.</li>\n<li>🧩 Existing training methods usually address isolated tasks instead of a unified capability.</li>\n<li>📝 Available supervision rarely captures complete, tool-interactive agent behavior.</li>\n<li>📈 Simple rollouts are difficult to scale without a strong domain prior.</li>\n</ul>\n<p>CyberFactory addresses these gaps with an end-to-end recipe for creating executable tasks, synthesizing verifiable agent trajectories, and transferring the resulting workflow into model parameters.</p>\n<h2 class=\"relative group flex items-baseline\">\n\t<a id=\"🏗️-from-vulnerability-artifacts-to-agentic-data\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#🏗️-from-vulnerability-artifacts-to-agentic-data\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t🏗️ From vulnerability artifacts to agentic data\n\t</span>\n</h2>\n<p>CyberFactory builds proof-of-concept tasks from <strong>ARVO</strong>, <strong>OSS-Fuzz</strong>, and <strong>CVEs from the wild</strong>. For each instance, it reconstructs the vulnerable and patched program states, creates a task description, and removes privileged verification signals before trajectory synthesis and training.</p>\n<p>A candidate proof of concept succeeds only when it:</p>\n<ol>\n<li>💥 triggers the target vulnerability in the pre-patch build; and</li>\n<li>🩹 does <strong>not</strong> trigger it in the post-patch build.</li>\n</ol>\n<p>This differential oracle turns vulnerability reproduction into a machine-checkable <strong>propose → verify → refine</strong> loop.</p>\n<p>CyberFactory also constructs:</p>\n<ul>\n<li>🔧 <strong>Patch-generation data</strong> grounded in vulnerability-fix records;</li>\n<li>📚 <strong>CyberQA data</strong> through an answer-first pipeline grounded in execution results, code structure, and authoritative reports.</li>\n</ul>\n<div class=\"max-w-full overflow-auto\">\n\t<table>\n\t\t<thead><tr>\n<th align=\"left\">Data source / task</th>\n<th align=\"left\">Construction procedure</th>\n<th align=\"left\">Verification or grounding</th>\n</tr>\n\n\t\t</thead><tbody><tr>\n<td align=\"left\">🧪 ARVO</td>\n<td align=\"left\">Uses available vulnerable and patched environments</td>\n<td align=\"left\">Ground-truth PoC and differential execution</td>\n</tr>\n<tr>\n<td align=\"left\">🐞 OSS-Fuzz</td>\n<td align=\"left\">Locates the corresponding fix and reconstructs the program states</td>\n<td align=\"left\">Crash evidence used only during instance verification</td>\n</tr>\n<tr>\n<td align=\"left\">🌍 CVEs from the wild</td>\n<td align=\"left\">Locates fix commits from affected-version ranges and constructs pre-/post-patch environments</td>\n<td align=\"left\">Vulnerability metadata used for verification, then removed before training</td>\n</tr>\n<tr>\n<td align=\"left\">🔧 Patch generation</td>\n<td align=\"left\">Builds instances from vulnerability-fix records</td>\n<td align=\"left\">Grounded in source-level fixes</td>\n</tr>\n<tr>\n<td align=\"left\">📚 CyberQA</td>\n<td align=\"left\">Generates questions from trusted answers</td>\n<td align=\"left\">Execution-, code-structure-, or report-grounded facts</td>\n</tr>\n</tbody>\n\t</table>\n</div>\n<h2 class=\"relative group flex items-baseline\">\n\t<a id=\"🧭-skill-guided-trajectory-synthesis\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#🧭-skill-guided-trajectory-synthesis\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t🧭 Skill-guided trajectory synthesis\n\t</span>\n</h2>\n<p>We provide the teacher model with a reusable vulnerability-analysis skill during data synthesis. The skill encodes a task-independent workflow for:</p>\n<ul>\n<li>🔎 inspecting the target and its build constraints;</li>\n<li>🧪 applying domain-guided analysis and testing;</li>\n<li>📋 validating evidence;</li>\n<li>🔁 revising the approach when validation fails.</li>\n</ul>\n<p>The skill does not reveal an instance-specific solution. The teacher still has to solve each vulnerability through interaction with the environment, and only trajectories satisfying task-specific verification criteria are retained.</p>\n<p>Most importantly, <strong>OpenAegis does not receive the skill at inference time</strong>. Supervised fine-tuning transfers the workflow from skill-guided trajectories into the model parameters.</p>\n<h2 class=\"relative group flex items-baseline\">\n\t<a id=\"📊-main-results\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#📊-main-results\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t📊 Main results\n\t</span>\n</h2>\n<p>Under the same scaffold and a one-hour CyberGym budget:</p>\n<div class=\"max-w-full overflow-auto\">\n\t<table>\n\t\t<thead><tr>\n<th align=\"left\">Model</th>\n<th align=\"center\">Parameters</th>\n<th align=\"right\">Pass@1</th>\n</tr>\n\n\t\t</thead><tbody><tr>\n<td align=\"left\">Qwen3.5</td>\n<td align=\"center\">397B-A17B</td>\n<td align=\"right\">29.6%</td>\n</tr>\n<tr>\n<td align=\"left\">Kimi K2.7</td>\n<td align=\"center\">1T-A32B</td>\n<td align=\"right\">51.7%</td>\n</tr>\n<tr>\n<td align=\"left\">GLM 5.2</td>\n<td align=\"center\">744B-A40B</td>\n<td align=\"right\">43.3%</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>OpenAegis</strong></td>\n<td align=\"center\"><strong>397B-A17B</strong></td>\n<td align=\"right\"><strong>58.1%</strong></td>\n</tr>\n</tbody>\n\t</table>\n</div>\n<p>🎯 <strong>OpenAegis improves over its Qwen3.5 base model by 28.5 points.</strong> It also exceeds GLM 5.2 by 14.8 points and Kimi K2.7 by 6.4 points while using fewer total and active parameters than either model.</p>\n<h2 class=\"relative group flex items-baseline\">\n\t<a id=\"🧠-from-skill-elicitation-to-skill-internalization\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#🧠-from-skill-elicitation-to-skill-internalization\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t🧠 From skill elicitation to skill internalization\n\t</span>\n</h2>\n<p>We examine the skill at two stages:</p>\n<h3 class=\"relative group flex items-baseline\">\n\t<a id=\"⚡-explicit-skill-elicitation\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#⚡-explicit-skill-elicitation\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t⚡ Explicit skill elicitation\n\t</span>\n</h3>\n<p>Adding the vulnerability-analysis skill to GLM 5.2 increases Pass@1 from <strong>43.3%</strong> to <strong>46.5%</strong>, even though each attempt is shortened from 60 to 15 minutes. Because the settings are not compute-matched, this result indicates higher trajectory-synthesis throughput rather than an equal-compute comparison.</p>\n<div class=\"max-w-full overflow-auto\">\n\t<table>\n\t\t<thead><tr>\n<th align=\"left\">GLM 5.2 configuration</th>\n<th align=\"right\">Minutes per attempt</th>\n<th align=\"right\">Repetitions</th>\n<th align=\"right\">Pass@1</th>\n</tr>\n\n\t\t</thead><tbody><tr>\n<td align=\"left\">Without analysis skill</td>\n<td align=\"right\">60</td>\n<td align=\"right\">1</td>\n<td align=\"right\">43.3%</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>With analysis skill</strong></td>\n<td align=\"right\"><strong>15</strong></td>\n<td align=\"right\"><strong>5</strong></td>\n<td align=\"right\"><strong>46.5%</strong></td>\n</tr>\n</tbody>\n\t</table>\n</div>\n<div class=\"max-w-full overflow-auto\">\n\t<table>\n\t\t<thead><tr>\n<th align=\"left\">Behavioral metric</th>\n<th align=\"right\">GLM 5.2</th>\n<th align=\"right\">GLM 5.2 + Skill</th>\n</tr>\n\n\t\t</thead><tbody><tr>\n<td align=\"left\">Exploration coverage</td>\n<td align=\"right\">3.78%</td>\n<td align=\"right\"><strong>99.85%</strong></td>\n</tr>\n<tr>\n<td align=\"left\">Exploration calls per trajectory</td>\n<td align=\"right\">0.05</td>\n<td align=\"right\"><strong>2.06</strong></td>\n</tr>\n<tr>\n<td align=\"left\">Validation coverage</td>\n<td align=\"right\">0.13%</td>\n<td align=\"right\"><strong>98.41%</strong></td>\n</tr>\n<tr>\n<td align=\"left\">Validation calls per trajectory</td>\n<td align=\"right\">0.001</td>\n<td align=\"right\"><strong>2.17</strong></td>\n</tr>\n<tr>\n<td align=\"left\">Operations per shell call</td>\n<td align=\"right\">5.27</td>\n<td align=\"right\">4.67</td>\n</tr>\n</tbody>\n\t</table>\n</div>\n<h3 class=\"relative group flex items-baseline\">\n\t<a id=\"🌱-training-time-internalization\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#🌱-training-time-internalization\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t🌱 Training-time internalization\n\t</span>\n</h3>\n<p>The same directional behavior appears after fine-tuning:</p>\n<ul>\n<li>Domain-guided exploration becomes the dominant strategy in <strong>85.2%</strong> of OpenAegis trajectories, compared with <strong>0.6%</strong> for Qwen3.5.</li>\n<li>Exploration calls increase from <strong>0.01</strong> to <strong>1.32</strong> per trajectory.</li>\n<li>Validation calls increase from approximately <strong>0</strong> to <strong>1.05</strong> per trajectory.</li>\n<li>OpenAegis uses stronger instrumentation, more consolidated environment interaction, and more selective submission behavior.</li>\n</ul>\n<p>These results connect the complete training story:</p>\n<blockquote>\n<p>🧭 <strong>Skill guides the teacher</strong> → 🧾 <strong>verified trajectories capture the workflow</strong> → 🧠 <strong>fine-tuning internalizes it</strong> → 🚀 <strong>OpenAegis applies it without the skill prompt</strong></p>\n</blockquote>\n<h3 class=\"relative group flex items-baseline\">\n\t<a id=\"🧭-dominant-strategy-distribution\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#🧭-dominant-strategy-distribution\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t🧭 Dominant strategy distribution\n\t</span>\n</h3>\n<p>The first model pair measures <strong>explicit skill elicitation</strong>; the second measures <strong>training-time internalization</strong>. Values are percentages of trajectories under mutually exclusive labels.</p>\n<div class=\"max-w-full overflow-auto\">\n\t<table>\n\t\t<thead><tr>\n<th align=\"left\">Strategy</th>\n<th align=\"right\">GLM 5.2</th>\n<th align=\"right\">GLM 5.2 + Skill</th>\n<th align=\"right\">Qwen3.5</th>\n<th align=\"right\">OpenAegis</th>\n</tr>\n\n\t\t</thead><tbody><tr>\n<td align=\"left\">Domain-prior-guided exploration</td>\n<td align=\"right\">2.6%</td>\n<td align=\"right\"><strong>99.7%</strong></td>\n<td align=\"right\">0.6%</td>\n<td align=\"right\"><strong>85.2%</strong></td>\n</tr>\n<tr>\n<td align=\"left\">Direct LibFuzzer setup</td>\n<td align=\"right\">32.1%</td>\n<td align=\"right\">0.0%</td>\n<td align=\"right\">60.8%</td>\n<td align=\"right\">5.6%</td>\n</tr>\n<tr>\n<td align=\"left\">Manual input construction</td>\n<td align=\"right\">16.9%</td>\n<td align=\"right\">0.0%</td>\n<td align=\"right\">27.7%</td>\n<td align=\"right\">4.8%</td>\n</tr>\n<tr>\n<td align=\"left\">Direct AFL-Fuzz setup</td>\n<td align=\"right\">3.5%</td>\n<td align=\"right\">0.0%</td>\n<td align=\"right\">0.9%</td>\n<td align=\"right\">0.5%</td>\n</tr>\n<tr>\n<td align=\"left\">No fuzzing</td>\n<td align=\"right\">44.8%</td>\n<td align=\"right\">0.1%</td>\n<td align=\"right\">8.3%</td>\n<td align=\"right\">3.4%</td>\n</tr>\n</tbody>\n\t</table>\n</div>\n<p>ℹ️ When the displayed percentages do not sum to 100%, the remainder corresponds to unspecified strategies; the values above retain the percentages reported in the paper.</p>\n<p>⚠️ The near-total shift of GLM 5.2 + Skill also shows that inference-time skill injection can make the teacher over-dependent on the provided domain prior. OpenAegis retains a more varied strategy distribution while showing the same overall direction of change.</p>\n<h3 class=\"relative group flex items-baseline\">\n\t<a id=\"🧰-domain-guided-operations\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#🧰-domain-guided-operations\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t🧰 Domain-guided operations\n\t</span>\n</h3>\n<div class=\"max-w-full overflow-auto\">\n\t<table>\n\t\t<thead><tr>\n<th align=\"left\">Metric (calls per trajectory)</th>\n<th align=\"right\">GLM 5.2</th>\n<th align=\"right\">GLM 5.2 + Skill</th>\n<th align=\"right\">Qwen3.5</th>\n<th align=\"right\">OpenAegis</th>\n</tr>\n\n\t\t</thead><tbody><tr>\n<td align=\"left\">Exploration</td>\n<td align=\"right\">0.05</td>\n<td align=\"right\"><strong>2.06</strong></td>\n<td align=\"right\">0.01</td>\n<td align=\"right\"><strong>1.32</strong></td>\n</tr>\n<tr>\n<td align=\"left\">Validation</td>\n<td align=\"right\">0.001</td>\n<td align=\"right\"><strong>2.17</strong></td>\n<td align=\"right\">0.00</td>\n<td align=\"right\"><strong>1.05</strong></td>\n</tr>\n</tbody>\n\t</table>\n</div>\n<h3 class=\"relative group flex items-baseline\">\n\t<a id=\"⚙️-tool-use-and-command-complexity\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#⚙️-tool-use-and-command-complexity\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t⚙️ Tool use and command complexity\n\t</span>\n</h3>\n<div class=\"max-w-full overflow-auto\">\n\t<table>\n\t\t<thead><tr>\n<th align=\"left\">Metric</th>\n<th align=\"right\">Qwen3.5</th>\n<th align=\"right\">OpenAegis</th>\n</tr>\n\n\t\t</thead><tbody><tr>\n<td align=\"left\">Shell calls</td>\n<td align=\"right\">70.1%</td>\n<td align=\"right\"><strong>89.9%</strong></td>\n</tr>\n<tr>\n<td align=\"left\">Read calls</td>\n<td align=\"right\">28.4%</td>\n<td align=\"right\"><strong>7.3%</strong></td>\n</tr>\n<tr>\n<td align=\"left\">Operations per shell call</td>\n<td align=\"right\">2.7</td>\n<td align=\"right\"><strong>5.5</strong></td>\n</tr>\n<tr>\n<td align=\"left\">Single-operation calls</td>\n<td align=\"right\">31.4%</td>\n<td align=\"right\"><strong>13.5%</strong></td>\n</tr>\n<tr>\n<td align=\"left\">Calls with 6–10 operations</td>\n<td align=\"right\">4.3%</td>\n<td align=\"right\"><strong>30.8%</strong></td>\n</tr>\n<tr>\n<td align=\"left\">Calls with more than 10 operations</td>\n<td align=\"right\">1.5%</td>\n<td align=\"right\"><strong>9.0%</strong></td>\n</tr>\n</tbody>\n\t</table>\n</div>\n<h3 class=\"relative group flex items-baseline\">\n\t<a id=\"🔬-instrumentation-and-submission-discipline\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#🔬-instrumentation-and-submission-discipline\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t🔬 Instrumentation and submission discipline\n\t</span>\n</h3>\n<div class=\"max-w-full overflow-auto\">\n\t<table>\n\t\t<thead><tr>\n<th align=\"left\">Metric</th>\n<th align=\"right\">Qwen3.5</th>\n<th align=\"right\">OpenAegis</th>\n</tr>\n\n\t\t</thead><tbody><tr>\n<td align=\"left\">ASAN compilation events</td>\n<td align=\"right\">155</td>\n<td align=\"right\"><strong>1,795</strong></td>\n</tr>\n<tr>\n<td align=\"left\">ASAN-output checks</td>\n<td align=\"right\">1,281</td>\n<td align=\"right\"><strong>2,099</strong></td>\n</tr>\n<tr>\n<td align=\"left\">Exactly one submission</td>\n<td align=\"right\">37.9%</td>\n<td align=\"right\"><strong>48.2%</strong></td>\n</tr>\n<tr>\n<td align=\"left\">At least five submissions</td>\n<td align=\"right\">10.4%</td>\n<td align=\"right\"><strong>2.0%</strong></td>\n</tr>\n</tbody>\n\t</table>\n</div>\n<h2 class=\"relative group flex items-baseline\">\n\t<a id=\"🗜️-long-horizon-context-management\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#🗜️-long-horizon-context-management\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t🗜️ Long-horizon context management\n\t</span>\n</h2>\n<p>CyberGym trajectories can approach a 256K-token context limit. At 90% context usage, CyberFactory compresses the trajectory into a continuation state that preserves verified evidence, failed attempts, open hypotheses, generated artifacts, build status, and pending actions.</p>\n<div class=\"max-w-full overflow-auto\">\n\t<table>\n\t\t<thead><tr>\n<th align=\"left\">Context strategy</th>\n<th align=\"right\">Overall Pass@1</th>\n<th align=\"right\">Long-horizon Pass@1</th>\n<th align=\"right\">Context exhaustion</th>\n</tr>\n\n\t\t</thead><tbody><tr>\n<td align=\"left\">Full history</td>\n<td align=\"right\">52.1%</td>\n<td align=\"right\">40.2%</td>\n<td align=\"right\">18.7%</td>\n</tr>\n<tr>\n<td align=\"left\">Simple truncation</td>\n<td align=\"right\">45.6%</td>\n<td align=\"right\">36.8%</td>\n<td align=\"right\">24.5%</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>Compact at 90%</strong></td>\n<td align=\"right\"><strong>58.1%</strong></td>\n<td align=\"right\"><strong>48.7%</strong></td>\n<td align=\"right\"><strong>7.0%</strong></td>\n</tr>\n</tbody>\n\t</table>\n</div>\n<p><strong>Compaction-trigger ablation</strong></p>\n<div class=\"max-w-full overflow-auto\">\n\t<table>\n\t\t<thead><tr>\n<th align=\"left\">Trigger threshold</th>\n<th align=\"right\">Overall Pass@1</th>\n<th align=\"right\">Long-horizon Pass@1</th>\n<th align=\"right\">Context exhaustion</th>\n</tr>\n\n\t\t</thead><tbody><tr>\n<td align=\"left\">Compact at 80%</td>\n<td align=\"right\">54.5%</td>\n<td align=\"right\">45.5%</td>\n<td align=\"right\">10.4%</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>Compact at 90%</strong></td>\n<td align=\"right\"><strong>58.1%</strong></td>\n<td align=\"right\"><strong>48.7%</strong></td>\n<td align=\"right\"><strong>7.0%</strong></td>\n</tr>\n<tr>\n<td align=\"left\">Compact at 95%</td>\n<td align=\"right\">56.8%</td>\n<td align=\"right\">47.1%</td>\n<td align=\"right\">8.2%</td>\n</tr>\n</tbody>\n\t</table>\n</div>\n<p>The 90% compaction strategy delivers the strongest overall and long-horizon results while substantially reducing context-exhaustion failures.</p>\n<h2 class=\"relative group flex items-baseline\">\n\t<a id=\"📦-resources\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#📦-resources\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t📦 Resources\n\t</span>\n</h2>\n<ul>\n<li>🤗 <strong>Models, data, and artifacts:</strong> <a href=\"https://huggingface.co/collections/Multilingual-Multimodal-NLP/cyberfactory\">CyberFactory on Hugging Face</a></li>\n<li>💻 <strong>Code and reproducible pipeline:</strong> <a href=\"https://github.com/CSJianYang/CyberFactory\" rel=\"nofollow\">CSJianYang/CyberFactory</a></li>\n<li>🛡️ <strong>Model:</strong> OpenAegis</li>\n<li>🧰 <strong>Tasks:</strong> PoC generation, vulnerability patching, and CyberQA</li>\n</ul>\n<h2 class=\"relative group flex items-baseline\">\n\t<a id=\"⚠️-responsible-use\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#⚠️-responsible-use\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t⚠️ Responsible use\n\t</span>\n</h2>\n<p>CyberFactory and OpenAegis are developed to support defensive cybersecurity research, reproducible evaluation, vulnerability inspection, and controlled study of security-oriented agents. Users should follow applicable laws, obtain authorization before testing systems, and avoid deployment against systems they do not own or have permission to assess.</p>\n<h2 class=\"relative group flex items-baseline\">\n\t<a id=\"👥-authors\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#👥-authors\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t👥 Authors\n\t</span>\n</h2>\n<p>Jian Yang, Haau-Sing Li, Shawn Guo, Zixi Zhao, Yibo Tan, Jiajun Wu, Aishan Liu, Zhoujun Li, Xianglong Liu, Tianyu Zheng, Bryan Dai, and Chengran Yang</p>\n<p>🏫 Beihang University · ELLIS · IQuest Research · Singapore Management University</p>\n<h2 class=\"relative group flex items-baseline\">\n\t<a id=\"💬-in-one-sentence\" class=\"block pr-1.5 text-lg md:absolute md:p-1.5 md:opacity-0 md:group-hover:opacity-100 md:right-full\" href=\"#💬-in-one-sentence\" rel=\"nofollow\">\n\t\t<span class=\"header-link\"><svg class=\"text-gray-500 hover:text-black dark:hover:text-gray-200 w-4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 256\"><path d=\"M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z\" fill=\"currentColor\"></path></svg></span>\n\t</a>\n\t<span>\n\t\t💬 In one sentence\n\t</span>\n</h2>\n<p><strong>CyberFactory makes cybersecurity training reproducible by turning real-world vulnerabilities into verifiable agentic supervision—and OpenAegis shows that a domain skill can be internalized from trajectories into model behavior.</strong> 🛡️🤖</p>\n","updatedAt":"2026-08-26T09:42:48.877Z","author":{"_id":"66d82581b842183143b87da8","avatarUrl":"/avatars/8eb678c007879ba1e61272e31086c58b.svg","fullname":"Jian Yang","name":"csjiaya","type":"user","isPro":false,"isHf":false,"isHfAdmin":false,"isMod":false,"followerCount":4,"isUserFollowing":false}},"numEdits":0,"identifiedLanguage":{"language":"en","probability":0.7867834568023682},"editors":["csjiaya"],"editorAvatarUrls":["/avatars/8eb678c007879ba1e61272e31086c58b.svg"],"reactions":[],"isReport":false}}],"primaryEmailConfirmed":false,"paper":{"id":"2608.23181","authors":[{"_id":"6a8d2f875add2537c32e9849","name":"Jian Yang","hidden":false},{"_id":"6a8d2f875add2537c32e984a","name":"Haau-Sing Li","hidden":false},{"_id":"6a8d2f875add2537c32e984b","name":"Shawn Guo","hidden":false},{"_id":"6a8d2f875add2537c32e984c","name":"Zixi Zhao","hidden":false},{"_id":"6a8d2f875add2537c32e984d","name":"Yibo Tan","hidden":false},{"_id":"6a8d2f875add2537c32e984e","name":"Jiajun Wu","hidden":false},{"_id":"6a8d2f875add2537c32e984f","name":"Aishan Liu","hidden":false},{"_id":"6a8d2f875add2537c32e9850","name":"Xianglong Liu","hidden":false},{"_id":"6a8d2f875add2537c32e9851","name":"Tianyu Zheng","hidden":false},{"_id":"6a8d2f875add2537c32e9852","name":"Bryan Dai","hidden":false},{"_id":"6a8d2f875add2537c32e9853","name":"Chengran Yang","hidden":false}],"publishedAt":"2026-08-24T00:00:00.000Z","submittedOnDailyAt":"2026-08-26T00:00:00.000Z","title":"CyberFactory: Scaling Cyber Security Capabilities with Instances from the Wild","submittedOnDailyBy":{"_id":"66d82581b842183143b87da8","avatarUrl":"/avatars/8eb678c007879ba1e61272e31086c58b.svg","isPro":false,"fullname":"Jian Yang","user":"csjiaya","type":"user","name":"csjiaya"},"summary":"As large language models (LLMs) continue to advance in coding capabilities, their potential in cybersecurity has drawn increasing research attention, with closed-source LLMs (e.g., Mythos) delivering advanced cybersecurity capabilities. However, existing open-source efforts remain limited: frontier open-weight models do not provide reproducible cybersecurity training solutions, open-source training solutions focus on isolated tasks and lack scalable agentic data, and scaling agentic rollouts requires strong domain priors. In this work, we introduce CyberFactory, a unified open-source framework that connects data construction, trajectory synthesis, and model training across proof-of-concept (PoC) generation, vulnerability patching, and cybersecurity question answering (CyberQA). CyberFactory transforms public vulnerability artifacts, including CVEs from the wild, into executable and verifiable task instances. It further uses a reusable vulnerability-analysis skill to guide the teacher through source inspection, problem solving with domain prior, and evidence-based validation. The resulting supervision is agentic: the model interacts with tools and target environments and revises its solutions according to execution feedback. Using these trajectories, we train and release \\modelname\\emph{Aegis is, in Greek mythology, the protective shield of Zeus and Athena; the name reflects the model's defensive, security-oriented purpose.}, which internalizes the skill-guided procedure without requiring the skill at inference time. On CyberGym, \\modelname reaches 52.4% Pass@1 under a one-hour budget, improving over its Qwen~3.5 base model by +22.8 points and outperforming the evaluated general-purpose backbones under the same scaffold.","upvotes":26,"discussionId":"6a8d2f885add2537c32e9854","ai_summary":"CyberFactory is an open-source framework that builds agentic training data from real vulnerabilities to train Aegis, improving open-weight cybersecurity performance across proof-of-concept generation, patching, and question answering.","ai_keywords":["large language models","open-weight models","agentic data","trajectory synthesis","proof-of-concept generation","vulnerability patching","CyberQA","CVEs","vulnerability-analysis skill","execution feedback","Aegis","CyberGym","Pass@1"],"ai_summary_model":"thinkingmachines/Inkling-Small","organization":{"_id":"6937e1578cd2568ba4c9d3f9","name":"IQuestLab","fullname":"IQuest","avatar":"https://cdn-avatars.huggingface.co/v1/production/uploads/68c80cc3a1ca9a73c17d29f7/pjOEigZuk_UQ4dqyS482V.png"}},"canReadDatabase":false,"canManagePapers":false,"canSubmit":false,"hasHfLevelAccess":false,"upvoted":false,"upvoters":[{"_id":"668619ce7374cac565759731","avatarUrl":"https://cdn-avatars.huggingface.co/v1/production/uploads/668619ce7374cac565759731/tUtiyIQRGsMdq3HB2yYIL.jpeg","isPro":false,"fullname":"Fanglin Xu","user":"Tswatery","type":"user"},{"_id":"66d82581b842183143b87da8","avatarUrl":"/avatars/8eb678c007879ba1e61272e31086c58b.svg","isPro":false,"fullname":"Jian Yang","user":"csjiaya","type":"user"},{"_id":"64ab99dcb76bfd863eba64c1","avatarUrl":"https://cdn-avatars.huggingface.co/v1/production/uploads/64ab99dcb76bfd863eba64c1/UBXwDPx17X-gl-SzBPvrc.jpeg","isPro":false,"fullname":"TY.Zheng","user":"aaabiao","type":"user"},{"_id":"673490b3d7e101ba37a009b5","avatarUrl":"/avatars/631a8df61a3cb26cc08146a4d02c49d1.svg","isPro":false,"fullname":"Zrzzzz","user":"zrzzzz12138","type":"user"},{"_id":"66309f5dcde3fb5e078e9b60","avatarUrl":"/avatars/ccd8c6ac20bf70f6ec2f3a42a46bfa8a.svg","isPro":false,"fullname":"wuning","user":"Solaris123","type":"user"},{"_id":"6753fe5de1a51e53cb239ded","avatarUrl":"/avatars/6e4ebdc5cdbd6f95dd4e77739f91c050.svg","isPro":false,"fullname":"Weicheng-Gu1","user":"gwc000","type":"user"},{"_id":"6a4bad2321f6a320b3d2ad05","avatarUrl":"/avatars/0f4bdac2bda0633ed6b033de55affc7f.svg","isPro":false,"fullname":"xww","user":"wnidw","type":"user"},{"_id":"69c67b2fa994b07915a6e083","avatarUrl":"/avatars/3d0fd966df540d34095d2c84ce449180.svg","isPro":false,"fullname":"wei zhang","user":"zwpride","type":"user"},{"_id":"65b50969d7eeb848c65a08f8","avatarUrl":"/avatars/c6598adfb99efcc6edb74c6d8dd2a3fd.svg","isPro":false,"fullname":"LIU","user":"OceaneLL","type":"user"},{"_id":"6382252f54421460665ec501","avatarUrl":"https://cdn-avatars.huggingface.co/v1/production/uploads/6382252f54421460665ec501/gW9fev3T5QPcNq4f9hqB1.jpeg","isPro":false,"fullname":"Yizhi Li","user":"yizhilll","type":"user"},{"_id":"5ee6cd27464d0272c8b24545","avatarUrl":"https://cdn-avatars.huggingface.co/v1/production/uploads/5ee6cd27464d0272c8b24545/aSSDBKB84SH4gFuj64ovT.png","isPro":true,"fullname":"Haau-Sing Li","user":"lhaausing","type":"user"},{"_id":"684eb0301d80cb22b544eb0a","avatarUrl":"https://cdn-avatars.huggingface.co/v1/production/uploads/noauth/GmY6Ub9Ol7INgIEiBlQcb.jpeg","isPro":false,"fullname":"Wenjia Jiang","user":"jwj1342","type":"user"}],"acceptLanguages":["en"],"dailyPaperRank":0,"organization":{"_id":"6937e1578cd2568ba4c9d3f9","name":"IQuestLab","fullname":"IQuest","avatar":"https://cdn-avatars.huggingface.co/v1/production/uploads/68c80cc3a1ca9a73c17d29f7/pjOEigZuk_UQ4dqyS482V.png"},"markdownContentUrl":"https://huggingface.co/buckets/huggingchat/papers-content/resolve/2608/2608.23181.md","query":{}}">
CyberFactory: Scaling Cyber Security Capabilities with Instances from the Wild
Abstract
CyberFactory is an open-source framework that builds agentic training data from real vulnerabilities to train Aegis, improving open-weight cybersecurity performance across proof-of-concept generation, patching, and question answering.
As large language models (LLMs) continue to advance in coding capabilities, their potential in cybersecurity has drawn increasing research attention, with closed-source LLMs (e.g., Mythos) delivering advanced cybersecurity capabilities. However, existing open-source efforts remain limited: frontier open-weight models do not provide reproducible cybersecurity training solutions, open-source training solutions focus on isolated tasks and lack scalable agentic data, and scaling agentic rollouts requires strong domain priors. In this work, we introduce CyberFactory, a unified open-source framework that connects data construction, trajectory synthesis, and model training across proof-of-concept (PoC) generation, vulnerability patching, and cybersecurity question answering (CyberQA). CyberFactory transforms public vulnerability artifacts, including CVEs from the wild, into executable and verifiable task instances. It further uses a reusable vulnerability-analysis skill to guide the teacher through source inspection, problem solving with domain prior, and evidence-based validation. The resulting supervision is agentic: the model interacts with tools and target environments and revises its solutions according to execution feedback. Using these trajectories, we train and release \modelname\emph{Aegis is, in Greek mythology, the protective shield of Zeus and Athena; the name reflects the model's defensive, security-oriented purpose.}, which internalizes the skill-guided procedure without requiring the skill at inference time. On CyberGym, \modelname reaches 52.4% Pass@1 under a one-hour budget, improving over its Qwen~3.5 base model by +22.8 points and outperforming the evaluated general-purpose backbones under the same scaffold.
Community
🛡️ CyberFactory: Scaling Cyber Security Capabilities with Instances from the Wild
🏭 An open-source recipe for turning real-world vulnerability artifacts into executable tasks, verifiable agent trajectories, and an internalized cybersecurity workflow.
🔗 Hugging Face Collection · 💻 GitHub
🔍 What is CyberFactory?
Cybersecurity agents need more than static vulnerability descriptions or final answers. They must inspect source code, use tools, interact with real environments, interpret execution feedback, and refine their decisions over long horizons.
CyberFactory is a unified, open-source framework that connects:
- 🧱 Instance construction from public vulnerability artifacts, including CVEs from the wild;
- 🤖 Agentic trajectory synthesis through tool and environment interaction;
- 🧠 Model training across proof-of-concept generation, vulnerability patching, and cybersecurity question answering;
- ✅ Executable verification so that supervision is grounded in observable program behavior.
Using the resulting trajectories, we train OpenAegis, a 397B-A17B cybersecurity model initialized from Qwen3.5-397B-A17B.
| Stage |
What CyberFactory provides |
Output |
| 🧱 Instance construction |
Reconstructs executable tasks from public vulnerability artifacts |
PoC, patching, and CyberQA instances |
| 🧭 Skill-guided synthesis |
Guides a teacher through source inspection, domain-guided analysis, and evidence-based validation |
Tool-interactive agent trajectories |
| ✅ Verification |
Retains outputs that satisfy task-specific executable criteria |
Grounded supervision |
| 🧠 Model training |
Fine-tunes Qwen3.5-397B-A17B on the verified trajectories |
OpenAegis |
✨ Why does this matter?
Existing open-source efforts leave several gaps:
- 🔒 Frontier open-weight models often lack reproducible cybersecurity training recipes.
- 🧩 Existing training methods usually address isolated tasks instead of a unified capability.
- 📝 Available supervision rarely captures complete, tool-interactive agent behavior.
- 📈 Simple rollouts are difficult to scale without a strong domain prior.
CyberFactory addresses these gaps with an end-to-end recipe for creating executable tasks, synthesizing verifiable agent trajectories, and transferring the resulting workflow into model parameters.
🏗️ From vulnerability artifacts to agentic data
CyberFactory builds proof-of-concept tasks from ARVO, OSS-Fuzz, and CVEs from the wild. For each instance, it reconstructs the vulnerable and patched program states, creates a task description, and removes privileged verification signals before trajectory synthesis and training.
A candidate proof of concept succeeds only when it:
- 💥 triggers the target vulnerability in the pre-patch build; and
- 🩹 does not trigger it in the post-patch build.
This differential oracle turns vulnerability reproduction into a machine-checkable propose → verify → refine loop.
CyberFactory also constructs:
- 🔧 Patch-generation data grounded in vulnerability-fix records;
- 📚 CyberQA data through an answer-first pipeline grounded in execution results, code structure, and authoritative reports.
| Data source / task |
Construction procedure |
Verification or grounding |
| 🧪 ARVO |
Uses available vulnerable and patched environments |
Ground-truth PoC and differential execution |
| 🐞 OSS-Fuzz |
Locates the corresponding fix and reconstructs the program states |
Crash evidence used only during instance verification |
| 🌍 CVEs from the wild |
Locates fix commits from affected-version ranges and constructs pre-/post-patch environments |
Vulnerability metadata used for verification, then removed before training |
| 🔧 Patch generation |
Builds instances from vulnerability-fix records |
Grounded in source-level fixes |
| 📚 CyberQA |
Generates questions from trusted answers |
Execution-, code-structure-, or report-grounded facts |
🧭 Skill-guided trajectory synthesis
We provide the teacher model with a reusable vulnerability-analysis skill during data synthesis. The skill encodes a task-independent workflow for:
- 🔎 inspecting the target and its build constraints;
- 🧪 applying domain-guided analysis and testing;
- 📋 validating evidence;
- 🔁 revising the approach when validation fails.
The skill does not reveal an instance-specific solution. The teacher still has to solve each vulnerability through interaction with the environment, and only trajectories satisfying task-specific verification criteria are retained.
Most importantly, OpenAegis does not receive the skill at inference time. Supervised fine-tuning transfers the workflow from skill-guided trajectories into the model parameters.
📊 Main results
Under the same scaffold and a one-hour CyberGym budget:
| Model |
Parameters |
Pass@1 |
| Qwen3.5 |
397B-A17B |
29.6% |
| Kimi K2.7 |
1T-A32B |
51.7% |
| GLM 5.2 |
744B-A40B |
43.3% |
| OpenAegis |
397B-A17B |
58.1% |
🎯 OpenAegis improves over its Qwen3.5 base model by 28.5 points. It also exceeds GLM 5.2 by 14.8 points and Kimi K2.7 by 6.4 points while using fewer total and active parameters than either model.
🧠 From skill elicitation to skill internalization
We examine the skill at two stages:
⚡ Explicit skill elicitation
Adding the vulnerability-analysis skill to GLM 5.2 increases Pass@1 from 43.3% to 46.5%, even though each attempt is shortened from 60 to 15 minutes. Because the settings are not compute-matched, this result indicates higher trajectory-synthesis throughput rather than an equal-compute comparison.
| GLM 5.2 configuration |
Minutes per attempt |
Repetitions |
Pass@1 |
| Without analysis skill |
60 |
1 |
43.3% |
| With analysis skill |
15 |
5 |
46.5% |
| Behavioral metric |
GLM 5.2 |
GLM 5.2 + Skill |
| Exploration coverage |
3.78% |
99.85% |
| Exploration calls per trajectory |
0.05 |
2.06 |
| Validation coverage |
0.13% |
98.41% |
| Validation calls per trajectory |
0.001 |
2.17 |
| Operations per shell call |
5.27 |
4.67 |
🌱 Training-time internalization
The same directional behavior appears after fine-tuning:
- Domain-guided exploration becomes the dominant strategy in 85.2% of OpenAegis trajectories, compared with 0.6% for Qwen3.5.
- Exploration calls increase from 0.01 to 1.32 per trajectory.
- Validation calls increase from approximately 0 to 1.05 per trajectory.
- OpenAegis uses stronger instrumentation, more consolidated environment interaction, and more selective submission behavior.
These results connect the complete training story:
🧭 Skill guides the teacher → 🧾 verified trajectories capture the workflow → 🧠 fine-tuning internalizes it → 🚀 OpenAegis applies it without the skill prompt
🧭 Dominant strategy distribution
The first model pair measures explicit skill elicitation; the second measures training-time internalization. Values are percentages of trajectories under mutually exclusive labels.
| Strategy |
GLM 5.2 |
GLM 5.2 + Skill |
Qwen3.5 |
OpenAegis |
| Domain-prior-guided exploration |
2.6% |
99.7% |
0.6% |
85.2% |
| Direct LibFuzzer setup |
32.1% |
0.0% |
60.8% |
5.6% |
| Manual input construction |
16.9% |
0.0% |
27.7% |
4.8% |
| Direct AFL-Fuzz setup |
3.5% |
0.0% |
0.9% |
0.5% |
| No fuzzing |
44.8% |
0.1% |
8.3% |
3.4% |
ℹ️ When the displayed percentages do not sum to 100%, the remainder corresponds to unspecified strategies; the values above retain the percentages reported in the paper.
⚠️ The near-total shift of GLM 5.2 + Skill also shows that inference-time skill injection can make the teacher over-dependent on the provided domain prior. OpenAegis retains a more varied strategy distribution while showing the same overall direction of change.
🧰 Domain-guided operations
| Metric (calls per trajectory) |
GLM 5.2 |
GLM 5.2 + Skill |
Qwen3.5 |
OpenAegis |
| Exploration |
0.05 |
2.06 |
0.01 |
1.32 |
| Validation |
0.001 |
2.17 |
0.00 |
1.05 |
⚙️ Tool use and command complexity
| Metric |
Qwen3.5 |
OpenAegis |
| Shell calls |
70.1% |
89.9% |
| Read calls |
28.4% |
7.3% |
| Operations per shell call |
2.7 |
5.5 |
| Single-operation calls |
31.4% |
13.5% |
| Calls with 6–10 operations |
4.3% |
30.8% |
| Calls with more than 10 operations |
1.5% |
9.0% |
🔬 Instrumentation and submission discipline
| Metric |
Qwen3.5 |
OpenAegis |
| ASAN compilation events |
155 |
1,795 |
| ASAN-output checks |
1,281 |
2,099 |
| Exactly one submission |
37.9% |
48.2% |
| At least five submissions |
10.4% |
2.0% |
🗜️ Long-horizon context management
CyberGym trajectories can approach a 256K-token context limit. At 90% context usage, CyberFactory compresses the trajectory into a continuation state that preserves verified evidence, failed attempts, open hypotheses, generated artifacts, build status, and pending actions.
| Context strategy |
Overall Pass@1 |
Long-horizon Pass@1 |
Context exhaustion |
| Full history |
52.1% |
40.2% |
18.7% |
| Simple truncation |
45.6% |
36.8% |
24.5% |
| Compact at 90% |
58.1% |
48.7% |
7.0% |
Compaction-trigger ablation
| Trigger threshold |
Overall Pass@1 |
Long-horizon Pass@1 |
Context exhaustion |
| Compact at 80% |
54.5% |
45.5% |
10.4% |
| Compact at 90% |
58.1% |
48.7% |
7.0% |
| Compact at 95% |
56.8% |
47.1% |
8.2% |
The 90% compaction strategy delivers the strongest overall and long-horizon results while substantially reducing context-exhaustion failures.
📦 Resources
⚠️ Responsible use
CyberFactory and OpenAegis are developed to support defensive cybersecurity research, reproducible evaluation, vulnerability inspection, and controlled study of security-oriented agents. Users should follow applicable laws, obtain authorization before testing systems, and avoid deployment against systems they do not own or have permission to assess.
👥 Authors
Jian Yang, Haau-Sing Li, Shawn Guo, Zixi Zhao, Yibo Tan, Jiajun Wu, Aishan Liu, Zhoujun Li, Xianglong Liu, Tianyu Zheng, Bryan Dai, and Chengran Yang
🏫 Beihang University · ELLIS · IQuest Research · Singapore Management University
💬 In one sentence
CyberFactory makes cybersecurity training reproducible by turning real-world vulnerabilities into verifiable agentic supervision—and OpenAegis shows that a domain skill can be internalized from trajectories into model behavior. 🛡️🤖
Upload images, audio, and videos by dragging in the text input, pasting, or clicking here.
Tap or paste here to upload images
Cite arxiv.org/abs/2608.23181 in a model README.md to link it from this page.
Cite arxiv.org/abs/2608.23181 in a dataset README.md to link it from this page.
Cite arxiv.org/abs/2608.23181 in a Space README.md to link it from this page.
Discussion (0)
Sign in to join the discussion. Free account, 30 seconds — email code or GitHub.
Sign in →No comments yet. Sign in and be the first to say something.