CVE-2025-25403

9.8 CRITICAL

📋 TL;DR

CVE-2025-25403 is a critical SQL injection vulnerability in Slims 9 Bulian library management system that allows attackers to execute arbitrary SQL commands through the admin/modules/master_file/coll_type.php endpoint. This affects all organizations using the vulnerable version of Slims, potentially compromising library databases and administrative functions.

💻 Affected Systems

Products:
  • Slims (Senayan Library Management Systems) 9 Bulian
Versions: V9.6.1
Operating Systems: All operating systems running PHP and MySQL/MariaDB
Default Config Vulnerable: ⚠️ Yes
Notes: Requires PHP with MySQL/MariaDB database backend. The vulnerability is in the default installation.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, data destruction, privilege escalation to admin, and potential remote code execution via database functions.

🟠

Likely Case

Unauthorized data access, extraction of sensitive library records, and potential administrative account takeover.

🟢

If Mitigated

Limited impact with proper input validation, parameterized queries, and database user privilege restrictions.

🌐 Internet-Facing: HIGH - The vulnerable endpoint is accessible via web interface, making internet-facing instances immediately vulnerable.
🏢 Internal Only: HIGH - Even internal instances are vulnerable to insider threats or compromised internal systems.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires admin access to reach the vulnerable endpoint. SQL injection payloads are well-documented and easy to craft.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Check GitHub issues for latest patched version

Vendor Advisory: https://github.com/slims/slims9_bulian/issues/273

Restart Required: No

Instructions:

1. Check GitHub issue #273 for patch details. 2. Apply the SQL injection fix to admin/modules/master_file/coll_type.php. 3. Replace vulnerable code with parameterized queries. 4. Test the functionality.

🔧 Temporary Workarounds

Temporary Access Restriction

all

Restrict access to the vulnerable endpoint using web server configuration

# For Apache: add to .htaccess
<Files "coll_type.php">
Order Deny,Allow
Deny from all
</Files>
# For Nginx: add to server block
location ~ /admin/modules/master_file/coll_type\.php$ {
    deny all;
}

Input Validation Filter

all

Add input validation to filter SQL injection patterns

# Add to coll_type.php before processing
$input = $_POST['vulnerable_field'];
if (preg_match('/[\'\"\;\-\-\/\*\|]/', $input)) {
    die('Invalid input detected');
}

🧯 If You Can't Patch

  • Implement Web Application Firewall (WAF) with SQL injection rules
  • Restrict database user permissions to minimum required functions

🔍 How to Verify

Check if Vulnerable:

Test the coll_type.php endpoint with SQL injection payloads like ' OR '1'='1 in form fields

Check Version:

Check SLIMS_VERSION constant in system/config/sysconfig.inc.php

Verify Fix Applied:

Attempt SQL injection after patch and verify queries are properly parameterized

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL queries in database logs
  • Multiple failed login attempts to admin panel
  • Suspicious patterns in PHP error logs

Network Indicators:

  • Unusual POST requests to coll_type.php with SQL keywords
  • Abnormal database connection patterns

SIEM Query:

source="web_logs" AND uri="*coll_type.php*" AND (request="*UNION*" OR request="*SELECT*" OR request="*INSERT*" OR request="*DELETE*")

🔗 References

📤 Share & Export