The SentinelOne Annual Threat Report - A Defenders Guide from the FrontlinesThe SentinelOne Annual Threat ReportGet the Report
Experiencing a Breach?Blog
Get StartedContact Us
SentinelOne
  • Platform
    Platform Overview
    • Singularity Platform
      Welcome to Integrated Enterprise Security
    • AI for Security
      Leading the Way in AI-Powered Security Solutions
    • Securing AI
      Accelerate AI Adoption with Secure AI Tools, Apps, and Agents.
    • How It Works
      The Singularity XDR Difference
    • Singularity Marketplace
      One-Click Integrations to Unlock the Power of XDR
    • Pricing & Packaging
      Comparisons and Guidance at a Glance
    Data & AI
    • Purple AI
      Accelerate SecOps with Generative AI
    • Singularity Hyperautomation
      Easily Automate Security Processes
    • AI-SIEM
      The AI SIEM for the Autonomous SOC
    • AI Data Pipelines
      Security Data Pipeline for AI SIEM and Data Optimization
    • Singularity Data Lake
      AI-Powered, Unified Data Lake
    • Singularity Data Lake for Log Analytics
      Seamlessly Ingest Data from On-Prem, Cloud or Hybrid Environments
    Endpoint Security
    • Singularity Endpoint
      Autonomous Prevention, Detection, and Response
    • Singularity XDR
      Native & Open Protection, Detection, and Response
    • Singularity RemoteOps Forensics
      Orchestrate Forensics at Scale
    • Singularity Threat Intelligence
      Comprehensive Adversary Intelligence
    • Singularity Vulnerability Management
      Application & OS Vulnerability Management
    • Singularity Identity
      Identity Threat Detection and Response
    Cloud Security
    • Singularity Cloud Security
      Block Attacks with an AI-Powered CNAPP
    • Singularity Cloud Native Security
      Secure Cloud and Development Resources
    • Singularity Cloud Workload Security
      Real-Time Cloud Workload Protection Platform
    • Singularity Cloud Data Security
      AI-Powered Threat Detection for Cloud Storage
    • Singularity Cloud Security Posture Management
      Detect and Remediate Cloud Misconfigurations
    Securing AI
    • Prompt Security
      Secure AI Tools Across Your Enterprise
  • Why SentinelOne?
    Why SentinelOne?
    • Why SentinelOne?
      Cybersecurity Built for What’s Next
    • Our Customers
      Trusted by the World’s Leading Enterprises
    • Industry Recognition
      Tested and Proven by the Experts
    • About Us
      The Industry Leader in Autonomous Cybersecurity
    Compare SentinelOne
    • Arctic Wolf
    • Broadcom
    • CrowdStrike
    • Cybereason
    • Microsoft
    • Palo Alto Networks
    • Sophos
    • Splunk
    • Trellix
    • Trend Micro
    • Wiz
    Verticals
    • Energy
    • Federal Government
    • Finance
    • Healthcare
    • Higher Education
    • K-12 Education
    • Manufacturing
    • Retail
    • State and Local Government
  • Services
    Managed Services
    • Managed Services Overview
      Wayfinder Threat Detection & Response
    • Threat Hunting
      World-Class Expertise and Threat Intelligence
    • Managed Detection & Response
      24/7/365 Expert MDR Across Your Entire Environment
    • Incident Readiness & Response
      DFIR, Breach Readiness, & Compromise Assessments
    Support, Deployment, & Health
    • Technical Account Management
      Customer Success with Personalized Service
    • SentinelOne GO
      Guided Onboarding & Deployment Advisory
    • SentinelOne University
      Live and On-Demand Training
    • Services Overview
      Comprehensive Solutions for Seamless Security Operations
    • SentinelOne Community
      Community Login
  • Partners
    Our Network
    • MSSP Partners
      Succeed Faster with SentinelOne
    • Singularity Marketplace
      Extend the Power of S1 Technology
    • Cyber Risk Partners
      Enlist Pro Response and Advisory Teams
    • Technology Alliances
      Integrated, Enterprise-Scale Solutions
    • SentinelOne for AWS
      Hosted in AWS Regions Around the World
    • Channel Partners
      Deliver the Right Solutions, Together
    • SentinelOne for Google Cloud
      Unified, Autonomous Security Giving Defenders the Advantage at Global Scale
    • Partner Locator
      Your Go-to Source for Our Top Partners in Your Region
    Partner Portal→
  • Resources
    Resource Center
    • Case Studies
    • Data Sheets
    • eBooks
    • Reports
    • Videos
    • Webinars
    • Whitepapers
    • Events
    View All Resources→
    Blog
    • Feature Spotlight
    • For CISO/CIO
    • From the Front Lines
    • Identity
    • Cloud
    • macOS
    • SentinelOne Blog
    Blog→
    Tech Resources
    • SentinelLABS
    • Ransomware Anthology
    • Cybersecurity 101
  • About
    About SentinelOne
    • About SentinelOne
      The Industry Leader in Cybersecurity
    • Investor Relations
      Financial Information & Events
    • SentinelLABS
      Threat Research for the Modern Threat Hunter
    • Careers
      The Latest Job Opportunities
    • Press & News
      Company Announcements
    • Cybersecurity Blog
      The Latest Cybersecurity Threats, News, & More
    • FAQ
      Get Answers to Our Most Frequently Asked Questions
    • DataSet
      The Live Data Platform
    • S Foundation
      Securing a Safer Future for All
    • S Ventures
      Investing in the Next Generation of Security, Data and AI
  • Pricing
