Dataset Viewer
Auto-converted to Parquet Duplicate
text
stringlengths
1
87
{
"errors": [],
"warnings": [
"ASB-000391: vulnerable_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000391: secure_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000367: vulnerable_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000367: secure_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000372: vulnerable_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000372: secure_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000133: vulnerable_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000133: secure_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000292: vulnerable_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000292: secure_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000137: vulnerable_code [Swift] unchecked (heuristic: delimiter balance ok)",
"ASB-000137: secure_code [Swift] unchecked (heuristic: delimiter balance ok)",
"ASB-000139: vulnerable_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000139: secure_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000319: vulnerable_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000319: secure_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000222: vulnerable_code [Swift] unchecked (heuristic: delimiter balance ok)",
"ASB-000222: secure_code [Swift] unchecked (heuristic: delimiter balance ok)",
"ASB-000254: vulnerable_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000254: secure_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000288: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000288: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000369: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000369: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000219: vulnerable_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000219: secure_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000390: vulnerable_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000390: secure_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000119: vulnerable_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000119: secure_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000017: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000017: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000196: vulnerable_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000196: secure_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000109: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000109: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000044: vulnerable_code [Swift] unchecked (heuristic: delimiter balance ok)",
"ASB-000044: secure_code [Swift] unchecked (heuristic: delimiter balance ok)",
"ASB-000016: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000016: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000185: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000185: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000051: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000051: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000325: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000325: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000336: vulnerable_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000336: secure_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000159: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000159: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000401: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000401: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000148: vulnerable_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000148: secure_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000404: vulnerable_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000404: secure_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000338: vulnerable_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000338: secure_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000189: vulnerable_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000189: secure_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000331: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000331: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000125: vulnerable_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000125: secure_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000247: vulnerable_code [C#] unchecked (heuristic: delimiter balance ok)",
"ASB-000247: secure_code [C#] unchecked (heuristic: delimiter balance ok)",
"ASB-000024: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000024: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000082: vulnerable_code [C#] unchecked (heuristic: delimiter balance ok)",
"ASB-000082: secure_code [C#] unchecked (heuristic: delimiter balance ok)",
"ASB-000361: vulnerable_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000361: secure_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000384: vulnerable_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000384: secure_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000004: vulnerable_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000004: secure_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000162: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000162: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000358: vulnerable_code [C#] unchecked (heuristic: delimiter balance ok)",
"ASB-000358: secure_code [C#] unchecked (heuristic: delimiter balance ok)",
"ASB-000069: vulnerable_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000069: secure_code [Java] unchecked (heuristic: delimiter balance ok)",
"ASB-000014: vulnerable_code [C#] unchecked (heuristic: delimiter balance ok)",
"ASB-000014: secure_code [C#] unchecked (heuristic: delimiter balance ok)",
"ASB-000202: vulnerable_code [Swift] unchecked (heuristic: delimiter balance ok)",
"ASB-000202: secure_code [Swift] unchecked (heuristic: delimiter balance ok)",
"ASB-000121: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000121: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000281: vulnerable_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000281: secure_code [PHP] unchecked (heuristic: delimiter balance ok)",
"ASB-000093: vulnerable_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000093: secure_code [Kotlin] unchecked (heuristic: delimiter balance ok)",
"ASB-000333: vulnerable_code [C#] unchecked (heuristic: delimiter balance ok)",
"ASB-000333: secure_code [C#] unchecked (heuristic: delimiter balance ok)",
"ASB-000170: vulnerable_code [C#] unchecked (heuristic: delimiter balance ok)",
"ASB-000170: secure_code [C#] unchecked (heuristic: delimiter balance ok)",
"ASB-000212: vulnerable_code [Java] unchecked (heuristic: delimiter balance ok)",
End of preview. Expand in Data Studio

AppSecBench Dataset Card

Dataset Summary

AppSecBench is an original benchmark of 406 vulnerable/secure code pairs spanning 12 programming languages, 18 frameworks, 34 vulnerability classes, and 5 difficulty levels. Each record is a self-contained evaluation case: a vulnerable snippet, its secure counterpart, an exploit sketch, and the "ground truth" a detector/model is expected to produce (CWE, OWASP, severity, CVSS 3.1, explainability, fix, and false-positive/false-negative priors).

The dataset supports measuring whether an LLM or security tool can detect, classify, explain, score severity, recommend a fix, and generate secure code for real-world application-security weaknesses — including modern AI/LLM risks (prompt injection, RAG, MCP, agent security) and infrastructure misconfigurations.

Data Files

dataset/
  train.jsonl       (434 records)
  validation.jsonl  (69 records)
  test.jsonl        (69 records)

Supported Tasks

Task Input Expected output
Vulnerability detection vulnerable_code vulnerability flagged + location
CWE/OWASP mapping code expected_cwe / expected_owasp
Severity estimation code expected_severity + expected_cvss_score
Exploit explanation code exploitability_explanation
Secure fix / secure code gen code expected_secure_code
False-positive / false-negative analysis code expected_false_positive_probability / expected_false_negative_probability

Languages & Frameworks

Python, Java, JavaScript, TypeScript, Go, Rust, PHP, C#, Kotlin, Swift, C, C++ (code); plus Infrastructure-as-Code in YAML / Dockerfile / Bash. Frameworks: Flask, FastAPI, Django, Spring Boot, Express, NestJS, Next.js, Laravel, ASP.NET Core, Gin, Echo, Fiber, Android, iOS.

Data Fields

Each record is a JSON object (see README.md for the field list). metadata carries difficulty, category, cwe, owasp, owasp_api, owasp_llm, cvss_vector, cvss_score, source, license, and schema_version.

Distribution (v1.1.0)

  • 17 languages, 18 frameworks, 27 unique CWEs, 9 unique OWASP Top-10 (2021) classes, 34 vulnerability types.
  • Difficulty: Beginner, Intermediate, Advanced, Expert, Real-world enterprise.
  • Source type: synthetic for all records (original, non-derived).
  • Full per-dimension counts: statistics/summary.txt and statistics/statistics.md.

Methodology

Records are generated deterministically (scripts/build.py, seed=42) from an original catalog (scripts/vuln_catalog.py) and per-language generators (scripts/generators.py). CVSS 3.1 base scores are computed from the official FIRST formulas (scripts/cvss.py). See docs/methodology.md.

Quality & Validation

An automated QA suite (scripts/validate.py) enforces: JSON validity, no duplicate IDs, required field presence, enum conformance, CWE/OWASP/CVSS format + recomputation consistency, label consistency vs the catalog, vulnerable_code != secure_code, reference well-formedness, and real syntax/compile checks. Result for v1.1.0: PASS (0 errors) over 572 records. Report: validation/validation_report.md.

Intended Uses

  • Evaluating and comparing LLMs on secure-code understanding.
  • Benchmarking SAST / SCA / secret-scanning / IaC-scanning tools.
  • Training and fine-tuning secure-coding assistants (with proper licensing).
  • Academic reproducible experiments in application security.

Limitations & Out-of-Scope

  • Snippets are minimal/synthetic, not full applications; they isolate one weakness at a time.
  • Some languages are checked with heuristic balance (not compiled) when no toolchain is present.
  • The benchmark measures recognition/explanation, not end-to-end offensive capability.
  • Not a substitute for manual security review or threat modeling.

See docs/LIMITATIONS.md and docs/INTENDED_USES.md.

Ethical Considerations & Responsible Disclosure

docs/ETHICAL_CONSIDERATIONS.md and docs/RESPONSIBLE_DISCLOSURE.md. The vulnerable code is educational, synthetic, and non-weaponized.

Licensing

MIT. Code snippets are original and provided for defensive use.

Citation (BibTeX)

@dataset{tasdelen2026appsecbench,
  title  = {AppSecBench: A Comprehensive Benchmark Dataset for Application Security Evaluation, Secure Code Review, AI Security Research, LLM Evaluation, and Secure Software Engineering},
  author = {Taşdelen, İsmail},
  year   = {2026},
  version= {1.1.0},
  publisher = {Hugging Face}
}
Downloads last month
281