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/infosec-db/cve-2026-60004-gitea-validator
RicognizioneScanner di VulnerabilitàExploitSicurezza WebPenetration Testing
GitHubinfosec-db/cve-2026-60004-gitea-validator

CVE-2026-60004-Gitea-Validator

🫖 Strumento di scoperta correlata ai contratti e validazione autorizzata per Gitea CVE-2026-60004

Vedi Repository

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
11h 25m faNon ancora revisionato

🫖 Validatore CVE-2026-60004 per Gitea

Uno strumento autonomo di scoperta, valutazione e validazione correlata al contratto per la vulnerabilità di esecuzione remota di codice nel Git-hook diffpatch di Gitea.

Python 3.10+ License: MIT CVE

scanner.py offre a penetration tester, difensori e ricercatori di sicurezza un unico strumento senza dipendenze per:

  • 🔎 Scoperta passiva di Gitea tramite l'indice esistente di LeakIX
  • 🧭 Ricognizione di rotte pubbliche e Swagger su singolo target
  • 🩺 Valutazione non distruttiva della versione
  • 🧪 Validazione proof-of-concept autenticata e limitata
  • 🧾 Evidenze JSON correlate al contratto e cattura dell'output dei comandi
  • 🛡️ Controlli su singolo target, gate di versione, file di output privati e gestione delle credenziali same-origin

⚠️ Disclaimer legale ed etico

Questo progetto è fornito solo per test di sicurezza autorizzati, validazione difensiva, ricerca e istruzione. Esegui le modalità attive esclusivamente su sistemi di tua proprietà o per i quali hai esplicita autorizzazione scritta. Sei responsabile del rispetto di tutte le leggi, i contratti, le regole di ingaggio e i requisiti di divulgazione applicabili.

Gli autori e i contributori non sono responsabili di uso improprio, danni, interruzioni di servizio, perdita di dati o conseguenze legali. Il PoC attivo esegue un comando come utente del sistema operativo di Gitea e modifica lo stato del server creando un repository privato. Trattalo come qualsiasi altro strumento di validazione RCE.

🧠 Riepilogo della vulnerabilità

CVE-2026-60004 colpisce il flusso di lavoro diffpatch dei repository di Gitea. Un utente con permessi di scrittura sul repository può inviare contenuto di patch controllato che installa un Git hook in un clone temporaneo bare condiviso. Applicando la patch modificata due volte si innesca una collisione add/add e si fa eseguire l'hook come account di servizio di Gitea.

Forgejo e altri fork non sono automaticamente classificati come vulnerabili. La loro implementazione deve essere revisionata in modo indipendente.

✨ Cosa fa ogni modalità

Le modalità attive non accettano elenchi di target o wildcard.

📦 Requisiti

  • Python 3.10 o successivo
  • Git disponibile in PATH
  • Accesso di rete al target Gitea esplicitamente selezionato
  • Credenziali Gitea valide, o auto-registrazione esplicitamente approvata
  • Un riferimento scritto di autorizzazione/contratto per i test attivi
  • Opzionale: una chiave API LeakIX per discover

Lo scanner usa solo la libreria standard di Python. Non è richiesto alcun pip install.

🚀 Installazione

root@kitploit:~
git clone https://github.com/InfoSec-DB/CVE-2026-60004-Gitea-Validator.git
cd CVE-2026-60004-Gitea-Validator
python3 scanner.py --help

🩺 Inizia con i controlli non distruttivi

Controlla la versione riportata

root@kitploit:~
python3 scanner.py verify \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --output evidence/version.json

Inventaria le rotte pubbliche e i metadati Swagger

root@kitploit:~
python3 scanner.py recon \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --output evidence/recon.json

Il rilevamento della versione è un segnale di valutazione, non una prova di sfruttabilità. Patch backportate, build personalizzate, reverse proxy e fork possono richiedere una revisione manuale.

🧪 Conferma attiva autorizzata