Get StartedContact Us
CVE Vulnerability Database
Vulnerability Database/CVE-2026-31939

CVE-2026-31939: Chamilo LMS Path Traversal Vulnerability

CVE-2026-31939 is a path traversal flaw in Chamilo LMS that enables arbitrary file deletion through unsanitized user input. This article covers the technical details, affected versions prior to 1.11.38, and mitigation.

Published: April 17, 2026

CVE-2026-31939 Overview

CVE-2026-31939 is a path traversal vulnerability affecting Chamilo LMS, an open-source learning management system. The vulnerability exists in the main/exercise/savescores.php file, where user input from $_REQUEST['test'] is concatenated directly into a filesystem path without proper canonicalization or traversal checks. This flaw allows authenticated attackers to delete arbitrary files on the server by manipulating the test parameter with directory traversal sequences.

Critical Impact

Authenticated attackers can exploit this path traversal vulnerability to delete arbitrary files on the server, potentially causing data loss, service disruption, or enabling further attacks by removing security controls or configuration files.

Affected Products

  • Chamilo LMS versions prior to 1.11.38
  • HotPotatoes exercise module in affected Chamilo LMS versions
  • Installations using the savescores.php and exercise.php endpoints

Discovery Timeline

  • 2026-04-10 - CVE CVE-2026-31939 published to NVD
  • 2026-04-13 - Last updated in NVD database

Technical Details for CVE-2026-31939

Vulnerability Analysis

This vulnerability is classified as CWE-22 (Improper Limitation of a Pathname to a Restricted Directory), commonly known as Path Traversal or Directory Traversal. The flaw occurs in the HotPotatoes exercise scoring functionality within Chamilo LMS, specifically in the main/exercise/savescores.php file.

The vulnerable code directly concatenates user-supplied input from the $_REQUEST['test'] parameter into a filesystem path that is subsequently passed to a file deletion function (my_delete()). Without proper validation or path canonicalization, an attacker can inject directory traversal sequences (such as ../) to escape the intended document directory and target arbitrary files on the server.

The impact includes potential deletion of critical system files, configuration files, user data, or security controls. An attacker could leverage this to cause denial of service, remove audit logs, or set up conditions for further exploitation.

Root Cause

