license: mit
tags:
- cybersecurity
- llm-security
- benchmark
- red-teaming
- code-security
pretty_name: CyberSecEval 3
CyberSecEval 3
This dataset packages the CyberSecEval 3 benchmark data published by Meta as part of the
PurpleLlama project, reformatted into a singledata.jsonl file with a category field identifying which CyberSecEval 3 sub-benchmark each
record belongs to.
Source
- Official repository: meta-llama/PurpleLlama
(CybersecurityBenchmarks/datasets/) - Project page: CyberSecEval 3 — Meta AI Research
- Retrieved: 2026-09-17, from the
mainbranch of the repository (shallow clone).
Note: the
meta-llama/PurpleLlamarepository is a living monorepo that now hosts CyberSecEval 4
(the successor to CyberSecEval 3) in the sameCybersecurityBenchmarks/datasets/folder. This
package includes only the sub-benchmarks that were part of CyberSecEval 3; the two
CyberSecEval-4-only additions (autopatch/— AutoPatchBench, andcrwd_meta/— CyberSOCEval,
built with CrowdStrike) were deliberately excluded. See "Known issues" below.
Paper
Wan, S., Nikolaidis, C., Song, D., Molnar, D., Crnkovich, J., Grace, J., Bhatt, M., Chennabasappa,
S., Whitman, S., Ding, S., Ionescu, V., Li, Y., & Saxe, J. (2024). CyberSecEval 3: Advancing the
Evaluation of Cybersecurity Risks and Capabilities in Large Language Models.
arXiv:2408.01605. https://arxiv.org/abs/2408.01605
@misc{wan2024cyberseceval3advancingevaluation,
title={CYBERSECEVAL 3: Advancing the Evaluation of Cybersecurity Risks and Capabilities in Large Language Models},
author={Shengye Wan and Cyrus Nikolaidis and Daniel Song and David Molnar and James Crnkovich and Jayson Grace and Manish Bhatt and Sahana Chennabasappa and Spencer Whitman and Stephanie Ding and Vlad Ionescu and Yue Li and Joshua Saxe},
year={2024},
eprint={2408.01605},
archivePrefix={arXiv},
primaryClass={cs.CR},
url={https://arxiv.org/abs/2408.01605}
}
License
MIT License — Copyright (c) Meta Platforms, Inc. and affiliates, as stated inCybersecurityBenchmarks/LICENSE
of the source repository. This applies to the benchmark code and datasets; it is distinct from the
LLAMA Community License that covers the Llama Guard model weights hosted elsewhere in the same
monorepo. Redistribute in accordance with the MIT License terms (retain the copyright notice).
File
data.jsonl— 9,361 records, one JSON object per line, UTF-8, each with acategoryfield.
Categories included
category |
Source file | Records | Description |
|---|---|---|---|
autocomplete |
autocomplete/autocomplete.json |
1,916 | Insecure-coding-suggestion tests in an autocomplete (code continuation) setting |
instruct |
instruct/instruct-v2.json |
1,681 | Insecure-coding tests where the LLM is given an explicit instruction (v2 revision; supersedes v1, see Known issues) |
interpreter |
interpreter/interpreter.json |
500 | Code-interpreter abuse / sandbox-escape prompts |
mitre |
mitre/mitre_benchmark_100_per_category_with_augmentation.json |
1,000 | MITRE ATT&CK-based cyberattack-assistance compliance tests (English) |
mitre_multilingual |
mitre/mitre_prompts_multilingual_machine_translated.json |
700 | MITRE tests, machine-translated into multiple languages |
mitre_frr |
mitre_frr/mitre_frr.json |
750 | MITRE False Refusal Rate tests (benign-but-borderline prompts), English |
mitre_frr_multilingual |
mitre_frr/frr_multilingual_machine_translated.json |
700 | MITRE FRR tests, machine-translated into multiple languages |
prompt_injection |
prompt_injection/prompt_injection.json |
251 | Textual prompt-injection attack tests, English |
prompt_injection_multilingual |
prompt_injection/prompt_injection_multilingual_machine_translated.json |
1,004 | Prompt-injection tests, machine-translated into multiple languages |
spear_phishing |
spear_phishing/multiturn_phishing_challenges.json |
856 | Multi-turn spear-phishing persuasiveness challenges (includes nested target_profile objects) |
autonomous_uplift |
autonomous_uplift/out/autonomous_prompts_sample.json |
3 | Sample autonomous offensive-cyber-operations system prompts |
| Total | 9,361 |
All original fields from each source file are preserved unchanged; only a category field was
added (via Add-Member, forced) to every record before concatenation into JSONL.
Known issues / decisions made while preparing this package
autopatch/andcrwd_meta/excluded. Per the source repository's own README, these two
folders (AutoPatchBench and CyberSOCEval/CrowdStrike malware-analysis & threat-intel-reasoning)
were introduced in CyberSecEval 4, not CyberSecEval 3, even though they now live in the samedatasets/directory. Including them would misrepresent this package as CyberSecEval 3.instruct.json(v1) excluded in favor ofinstruct-v2.json. Both files exist in the
repository with near-identical schemas; v2 is the revised/superseding version, so only v2 was
used to avoid near-duplicate records. If you need v1 as well it can be added withcategory: "instruct_v1".canary_exploit/(Vulnerability Exploitation / "Capture the Flag" tests) excluded. Unlike
every other sub-benchmark, this one ships no static JSON dataset — it contains only Python
generator scripts (c_generator.py,python_generator.py,sqlite_generator.py,c_buffer_overflow_generator.py, etc.) that synthesize a fresh, randomized set of CTF-style
memory-corruption / constraint-satisfaction challenges each time the benchmark is run. There is
no fixed list of prompts to flatten into rows without executing that code, so it could not be
represented faithfully as static JSONL rows and was left out rather than included as a
misleading, non-representative sample.autonomous_uplift/in/cyber_range_pairs_sample.jsonexcluded. This file is a small (3-entry)
infrastructure config (attacker/target IP pairs for a cyber range), not benchmark prompts —
it is a supporting fixture consumed bytest_case_generator.pytogether withautonomous_prompts_sample.json(which is included, as theautonomous_upliftcategory).- Unicode escaping. Records were serialized with PowerShell's
ConvertTo-Json(no Python
available in the preparation environment), which escapes non-ASCII characters as\uXXXX
sequences. This is standard, fully valid JSON/JSONL and round-trips correctly in any JSON
parser (validated line-by-line withJSON::PP), but note it if you are grepping the raw file
for non-Latin text. - Field names, nesting, and value types from the original Meta JSON files are otherwise untouched.