Account di test approvato esistente

Tieni la password fuori dalla cronologia della shell inserendola nell'ambiente per il comando:

root@kitploit:~
GITEA_PASSWORD='replace-with-approved-test-password' \
python3 scanner.py confirm \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --username audit-user \
  --execute-poc \
  --write-client-marker \
  --output evidence/confirmation.json

A meno che non venga fornito --yes-i-am-authorized per l'automazione, confirm ti chiede di digitare la frase di conferma legata al contratto. Il comando remoto predefinito è id.

Auto-registrazione usa e getta

Usa questa opzione solo quando la creazione di account è consentita dalle regole di ingaggio:

root@kitploit:~
python3 scanner.py confirm \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --register-test-account \
  --credential-log evidence/credentials.txt \
  --execute-poc \
  --write-client-marker \
  --output evidence/confirmation.json

La password è memorizzata solo nel log delle credenziali privato, non duplicata nelle evidenze JSON o nel pannello dei risultati del terminale.

Profilo di test con un solo comando

root@kitploit:~
python3 scanner.py test \
  https://gitea.example \
  --contract-number ENG-2026-001

🚨 test è un comando di comodità attivo. Su un target vulnerabile con registrazione abilitata, crea automaticamente un account e un repository privato, scrive il marcatore del contratto, esegue id e salva i risultati in afterdark-results/. Non ha intenzionalmente alcun prompt interattivo aggiuntivo, quindi invocarlo costituisce l'accettazione dell'autorizzazione.

Comando personalizzato

Per una validazione strettamente limitata ed esplicitamente approvata, confirm e test accettano --cmd. Preferisci il profilo predefinito id quando è sufficiente.

root@kitploit:~
GITEA_PASSWORD='replace-with-approved-test-password' \
python3 scanner.py confirm \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --username audit-user \
  --execute-poc \
  --cmd 'uname -a' \
  --output evidence/confirmation.json

🌐 Scoperta passiva LeakIX

root@kitploit:~
export LEAKIX_API_KEY='replace-with-your-key'
python3 scanner.py discover \
  --method app \
  --pages 3 \
  --output evidence/leakix.json

Per ispezionare i record LeakIX di un host noto senza contattare quell'host:

root@kitploit:~
python3 scanner.py discover \
  --method host \
  --target gitea.example \
  --pages 1 \
  --output evidence/leakix-host.json

I risultati della scoperta sono indizi, non autorizzazione a scansionare o sfruttare i sistemi elencati.

🔬 Come funziona il PoC integrato

  1. Conferma che il prodotto/versione riportato supera il gate dei test attivi.
  2. Autentica con un account approvato o crea un account usa e getta quando esplicitamente richiesto.
  3. Crea un repository privato con nome univoco inizializzato con un branch predefinito.
  4. Costruisce una patch che aggiunge un file eseguibile hooks/post-index-change.
  5. Invia la patch due volte all'endpoint API diffpatch del repository.
  6. L'hook esegue il comando selezionato e scrive il suo output combinato negli oggetti Git.
  7. Un client Git temporaneo recupera il riferimento di output univoco.
  8. Lo scanner scrive evidenze correlate al contratto usando file privati 0600 e rifiuta di sovrascrivere evidenze esistenti.

I reindirizzamenti HTTP autenticati sono limitati all'origine del target selezionato. Il recupero dell'output Git disabilita anche i reindirizzamenti mentre l'header di autorizzazione è attivo.

🧾 Evidenze e gestione dei dati sensibili

Le esecuzioni attive possono produrre:

  • confirmation.json — timestamp, target, nome account, valutazione versione, codice di ritorno e output catturato
  • confirmation.command-output.txt — output completo del comando remoto
  • credentials.txt — password generata per l'account usa e getta, quando richiesta
  • contenuto di embedded-result.txt preservato nelle evidenze JSON