The root cause is the direct concatenation of untrusted user input ($_REQUEST['test']) into a filesystem path without implementing path canonicalization, allowlist validation, or traversal sequence filtering. The application constructs a file path by combining the document path with user input and a user ID suffix, then passes this to the my_delete() function without verifying that the resulting path remains within the intended directory boundaries.

Attack Vector

The attack is network-based and requires low-privilege authentication to the Chamilo LMS platform. An authenticated user can craft a malicious request to the savescores.php endpoint with a specially crafted test parameter containing path traversal sequences. For example, by submitting test=/../../../etc/target (adjusted for the specific server configuration), the attacker can manipulate the file deletion path to target files outside the intended document directory.

The following code shows the security patch applied by the Chamilo development team:

php
$this_section = SECTION_COURSES;
$documentPath = api_get_path(SYS_COURSE_PATH).$courseInfo['path']."/document";

-$test = $_REQUEST['test'];
+$test = $_REQUEST['test'] ?? '';
$full_file_path = $documentPath.$test;
+$fileToDelete = $full_file_path.$_user['user_id'].".t.html";

-my_delete($full_file_path.$_user['user_id'].".t.html");
+if (!Security::check_abs_path($fileToDelete, $documentPath.'/')) {
+    api_not_allowed(true);
+}
+
+my_delete($fileToDelete);

$TABLETRACK_HOTPOTATOES = Database::get_main_table(TABLE_STATISTIC_TRACK_E_HOTPOTATOES);
$TABLE_LP_ITEM_VIEW = Database::get_course_table(TABLE_LP_ITEM_VIEW);

-$score = $_REQUEST['score'];
+$score = isset($_REQUEST['score']) ? Security::remove_XSS($_REQUEST['score']) : '';
$origin = api_get_origin();
$learnpath_item_id = intval($_REQUEST['learnpath_item_id']);
$lpViewId = isset($_REQUEST['lp_view_id']) ? intval($_REQUEST['lp_view_id']) : null;

Source: GitHub Commit Update

A similar fix was applied in main/exercise/exercise.php:

php
                    // Teacher change exercise
                    break;
                }
+
+                // Security: reject path traversal attempts (CWE-22)
+                if (!Security::check_abs_path($documentPath.$file, $documentPath.'/')) {
+                    api_not_allowed(true);
+                }
+
                // deletes an exercise
                $imgparams = [];
                $imgcount = 0;

Source: GitHub Commit Update

Detection Methods for CVE-2026-31939

Indicators of Compromise

  • HTTP requests to /main/exercise/savescores.php containing path traversal sequences such as ../, ..%2f, or URL-encoded variants in the test parameter
  • Unexpected file deletions in system directories or outside the Chamilo document paths
  • Web server access logs showing suspicious requests with traversal patterns targeting exercise endpoints
  • Audit log entries indicating file operations on paths outside expected course document directories

Detection Strategies

  • Implement web application firewall (WAF) rules to detect and block requests containing path traversal sequences in query parameters
  • Monitor HTTP request logs for patterns containing .., %2e%2e, or other encoded traversal attempts targeting Chamilo exercise endpoints
  • Deploy file integrity monitoring (FIM) on critical system and application files to detect unauthorized deletions
  • Configure intrusion detection systems to alert on anomalous file deletion events outside normal application behavior

Monitoring Recommendations

  • Enable detailed logging for the Chamilo LMS application, particularly for file operations and the exercise module
  • Set up real-time alerting for any file deletion operations that occur outside the expected document path hierarchy
  • Monitor for repeated failed access attempts or unusual patterns of requests to savescores.php and exercise.php endpoints
  • Implement centralized log aggregation to correlate potential exploitation attempts across multiple server instances

How to Mitigate CVE-2026-31939

Immediate Actions Required

  • Upgrade Chamilo LMS to version 1.11.38 or later immediately to patch this vulnerability
  • Review web server access logs for any historical exploitation attempts targeting the affected endpoints
  • Conduct a file system integrity check to identify any unauthorized file deletions that may have occurred
  • Restrict network access to Chamilo administrative and exercise endpoints where possible until patching is complete

