Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/off-by-1-labs/flawed
Strumenti DifensiviAnalisi StaticaScanner di VulnerabilitàAnalisi Dinamica (Sandboxing)Analisi delle VulnerabilitàAnalisi del CodiceFuzzingMachine LearningPaper e RicercaApprendimento e FormazioneSicurezza dell'IA
GitHuboff-by-1-labs/flawed

FLAWED

Artefatti simili a fix con difetti incorporati

Vedi Repository
22551 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
FLAWED

Fix Like Artifacts with Embedded Defects

Un harness di ricerca per misurare quanto bene gli agenti AI correggono le vulnerabilità.

License MIT Python 3.11+ Requires Docker Agents Claude, Codex, Gemini

Avvio rapido · Dataset · Documentazione · Modello di sicurezza · Contribuire


FLAWED estrae un progetto open-source a un commit noto come vulnerabile, fornisce a un agente AI una descrizione del bug e gli chiede di scrivere una patch. L'agente non vede mai la vera correzione upstream.

Ogni patch viene poi validata, verificata e valutata in container isolati, così puoi vedere non solo se il modello ha corretto il bug, ma anche se ne ha introdotti di nuovi lungo il percorso.

Come funziona

root@kitploit:~
flowchart LR
    spec[bug spec] --> clone
    clone["clone<br/>(open net)"] --> generate
    generate["generate<br/>(offline)"] --> validate
    validate["validate<br/>(offline)"] --> ast["ast<br/>(offline)"]
    generate -.->|"patch.diff"| store[(Postgres)]
    validate -.->|"verdict"| store
    ast -.->|"summary"| store
    store --> ui[web UI + notebook]

Ogni fase viene eseguita nel proprio container. Solo clone ha accesso alla rete. Ogni fase successiva è limitata all'API del provider LLM, così gli agenti non possono recuperare suggerimenti o la correzione upstream durante l'esecuzione.

Funzionalità

FunzionalitàCosa ti offre
Campionamento ripetutoUn'esecuzione esegue N iterazioni dello stesso input, così i risultati sono distribuzioni, non aneddoti.
CampagneAnalizza un bug attraverso varianti di patcher e stili di prompt, da un vago "fix this plz" a un advisory completo, e confronta i risultati su una dashboard live.
Valutazione degli esitiOgni patch ricade in uno dei cinque scenari, da S1 (correzione pulita) a S5 (non ha corretto il bug e ha introdotto una nuova vulnerabilità).
Validazione incrociataLe patch vengono rivalutate da altri modelli, e i numeri principali mediano le lenti di auto-validazione e validazione incrociata, così il bias di un singolo giudice non domina.
Rilevamento di imbrogliUn auditor segnala le iterazioni in cui l'agente ha trovato la correzione upstream invece di risolvere il bug da solo.

FLAWED mette a confronto diretto le CLI Claude, Codex e Gemini con gli stessi input.

Avvio rapido

