CVE-2021-28245

7.5 HIGH

📋 TL;DR

PbootCMS 3.0.4 contains a SQL injection vulnerability in the search parameter of index.php that allows attackers to execute arbitrary SQL commands. This can lead to unauthorized data access, including sensitive information disclosure and administrative account creation. All users running PbootCMS 3.0.4 are affected.

💻 Affected Systems

Products:
  • PbootCMS
Versions: 3.0.4
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects PbootCMS 3.0.4. Earlier versions may also be vulnerable but not confirmed.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise, administrative account creation leading to full system takeover, sensitive data exfiltration including user credentials and personal information.

🟠

Likely Case

Unauthorized data access, administrative account creation leading to website defacement or content manipulation, extraction of user data.

🟢

If Mitigated

Limited impact with proper input validation and WAF rules in place, potentially blocked at application layer.

🌐 Internet-Facing: HIGH - The vulnerability is in a public-facing search function accessible without authentication.
🏢 Internal Only: MEDIUM - Internal systems may still be vulnerable but with reduced attack surface compared to internet-facing systems.

🎯 Exploit Status

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

Public proof-of-concept available on GitHub. Exploitation requires minimal technical skill due to simple SQL injection vector.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.0.5 or later

Vendor Advisory: https://github.com/hnaoyun/PbootCMS

Restart Required: No

Instructions:

1. Backup your current installation and database. 2. Download PbootCMS 3.0.5 or later from the official repository. 3. Replace affected files, particularly index.php and related search functionality. 4. Test the updated installation.

🔧 Temporary Workarounds

Input Validation Filter

all

Add input validation to sanitize search parameter before processing

Modify index.php to add: $search = preg_replace('/[^a-zA-Z0-9\s]/', '', $_GET['search']);

WAF Rule Implementation

all

Implement web application firewall rules to block SQL injection patterns

For ModSecurity: SecRule ARGS:search "@detectSQLi" "id:1001,phase:2,deny,status:403"

🧯 If You Can't Patch

  • Implement strict input validation and parameterized queries in the search functionality
  • Deploy a web application firewall (WAF) with SQL injection detection rules

🔍 How to Verify

Check if Vulnerable:

Test the search parameter with SQL injection payloads like: index.php?search=test' OR '1'='1

Check Version:

Check the version in the admin panel or examine the core files for version information

Verify Fix Applied:

Attempt SQL injection payloads after patching; successful queries should be blocked or sanitized

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL queries in application logs
  • Multiple failed login attempts from newly created admin accounts
  • Search parameters containing SQL keywords (UNION, SELECT, INSERT)

Network Indicators:

  • HTTP requests with SQL injection payloads in search parameter
  • Unusual database connection patterns

SIEM Query:

source="web_logs" AND (search="*UNION*" OR search="*SELECT*" OR search="*INSERT*")

🔗 References

📤 Share & Export