Patch Information

The vulnerability has been fixed in Chamilo LMS version 1.11.38. The patch implements proper path validation using the Security::check_abs_path() function, which verifies that the constructed file path remains within the authorized document directory before any file operations are performed. Additionally, the fix adds XSS protection for the score parameter and improves null handling for user input.

For detailed patch information, refer to:

  • GitHub Release v1.11.38
  • GitHub Security Advisory GHSA-8q8c-v75x-q2hx
  • GitHub Commit Update

Workarounds

  • Deploy a web application firewall (WAF) rule to block requests containing path traversal sequences (e.g., ../, ..%2f) in the test parameter
  • Temporarily disable access to the /main/exercise/savescores.php and /main/exercise/exercise.php endpoints if HotPotatoes functionality is not required
  • Implement server-level access controls to restrict the Chamilo web user's file deletion permissions to only the document directory
  • Apply network-level restrictions to limit access to the Chamilo LMS instance to trusted IP ranges until patching can be completed
bash
# Example: Apache mod_rewrite rule to block path traversal attempts
RewriteEngine On
RewriteCond %{QUERY_STRING} (\.\./) [NC,OR]
RewriteCond %{QUERY_STRING} (\.\.%2f) [NC,OR]
RewriteCond %{QUERY_STRING} (%2e%2e/) [NC]
RewriteRule ^main/exercise/savescores\.php - [F,L]

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

  • Vulnerability Details
  • TypePath Traversal

  • Vendor/TechChamilo Lms

  • SeverityHIGH

  • CVSS Score8.3

  • EPSS Probability0.05%

  • Known ExploitedNo
  • CVSS Vector
  • CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H
  • Impact Assessment
  • ConfidentialityLow
  • IntegrityNone
  • AvailabilityHigh
  • CWE References
  • CWE-22
  • Technical References
  • GitHub Commit Update

  • GitHub Release v1.11.38

  • GitHub Security Advisory GHSA-8q8c-v75x-q2hx
  • Related CVEs
  • CVE-2026-33703: Chamilo LMS Information Disclosure Flaw

  • CVE-2026-33705: Chamilo LMS Information Disclosure Flaw

  • CVE-2026-33708: Chamilo LMS Information Disclosure Flaw

  • CVE-2026-33737: Chamilo LMS XXE Vulnerability
Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the World’s Most Advanced Cybersecurity Platform

See how our intelligent, autonomous cybersecurity platform can protect your organization now and into the future.

Try SentinelOne
  • Get Started
  • Get a Demo
  • Product Tour
  • Why SentinelOne
  • Pricing & Packaging
  • FAQ
  • Contact
  • Contact Us
  • Customer Support
  • SentinelOne Status
  • Language
  • Platform
  • Singularity Platform
  • Singularity Endpoint
  • Singularity Cloud
  • Singularity AI-SIEM
  • Singularity Identity
  • Singularity Marketplace
  • Purple AI
  • Services
  • Wayfinder TDR
  • SentinelOne GO
  • Technical Account Management
  • Support Services
  • Verticals
  • Energy
  • Federal Government
  • Finance
  • Healthcare
  • Higher Education
  • K-12 Education
  • Manufacturing
  • Retail
  • State and Local Government
  • Cybersecurity for SMB
  • Resources
  • Blog
  • Labs
  • Case Studies
  • Videos
  • Product Tours
  • Events
  • Cybersecurity 101
  • eBooks
  • Webinars
  • Whitepapers
  • Press
  • News
  • Ransomware Anthology
  • Company
  • About Us
  • Our Customers
  • Careers
  • Partners
  • Legal & Compliance
  • Security & Compliance
  • Investor Relations
  • S Foundation
  • S Ventures

©2026 SentinelOne, All Rights Reserved.

Privacy Notice Terms of Use

English