CVE-2025-25403
Executive Summary
CVE-2025-25403 identifies a critical SQL Injection vulnerability in Slims (Senayan Library Management Systems) version 9 Bulian V9.6.1. The flaw resides in the admin/modules/master_file/coll_type.php file, allowing an authenticated attacker to inject arbitrary SQL commands via unsanitized input parameters. Successful exploitation could lead to unauthorized data access, modification, or deletion of the underlying database. As of this report, no official patch has been released, and the vulnerability is considered unpatched. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the public availability of proof-of-concept details increases the risk for unpatched instances.
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
CVSS Breakdown & Threat Level
While no official CVSS vector is provided, based on the vulnerability type and context, a reasonable assessment is:
- Attack Vector (AV): Network (N) – The vulnerable endpoint is accessible over the network.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): Low (L) – Authentication is required to access the admin panel.
- User Interaction (UI): None (N) – No user interaction is needed.
- Scope (S): Unchanged (U) – The vulnerability does not affect other components.
- 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.
Estimated CVSS Score: 8.8 (High)
Threat Level: High – The vulnerability allows for complete database compromise with low complexity and low privileges.
Deep Dive & Mechanics
The vulnerability is a classic SQL Injection in the coll_type.php file, which is part of the master file management module in the Slims admin panel. The application fails to properly sanitize user-supplied input before incorporating it into SQL queries. An attacker with valid admin credentials can manipulate parameters (likely id or similar) to inject malicious SQL code.
The injection point is likely in a GET or POST parameter used to fetch or manipulate collection type data. For example, a vulnerable query might look like:
SELECT * FROM coll_type WHERE id = $_GET['id'];
By injecting a payload such as 1 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100, an attacker can extract data from other tables.
The vulnerability is unpatched, meaning all instances of Slims 9 Bulian V9.6.1 are at risk.
Vulnerable vs. Patched Code
Vulnerable Code (coll_type.php):
<?php
// Vulnerable code snippet
$id = $_GET['id'];
$query = "SELECT * FROM coll_type WHERE id = $id";
$result = mysqli_query($conn, $query);
// ... rest of the code
?>
Patched Code (Hypothetical):
<?php
// Patched code using prepared statements
$id = $_GET['id'];
$stmt = $conn->prepare("SELECT * FROM coll_type WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$result = $stmt->get_result();
// ... rest of the code
?>
The patched version uses parameterized queries, which prevent SQL injection by separating SQL logic from data.
Exploitation & Lab Setup
Red Team
Prerequisites:
- Valid admin credentials for Slims.
- Network access to the Slims admin panel.
Exploitation Steps:
- Identify the vulnerable endpoint: Navigate to
http://target/slims9/admin/modules/master_file/coll_type.php. - Craft the injection payload: Use a tool like
sqlmapor manual injection. Example:http://target/slims9/admin/modules/master_file/coll_type.php?id=1 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100-- - Extract data: Use
sqlmapfor automated extraction:sqlmap -u "http://target/slims9/admin/modules/master_file/coll_type.php?id=1" --cookie="PHPSESSID=your_session_id" --batch --dump
Expected Outcome: Full database dump including user credentials, library data, and configuration.
Blue Team
Detection Steps:
- Monitor web server logs for suspicious SQL-like patterns in the
idparameter ofcoll_type.php. - Deploy a WAF rule to block common SQL injection patterns.
- Audit database queries for unexpected UNION or SELECT statements.
Honeypot Setup:
- Create a fake
coll_type.phpendpoint that logs all input and alerts on SQL injection attempts.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to
/admin/modules/master_file/coll_type.phpwith unusualidparameters containing SQL keywords (UNION, SELECT, OR, AND, etc.). - Outbound database connections from the web server to unknown IPs (data exfiltration).
- HTTP requests to
File IOCs:
- Modified
coll_type.phpfile (if attacker uploads a webshell). - Suspicious files in the
admin/modules/master_file/directory.
- Modified
Log IOCs:
- Database error logs showing SQL syntax errors.
- Web server access logs with repeated requests to
coll_type.phpwith varyingidvalues.
Detection Engineering
YARA Rule
rule CVE_2025_25403_SQLi_Slims {
meta:
description = "Detects SQL injection attempts targeting CVE-2025-25403 in Slims"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-25403"
strings:
$s1 = "coll_type.php" nocase
$s2 = "id=" nocase
$s3 = "UNION" nocase
$s4 = "SELECT" nocase
$s5 = "OR" nocase
$s6 = "1=1" nocase
condition:
all of ($s1, $s2) and 1 of ($s3, $s4, $s5, $s6)
}
Sigma Rule
title: SQL Injection Attempt on Slims coll_type.php
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects SQL injection attempts targeting CVE-2025-25403
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-uri-query|contains:
- "coll_type.php?id="
- "UNION"
- "SELECT"
- "OR"
- "1=1"
condition: selection
falsepositives:
- Legitimate use of the word "union" in a query (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-25403 SQL Injection Attempt on Slims coll_type.php"; flow:to_server,established; content:"coll_type.php"; http_uri; content:"id="; http_uri; pcre:"/(UNION|SELECT|OR|1=1)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the vulnerable module if not essential: Remove or rename
admin/modules/master_file/coll_type.php. - Apply input validation: Sanitize all input parameters in
coll_type.phpusing prepared statements or parameterized queries. - Upgrade to a patched version once available (monitor Slims official channels).
Long-term Mitigations:
- Web Application Firewall (WAF): Deploy a WAF with rules to block SQL injection patterns.
- Database Hardening: Use least-privilege database accounts; the web application should not have DROP or DELETE privileges.
- Regular Security Audits: Conduct code reviews and penetration testing on all admin modules.
- Monitor Logs: Enable detailed logging and alerting for suspicious database queries.
Workaround: If patching is not possible, restrict access to the admin panel via IP whitelisting or VPN.
Valters IT
Securing Digital Frontiers
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.