Questi file possono contenere dati sensibili dell'engagement. Sono ignorati dal .gitignore incluso, creati con modalità 0600 e dovrebbero essere crittografati a riposo secondo la tua policy di gestione delle evidenze.

🧹 Checklist di pulizia

Lo strumento evita deliberatamente la cancellazione automatica affinché le evidenze rimangano disponibili per la revisione. Dopo il test, un amministratore del target dovrebbe:

  • Eliminare l'account audit-* generato, se creato
  • Eliminare il repository privato afterdark-* generato
  • Rimuovere il marcatore opzionale /tmp/gitea-validation-*/client.txt
  • Archiviare o eliminare in modo sicuro credenziali ed evidenze locali
  • Aggiornare Gitea alla versione 1.27.1 o successiva
  • Ripetere solo la validazione minima sicura necessaria per confermare la remediation

L'esecuzione riuscita del PoC dimostra l'esecuzione di comandi come account di servizio di Gitea. Non prova da sola accesso root, persistenza, movimento laterale o compromissione dell'host sottostante.

🛡️ Controlli di sicurezza

  • Solo URL esatto su singolo target; nessun supporto per wildcard o file di target
  • Numero di contratto incluso nello User-Agent e nel marcatore opzionale
  • Gate di versione attivo blocca le release note già corrette
  • Comando predefinito limitato a id o whoami
  • Interruttore esplicito --execute-poc per confirm
  • Auto-registrazione opt-in e saltata quando disabilitata
  • Applicazione dei reindirizzamenti same-origin per le richieste HTTP autenticate
  • Reindirizzamenti Git disabilitati durante il recupero dell'output con credenziali
  • Credenziali passate al processo figlio in memoria/ambiente, poi oscurate dall'output catturato
  • File di evidenza privati con creazione esclusiva; i file esistenti non vengono mai sovrascritti
  • Timeout di 180 secondi per il processo figlio e cattura dell'output limitata

✅ Esegui i test

I test inclusi sono locali e non effettuano richieste di rete:

root@kitploit:~
python3 -m unittest discover -s tests -v

🤝 Contributi

Sono benvenuti miglioramenti responsabili, in particolare correzioni di compatibilità, riduzione dei falsi positivi, miglioramenti della qualità delle evidenze e flussi di pulizia più sicuri. Non inviare dettagli reali di target, credenziali, evidenze private o payload weaponizzati.

Per un problema di sicurezza in questo strumento stesso, segui SECURITY.md.

📚 Riferimenti e crediti

  • Advisory ufficiale Gitea: GHSA-rcr6-4jqh-j84m
  • Release di Gitea
  • Reporter CVE accreditato dall'advisory upstream: NightRang3r
  • Validatore mantenuto dal AfterDark Security Research Group

Realizzato per ricercatori attenti che credono che un buon PoC debba essere riproducibile, attribuibile e noioso da ripulire. 🛡️

Scarica lo strumento
ElementoDettaglio
ProdottoGitea
Versioni interessate>= 1.17.0, < 1.27.1
Versione corretta1.27.1
ImpattoEsecuzione remota di comandi come utente OS di Gitea
Accesso richiestoPermessi di scrittura sul repository; la registrazione aperta può consentire a un attaccante di crearlo
AdvisoryGHSA-rcr6-4jqh-j84m
ModalitàComportamento di reteModifica lo stato del target?Scopo
discoverInterroga solo LeakIXNoCerca in un indice di terze parti esistente; non contatta gli host scoperti
reconUn solo target esattoNoInventaria le rotte pubbliche fisse e il documento Swagger pubblicato dal target
verifyUn solo target esattoNoLegge /api/v1/version e classifica la versione di Gitea riportata
testUn solo target esattoSìFlusso di comodità: gate di versione, controllo registrazione, account usa e getta, marcatore, id ed evidenze
confirmUn solo target esattoSìConferma controllata con un account approvato o registrazione usa e getta esplicita