SkillScreen: High-Recall Screening of Malicious Agent Skills with Decision Models
Organizations: University of Toronto · University of British Columbia · Rutgers University
Abstract
Agent skills turn natural-language instructions into actions, creating a security challenge: legitimate automation and malicious behaviour can look deceptively similar. A practical screen must catch nearly every attack while keeping the review load manageable. We present SkillScreen, a compact decision model trained to score skill maliciousness directly from SKILLmd in a single forward pass. On MaliciousSkillBench, SkillScreen flags 20-25% of benign skills at 99% recall on unseen attack families, substantially fewer than the word-level classifier and prompted LLM judges tested. Under the same training protocol, it also generalizes better than a fully fine-tuned encoder to unseen sources. Yet unfamiliar benign sources sharply increase false positives, showing that recognizing new attacks does not ensure reliable screening of new skill collections. Our results demonstrate the value of task-trained decision models for high-recall skill screening. Project page: https://jerroldh.github.io/SkillScreen-webpage/
Figures & tables
| MSD (Unseen attack structures) | SD (Unseen sources) | |||||||
| Default threshold | 99% recall | Default threshold | 99% recall | |||||
| Method | Recall | FPR | AUROC | FPR | Recall | FPR | AUROC | FPR |
| Off-the-shelf detectors | ||||||||
| Untuned OpenJev-2B | 4.2 | 0.0 | 0.678 | 95.5 | 0.6 | 0.0 | 0.568 | 99.8 |
| TypeSafe Jev 1.13 | 33.8 | 0.2 | 0.841 | 100.0 | 11.3 | 0.0 | 0.652 | 100.0 |
| SkillSpector | 10.5 | 0.7 | 0.618 | 100.0 | 1.3 | 1.8 | 0.433 | 100.0 |
| Variant | Recall | FPR | AUROC | FPR@99 |
|---|---|---|---|---|
| SkillScreen (5 seeds) | 95.6 0.6 | 3.3 1.3 | 0.992 | 22.6 |
| Plain base (5 seeds) | 96.9 0.8 | 4.1 1.6 | 0.992 | 21.1 |
| Paraphrased hypothesis | 95.1 | 1.3 | 0.993 | 21.0 |
| Unrelated hypothesis (5 seeds) | 95.7 0.8 | 3.3 1.2 | 0.990 | 28.9 |
| Empty hypothesis | 95.1 | 2.0 | 0.988 | 44.7 |
| 0.8B base (2 seeds) | 95.4 0.0 | 2.9 0.9 | 0.991 | 26.0 |
Appendix figures & tables14 assets
Supplementary material from the paper’s appendix.
Appendix
| Protocol | Source | Train (benign / malicious) | Validation | Test |
|---|---|---|---|---|
| MSD | MalSkillBench | 0 / 1,919 | 0 / 537 | 0 / 967 |
| MSD | SkillTrustBench | 1,134 / 2,348 | 171 / 109 | 338 / 324 |
| MSD | SkillHarm | 0 / 601 | 0 / 35 | 0 / 92 |
| MSD | ATR Skill Security Benchmark | 329 / 13 | 43 / 3 | 83 / 5 |
| MSD | SkillFortifyBench | 70 / 86 | 7 / 2 | 13 / 2 |
| MSD | MaliciousAgentSkillsBench | 0 / 58 | 0 / 34 | 0 / 61 |
| Method | at 95.6% recall | at 99% recall |
|---|---|---|
| SkillScreen (5 seeds) | 2.0–4.0 | 19.9–24.6 |
| ModernBERT (5) | 2.2–3.8 | 25.1–36.2 |
| Word-SVM | 13.6 | 45.6 |
| GPT-5.5 | 34.7 | 91.1 |
| GPT-5.5 + few-shot (8) | 28.2 | 95.7 |
| GPT-5.5 + medium reasoning | 44.3 | 86.8 |
| Method | AP |
|---|---|
| SkillScreen (5 seeds) | 0.998 |
| + findings context | 0.998 |
| + full context | 0.998 |
| ModernBERT-large (5 seeds) | 0.997 |
| Word-SVM | 0.993 |
| TypeSafe Jev 1.13 | 0.942 |
| Input | Recall | FPR | AUROC | FPR 99 |
|---|---|---|---|---|
| Skill text | 95.6 | 3.3 | 0.992 | 22.6 |
| + findings | 95.4 | 1.3 | 0.993 | 22.1 |
| + full context | 95.1 | 2.5 | 0.992 | 20.6 |
| Run | Seed | Val. FPR@99 | Gate recall / FPR | FP | FN | AP | At 0.5 recall / FPR | ||
| MSD | 42 | 23.7 | 98.93 | 21.70 | 97 | 16 | 0.9978 | 95.20 | 1.79 |
| MSD | 1 | 20.5 | 98.73 | 20.13 | 90 | 19 | 0.9976 | 96.47 | 5.15 |
| MSD | 2 | 21.4 | 99.00 | 21.25 | 95 | 15 | 0.9980 | 95.40 | 3.80 |
| MSD | 3 | 20.5 | 98.93 | 20.13 | 90 | 16 | 0.9977 | 95.07 | 3.13 |
| MSD | 4 | 27.7 | 99.13 | 23.94 | 107 | 13 | 0.9977 | 96.07 | 2.68 |
| SD | 42 | 8.3 | 98.93 | 55.60 | 303 | 9 | 0.9325 | 96.07 | 35.41 |
| Learning rate | Seeds | Val. FPR@99 | Recall | FPR | AUROC | Gate recall / FPR | FPR@99 | vs SkillScreen @99 |
|---|---|---|---|---|---|---|---|---|
| (default) | 5 | 27.7 | 96.0 | 4.1 | 0.990 | 98.9 / 30.2 | 30.4 | [ , ] |
| first set (CPU, float32) | 4 of 5 | 31.8 | 96.1 | 4.8 | 0.990 | 99.1 / 34.7 | 33.9 | [ , ] |
| 3 | 36.0 | 96.1 | 10.0 | 0.985 | 99.0 / 39.7 | 37.2 | [ , ] | |
| 3 | 34.1 | 96.0 | 3.0 | 0.991 | 99.3 / 36.5 | 29.4 | [ , ] | |
| SkillScreen | 5 | 22.8 | 95.6 | 3.3 | 0.992 | 98.9 / 21.4 | 22.6 | – |
| Split | Seed | Val. FPR@99 | Gate recall / FPR | FP | FN | AP | At 0.5 recall / FPR | ||
| MSD | 42 | 32.6 | 99.00 | 38.03 | 170 | 15 | 0.9970 | 95.47 | 2.24 |
| MSD | 1 | 25.4 | 98.80 | 25.06 | 112 | 18 | 0.9974 | 95.87 | 3.80 |
| MSD | 2 | 31.7 | 99.13 | 34.23 | 153 | 13 | 0.9972 | 95.93 | 3.80 |
| MSD | 3 | 21.4 | 98.47 | 25.28 | 113 | 23 | 0.9970 | 96.00 | 3.58 |
| MSD | 4 | 27.2 | 99.00 | 28.41 | 127 | 15 | 0.9973 | 96.67 | 7.16 |
| MSD, CPU set | 42 | 44.2 | 99.27 | 46.09 | 206 | 11 | 0.9971 | 95.60 | 4.47 |
| Method | [email protected]% | FPR@99% [CI] | vs SkillScreen @99% [CI] |
|---|---|---|---|
| SkillScreen (5) | 3.2 | 22.6 [13.5, 37.0] | – |
| ModernBERT-large (5) | 3.2 | 30.4 [21.2, 51.4] | [ , ] |
| CPU set, 4 converged | 2.8 | 33.9 [21.2, 46.9] | [ , ] |
| CPU set, all 5 | 18.8 | 45.9 [35.8, 56.4] | [ , ] |
| Word-SVM | 13.6 | 45.6 [30.0, 66.2] | [ , ] |
| Plain base (5) | 2.6 | 21.1 [11.5, 39.5] | [ , ] |
| Split | Partition | Malicious | Families | Singletons | |
|---|---|---|---|---|---|
| MSD | train | 5,250 | 2,458 | 50% | 129 |
| MSD | test | 1,500 | 1,364 | 90% | 0 |
| SBR | train | 5,249 | 3,542 | 75% | 61 |
| SBR | test | 1,501 | 1,249 | 88% | 8 |
| SD | train | 5,989 | 3,992 | 72% | 69 |
| SD | test | 839 | 304 | 71% | 43 |
| Rewrite | Rule | Before | After | Drop per adapter |
|---|---|---|---|---|
| Paraphrase | 0.5 | 96.6 | 96.0 | 0.5–1.0 |
| Paraphrase | gate | 99.8 | 99.6 | 0.0–0.5 |
| Script move | 0.5 | 96.6 | 67.5 | 24.5–35.0 |
| Script move | gate | 99.8 | 87.0 | 11.5–14.0 |
Agent Skill Security Auditing
Agent skill security auditing examines reusable agent instructions, code, and tools for malicious behavior, unsafe permissions, and supply-chain risks.
See all 63 papers