Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cve-bench — Ein Benchmark zur Bewertung von KI-Agenten beim Beheben von realen Sicherheitsschwachstellen. | Kitploit
Tools/GitHubGitHub/giovannigatti/cve-bench
Statische AnalyseDynamische Analyse (Sandboxing)SchwachstellenanalyseCode-AnalysePenetrationstestsDevSecOpsMaschinelles LernenLernen & BildungKI-Sicherheit
GitHubgiovannigatti/cve-bench

cve-bench

Ein Benchmark zur Bewertung von KI-Agenten beim Beheben von realen Sicherheitsschwachstellen.

14vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen

CVE-Bench

Blog Harness Coverage

Ein Benchmark zur Bewertung von LLM-Agenten bei der Behebung realer Sicherheitslücken. Die Agenten laufen in sandboxed Docker-Containern und werden anhand des Sicherheitstestsuites des Maintainers bewertet.


Anforderungen

  • Python 3.12+
  • Docker
  • OPENAI_API_KEY, ANTHROPIC_API_KEY und/oder POOLSIDE_API_KEY in Ihrer Umgebung (oder einer .env-Datei)

Abhängigkeiten installieren:

root@kitploit:~
pip install poetry
poetry install

Aufgabenstruktur

Jede Aufgabe befindet sich unter tasks/{CVE-ID}/ und enthält:

root@kitploit:~
tasks/CVE-2026-33175/
├── meta.json           # GHSA ID, CWE, CVSS, repo URL, vulnerable and fixed SHAs
├── setup.sh            # Clones repo, checks out the vulnerable SHA, installs dependencies
├── run_tests.sh        # Injects test_security.py into the repo and runs pytest
├── test_security.py    # Security tests (xfail on vulnerable code, pass on the fix)
├── advisory.md         # Full GHSA advisory (richest prompt)
├── diagnose.md         # Behavioural description only — no file or function names
├── locate.md           # File and function only — no description of the flaw
└── Dockerfile          # Optional; only present when the task needs extra system deps

meta.json Beispiel:

root@kitploit:~
{
  "ghsa_id": "GHSA-xxxx-xxxx-xxxx",
  "cwe": ["CWE-287"],
  "cvss": 9.1,
  "repo": {
    "url": "https://github.com/org/project",
    "vulnerable_sha": "abc123^",
    "fixed_sha": "abc123"
  }
}

setup.sh ist idempotent und kann sicher erneut ausgeführt werden. test_security.py wird während des Laufs vor dem Agenten verborgen und erst nach Abschluss des Agenten injiziert.


Erstellen von Docker-Images

root@kitploit:~
python build.py

Dies erstellt:

  1. Ein gemeinsames Basis-Image (cve-bench/base) — Python 3.12, git, poetry und die Testumgebung.
  2. Ein Aufgaben-Image pro Aufgabe (cve-bench/{task-id}) — erweitert das Basis-Image, kopiert das Aufgabenverzeichnis und führt setup.sh aus.

Optionen:

root@kitploit:~
# Nur bestimmte Aufgaben erstellen
python build.py --task CVE-2026-33175 CVE-2026-42561

# Basis-Image nicht neu erstellen
python build.py --skip-base

Aufgaben-Images werden parallel erstellt (bis zu 5 Worker). Wenn ein Aufgabenverzeichnis eine Dockerfile enthält, wird diese anstelle der generischen docker/task.Dockerfile verwendet.


Validieren von Aufgaben

Vor dem Ausführen des Benchmarks überprüfen, ob die Sicherheitstests jeder Aufgabe korrekt zwischen verwundbarem und behobenem Code unterscheiden:

root@kitploit:~
python validate.py

Für jede Aufgabe führt dies drei Phasen im Aufgaben-Container aus:

PhaseWas geprüft wird
vulnerableSicherheitstests müssen auf dem verwundbaren SHA fehlschlagen (oder xfail erzeugen)
fixedSicherheitstests müssen auf dem behobenen SHA bestehen
regressionNicht-Sicherheitstests müssen auf dem behobenen SHA bestehen

Ergebnisse werden als Live-Tabelle angezeigt. Exit-Code ist 1, wenn eine Aufgabe in einer Phase fehlschlägt.

root@kitploit:~
# Nur bestimmte Aufgaben validieren
python validate.py --task CVE-2026-33175 GHSA-r758-8hxw-4845

# Images vor der Validierung nicht neu erstellen
python validate.py --skip-build

Ausführen des Benchmarks

root@kitploit:~
python benchmark.py --model openai:gpt-5.5 poolside:laguna-m.1 --prompt-type advisory

Optionen:

Unterstützte Anbieter:

Jeder Durchlauf erzeugt eine JSON-Ergebnisdatei in results/:

root@kitploit:~
results/{task-id}__{provider}:{model}__{prompt-type}.json

Vorhandene Ergebnisdateien werden automatisch übersprungen. Läufe werden parallel über Aufgaben hinweg ausgeführt (bis zu 20 Worker), mit Ratenbegrenzung pro Anbieter (ein aktiver Request pro Anbieter gleichzeitig), um 429-Fehler zu vermeiden.


Ergebnisformat

Jede Ergebnisdatei ist ein JSON-Objekt mit der folgenden Struktur:

root@kitploit:~
{
  "cve_id": "CVE-2026-33175",
  "model_id": "openai:gpt-5.5",
  "prompt_type": "advisory",
  "timestamp": "2026-05-01T12:00:00",
  "model_duration_s": 142.3,
  "test_duration_s": 8.1,
  "turns": [
    {
      "tool_calls_and_results": [...],
      "input_tokens": 12400,
      "output_tokens": 310
    }
  ],
  "tests": [
    {
      "kind": "security",
      "name": "test_email_verified",
      "outcome": "passed"
    }
  ]
}

tests[].kind ist entweder "security" (aus test_security.py) oder "regression" (aus dem eigenen Testsuite des Projekts). Ein Lauf gilt nur dann als gelöst, wenn alle Sicherheitstests bestanden und keine Regressionstests fehlgeschlagen sind.


Generieren von Diagrammen

root@kitploit:~
python generate_charts.py

Liest alle Ergebnisdateien aus results/ und schreibt SVG-Diagramme nach docs/images/charts/. Benötigt Chrome/Chromium für den Headless-Export von Bokeh (über chromedriver-binary).


Harness-Architektur

Die Testumgebung (Harness) läuft in jedem Docker-Container als python -m harness.run. Sie ist verantwortlich für das Laden des Prompts, die Ausführung der agentischen Schleife und das Schreiben der Ergebnisdatei.

root@kitploit:~
src/harness/
├── run.py                  # Einstiegspunkt; parst Argumente, verdrahtet Komponenten, ruft BenchmarkRunner auf
├── client/
│   ├── factory.py          # Parst provider:model-id, gibt den passenden LLMClient zurück
│   ├── _client.py          # Abstrakter LLMClient, ToolCall- und LLMTurn-Dataclasses
│   ├── anthropic.py        # Anthropic SDK-Integration
│   └── oai.py              # OpenAI SDK-Integration (auch für Poolside verwendet)
├── agent/
│   ├── core.py             # Agentische Schleife: ruft Client auf, verteilt Tool-Aufrufe, verknüpft Nachrichten
│   └── runner.py           # Wrappt Agent, verfolgt Timing und Turn-Liste
├── bench/
│   ├── runner.py           # Orchestriert setup → agent → Sicherheitstests → Regressionstests
│   ├── result.py           # BenchmarkResult- und TestResult-Dataclasses, JSON-Serialisierung
│   └── repository.py       # Schreibt Ergebnisdateien auf die Festplatte
└── task/
    ├── tools.py             # Tool-Implementierungen: ListFiles, ReadFile, SearchInFiles,
    │                        #   EditFile, CreateFile, DeleteFile, RunPytest
    └── prompt_loader.py     # Liest advisory.md / diagnose.md / locate.md

Dem Agenten zur Verfügung stehende Tools:

Alle Tools validieren Pfade relativ zum Repository-Stammverzeichnis, um Verzeichnis-Traversierung zu verhindern. Der Agent hat keinen Zugriff auf test_security.py oder auf die Git-Historie.

Die Agentenschleife läuft maximal 20 Schritte (Turns). Wenn die Obergrenze erreicht wird, wird der Lauf so aufgezeichnet, wie er ist, und die Sicherheitstests werden trotzdem gegen den vom Agenten hinterlassenen Repository-Zustand ausgeführt.


Hinzufügen einer Aufgabe

  1. tasks/{CVE-ID}/ erstellen und meta.json, setup.sh, run_tests.sh, test_security.py, advisory.md, diagnose.md, locate.md hinzufügen.
  2. setup.sh und run_tests.sh ausführbar machen (chmod +x).
  3. Validieren: python validate.py --task {CVE-ID}.
  4. Erstellen: python build.py --task {CVE-ID}.

Offenlegung

Diese Arbeit wurde als unabhängige Forschung durchgeführt. Zum Zeitpunkt der Durchführung der Forschung und der Erstellung dieses Repositorys hatte ich keine institutionelle Zugehörigkeit.


Zitieren dieser Arbeit

root@kitploit:~
@misc{gattipinheiro2026cvebench,
  author       = {Gatti Pinheiro, Giovanni},
  title        = {{CVE-Bench}: Benchmarking {LLM} Agents on Real-World Security Vulnerability Fixes},
  year         = {2026},
  howpublished = {\url{https://giovannigatti.github.io/cve-bench}},
  note         = {Code available at \url{https://github.com/GiovanniGatti/cve-bench}}
}

Lizenz

MIT – siehe LICENSE.

Tool herunterladen
FlagBeschreibungStandard
--modelEin oder mehrere provider:model-id-Stringsalle konfigurierten Modelle
--prompt-typeadvisory, diagnose, locate oder eine beliebige Kombinationalle drei
--taskEin oder mehrere Aufgaben-IDsalle Aufgaben
--cleanVorhandene Ergebnisse für den ausgewählten Bereich vor dem Start löschenaus
AnbieterFormatUmgebungsvariable für API-Key
OpenAIopenai:gpt-5.5OPENAI_API_KEY
Anthropicanthropic:claude-haiku-4-5-20251001ANTHROPIC_API_KEY
Poolsidepoolside:laguna-m.1POOLSIDE_API_KEY
ToolBeschreibung
list_filesDateien und Verzeichnisse im Repository auflisten
read_fileDateiinhalte lesen, optional einen Zeilenbereich
search_in_filesRegex-Suche über die Codebasis mit optionalem Datei-Glob
edit_fileEinen Zeilenbereich in einer vorhandenen Datei ersetzen
create_fileEine neue Datei erstellen
delete_fileEine Datei löschen
run_pytestDas Testsuite des Projekts ausführen; gibt einen JSON-Bericht zurück