[!WARNING] FLAWED monta il socket Docker (equivalente a root sull'host) ed esegue codice di terze parti non attendibile all'interno dei suoi container di fase. Eseguilo su una macchina di cui ti fidi per sopportare quel carico di lavoro. Vedi docs/security-model.md.

Ti serve Docker, con il socket del daemon accessibile.

root@kitploit:~
# 1. Configure. Writes .env for you (data dir + provider API keys)
./setup.sh

# 2. Bring up the stack (Postgres, API + worker, web UI, notebook)
docker compose up --build

# 3. Open http://127.0.0.1:8080

Poi fai la tua prima esecuzione.

  1. Importa una bug spec. Le spec di esempio sono incluse in bugs/. Trascinane una nella pagina Bug Specs della web UI, oppure usa la CLI.
    root@kitploit:~
    ./scripts/import-all-bugs.sh
    
  2. Avvia un'esecuzione dalla web UI. Scegli la spec, un agente + modello, una variante e un numero di iterazioni. La pagina dell'esecuzione trasmette il progresso in tempo reale.

[!NOTE] La prima esecuzione contro un upstream di grandi dimensioni (ad es. Chromium) è lenta. La fase di validate clona l'intero repo una volta per fare il diff con la vera patch upstream. Il clone viene memorizzato in cache e riutilizzato in seguito.

Configurazione di sviluppo sull'host (senza compose)

Ti servono Docker, Node 20+, pnpm, uv e @devcontainers/cli (npm i -g @devcontainers/cli). Gli utenti Nix possono usare nix-shell per tutto tranne Docker.

root@kitploit:~
make dev                        # uv sync + web deps
docker compose up -d postgres   # FLAWED needs a Postgres to talk to
cp .env.example .env            # points FLAWED_DB_URL at it
uv run flawed init              # builds base images, creates the schema
uv run flawed serve             # API + worker + webapp on port 8080

Per il ciclo di sviluppo web, esegui make web-dev in un secondo terminale. Serve la UI sulla porta 5173 e fa da proxy per /api verso flawed serve.

Un devcontainer isolato per eseguire agenti di coding AI su questo repo in modo sicuro è documentato in .devcontainer/README.md.

Bug specs

Una bug spec è l'unità di input. Contiene un repo, un commit vulnerabile, una descrizione del bug, un reproducer opzionale e un insieme di varianti di prompt che modellano come il bug potrebbe essere realisticamente segnalato (riscontro SAST, report di bug bounty, advisory in embargo, PoC grezzo, …). Le spec sono versionate e immutabili, così il prompt e il verdetto di un'esecuzione storica non cambiano mai silenziosamente.

Il contratto JSON si trova in bugs.schema.json ed è documentato in docs/bug-specs.md. Tutte le spec incluse descrivono vulnerabilità divulgate pubblicamente e corrette upstream.

Archiviazione

Postgres è l'unica fonte di verità. I metadati delle esecuzioni e i byte degli artefatti (patch, verdetti, trascrizioni, log) risiedono nel database, così un deployment è completamente catturato dal suo DB. La directory data/ è scratch transitorio che le fasi montano a runtime.

  • Esegui il backup / ripristino di un intero deployment con scripts/export_dataset.py e scripts/import_dataset.py (disponibili anche dalla web UI).
  • Ricostruisci un albero di artefatti su disco per l'ispezione offline con scripts/export_artifacts.py.
  • Le modifiche allo schema sono gestite con Alembic (uv run alembic upgrade head viene eseguito automaticamente all'avvio).

Dataset

Pubblichiamo dataset pre-costruiti così puoi caricare campagne completate invece di eseguire tutto da solo. Ogni dataset è un .tar.gz di un singolo snapshot completo, ospitato su https://flawed.s3.us-east-1.amazonaws.com.

Tutte le campagne in un unico bundle.

BundleArchivio
Tutte le campagnefull.tar.gz
Archivi per campagna, uno per modello patcher (13)
CampagnaModello patcherDimensioneArchivio
CVE-2026-22738 (Spring AI SpEL injection)claude-opus-4-8515.0 MB.tar.gz
CVE-2026-22738 (Spring AI SpEL injection)gpt-5.5663.9 MB.tar.gz
CVE-2026-31431 (Linux algif_aead)claude-opus-4-81.1 GB.tar.gz
CVE-2026-31431 (Linux algif_aead in-place)gpt-5.5966.9 MB.tar.gz
CVE-2026-34197 (ActiveMQ Jolokia RCE)claude-opus-4-8645.2 MB.tar.gz
CVE-2026-34197 (ActiveMQ Jolokia RCE)gpt-5.5819.0 MB.tar.gz
CVE-2026-45185 (Exim BDAT use-after-free)claude-opus-4-81.1 GB.tar.gz
CVE-2026-45185 (Exim BDAT use-after-free)gpt-5.51.0 GB.tar.gz
CVE-2026-8512 (Chromium fsevents UAF)claude-opus-4-8500.7 MB.tar.gz
CVE-2026-8512 (Chromium fsevents UAF)gpt-5.5342.7 MB.tar.gz
freenginx-26 (Perl SV refcount UAF)gpt-5.5166.4 MB.tar.gz
GHSA-wpqr-6v78-jr5g (Gemini CLI trust model)claude-opus-4-81.2 GB.tar.gz
GHSA-wpqr-6v78-jr5g (Gemini CLI trust model)gpt-5.51.3 GB.tar.gz

Dalla web UI (consigliato)

Snapshots → Import datasets, incolla uno dei link agli archivi qui sopra e clicca Find archives. FLAWED importa un link diretto .tar.gz così com'è e lo decomprime nei tuoi snapshot. Poi ripristinalo dalla lista degli snapshot (il ripristino è un passo separato, confermato esplicitamente).

L'importazione scopre più archivi contemporaneamente solo quando l'URL è un bucket elencabile o una pagina indice di directory. Nessuno dei due casi si applica qui, quindi importa i link uno alla volta.

Manualmente

Scarica un archivio, decomprimilo nella directory degli snapshot (FLAWED_HOST_SNAPSHOT_DIR, o ./flawed-snapshots per impostazione predefinita), e comparirà nella lista degli snapshot pronto per il ripristino.

root@kitploit:~
curl -LO https://flawed.s3.us-east-1.amazonaws.com/compressed/campaigns/full/cve-2026-45185-exim-bdat-uaf_full_gpt-5.5_1782988292.tar.gz
mkdir -p "$FLAWED_HOST_SNAPSHOT_DIR"
tar -xzf cve-2026-45185-exim-bdat-uaf_full_gpt-5.5_1782988292.tar.gz -C "$FLAWED_HOST_SNAPSHOT_DIR"

L'importazione prepara solo il bundle su disco. Il ripristino, che sostituisce il deployment corrente, viene eseguito separatamente dalla pagina degli snapshot.

Documentazione

DocCosa contiene
docs/architecture.mdComponenti, flusso dei dati, layout di archiviazione
docs/pipeline.mdLe fasi, semantica delle iterazioni, layout dei container
docs/security-model.mdPolicy di rete per fase, sandboxing, modello di minaccia
docs/bug-specs.mdContratto di input, composizione dei prompt, versionamento
docs/cli.mdRiferimento comandi flawed + variabili d'ambiente
docs/webapp.mdTour della UI
docs/notebook.mdIntegrazione JupyterLab + il modulo helper flawed

Layout del repository

root@kitploit:~
packages/
  flawed-core/             models, DB schema, settings
  flawed-orchestrator/     run lifecycle, worker pool, devcontainer driver
  flawed-stage-*/          the pipeline stages (clone, generate, validate, …)
  flawed-agent-runner/     runs INSIDE the container (Claude / Codex / Gemini CLIs)
  flawed-api/              FastAPI + SSE + notebook proxy
  flawed-cli/              the `flawed` CLI
apps/web/                  React + Vite + Tailwind webapp
containers/                base image, network lockdown, notebook container
bugs/                      example bug specs
docs/                      documentation (see above)

Sviluppo

AttivitàComando
Sincronizza tutte le dipendenze Python + Nodemake dev
Esegui i testmake test
Lintmake lint
Auto-formattazionemake format
Server di sviluppo web (porta 5173)make web-dev
Smoke test E2Emake e2e

I test richiedono Docker. Avviano il proprio Postgres tramite testcontainers.

Licenza e contributi

FLAWED è rilasciato sotto la MIT License. I contributi sono benvenuti. Vedi CONTRIBUTING.md, e segnala i problemi di sicurezza in privato secondo SECURITY.md.

Scarica lo strumento