Skip to main content
Vulnerability Database/CVE-2026-47679

CVE-2026-47679: GLPI Path Traversal Vulnerability

CVE-2026-47679 is a path traversal vulnerability in GLPI that allows authenticated users to delete arbitrary server files through profile picture updates. This article covers technical details, affected versions, and patches.

Published:

CVE-2026-47679 Overview

GLPI is a free, open-source asset and IT management software package used by organizations to track inventory, tickets, and infrastructure. CVE-2026-47679 is a path traversal vulnerability [CWE-22] in the profile-picture update flow. Any authenticated GLPI user can abuse insufficient path validation to request deletion of attacker-selected files hosted on the server. The flaw affects GLPI versions from 10.0.0 through 10.0.25 and all 11.x releases prior to 11.0.8. The project fixed the issue in GLPI 10.0.26 and 11.0.8.

Critical Impact

An authenticated low-privileged user can delete arbitrary files on the GLPI server, enabling integrity and availability loss across the application and potentially the underlying host.

Affected Products

  • GLPI 10.0.0 through 10.0.25
  • GLPI 11.x releases prior to 11.0.8
  • Fixed in GLPI 10.0.26 and 11.0.8

Discovery Timeline

  • 2026-09-25 - CVE CVE-2026-47679 published to NVD
  • 2026-09-25 - Last updated in NVD database

Technical Details for CVE-2026-47679

Vulnerability Analysis

The vulnerability resides in GLPI's user profile picture update handler in src/User.php. When a user updates their profile picture, the application accepts a _picture input that references a file path on the server. The handler compares the resolved full path against the GLPI temporary directory to confirm the file lives inside the expected upload area. The pre-patch code triggered a warning when the path fell outside GLPI_TMP_DIR but continued processing. Execution then reached file-deletion logic that acted on the attacker-controlled path. A logged-in user could therefore target files anywhere accessible to the GLPI process user.

Root Cause

The root cause is incomplete path validation. The check used str_starts_with($fullpath, realpath(GLPI_TMP_DIR)) to confirm the file resided in the temporary directory. When the check failed, the code only emitted a trigger_error warning rather than aborting the operation. Downstream deletion routines then operated on paths outside the trusted directory, producing an arbitrary file deletion primitive.

Attack Vector

Exploitation requires an authenticated GLPI account with permission to update profile information. The attacker submits a profile-picture update request supplying a _picture value that resolves outside GLPI_TMP_DIR. Because the handler proceeded past the failed boundary check, GLPI issued an unlink against the attacker-chosen path. Suitable targets include configuration files, cached session data, log files, or application assets, which can disrupt availability or facilitate follow-on compromise.

php
// Pre-patch logic in src/User.php - the warning fired but execution continued.
// The fix (commits 54306fa and 78ec583) adds an explicit return to abort processing.
                }
                if (!str_starts_with($fullpath, realpath(GLPI_TMP_DIR))) {
                    trigger_error(sprintf('Invalid picture path `%s`', $input["_picture"]), E_USER_WARNING);
+                    return false;
                }
                if (Document::isImage($fullpath)) {
                    // Unlink old picture (clean on changing format)

Source: GLPI Commit 54306fa and GLPI Commit 78ec583

Detection Methods for CVE-2026-47679

Indicators of Compromise

  • PHP error log entries containing the string Invalid picture path generated by the trigger_error call in src/User.php.
  • Unexpected deletion of files owned by the GLPI web server user, especially outside the GLPI temporary upload directory.
  • Profile update HTTP requests where the _picture parameter contains path traversal sequences such as ../ or absolute paths referencing non-upload locations.

Detection Strategies

  • Review web server access logs for POST requests to the user profile update endpoint and correlate them with filesystem change events on the GLPI host.
  • Enable PHP error logging and alert on repeated E_USER_WARNING entries matching Invalid picture path from GLPI processes.
  • Inspect GLPI audit tables for unusual profile picture update activity from non-administrative accounts.

Monitoring Recommendations

  • Monitor file integrity on GLPI configuration directories, files/_log/, and session storage paths used by the web server account.
  • Collect PHP error logs centrally and generate alerts for Invalid picture path events, which indicate exploitation attempts both pre- and post-patch.
  • Track authenticated session activity in GLPI and flag accounts issuing high volumes of profile update requests.

How to Mitigate CVE-2026-47679

Immediate Actions Required

  • Upgrade GLPI to version 10.0.26 or 11.0.8, which add an explicit return false after the failed path-boundary check.
  • Audit the GLPI server for missing or recently deleted files, particularly configuration, cache, and log files.
  • Rotate any secrets stored in files writable by the GLPI process user if evidence of exploitation is found.

Patch Information

The maintainers released fixes in GLPI Release 10.0.26 and GLPI Release 11.0.8. The code change is tracked in GLPI Commit 54306fa and GLPI Commit 78ec583. Full details appear in GitHub Security Advisory GHSA-x5r8-r6vj-79cw.

Workarounds

  • Restrict access to the GLPI web interface to trusted internal networks or VPN until patching completes.
  • Reduce the filesystem privileges of the GLPI web server user so that it cannot delete files outside the GLPI data directories.
  • Temporarily disable self-service profile updates for non-administrative users where feasible.
bash
# Example: upgrade GLPI to the fixed release and verify version
cd /var/www/glpi
php bin/console glpi:maintenance:enable
# Replace application files with the 10.0.26 or 11.0.8 release archive, then:
php bin/console db:update
php bin/console glpi:maintenance:disable
php bin/console --version

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.