CVE-2018-6005

9.8 CRITICAL

📋 TL;DR

This SQL injection vulnerability in Realpin for Joomla! allows attackers to execute arbitrary SQL commands through the pinboard parameter. It affects all Joomla! sites using Realpin component versions through 1.5.04. Successful exploitation could lead to database compromise and potentially complete system takeover.

💻 Affected Systems

Products:
  • Realpin component for Joomla!
Versions: All versions through 1.5.04
Operating Systems: All platforms running Joomla!
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects Joomla! installations with Realpin component installed. The vulnerability is in the component itself, not Joomla! core.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, privilege escalation, and potential remote code execution on the underlying server.

🟠

Likely Case

Database information disclosure, including user credentials, sensitive content, and potential administrative access to the Joomla! installation.

🟢

If Mitigated

Limited impact with proper input validation and parameterized queries preventing SQL injection.

🌐 Internet-Facing: HIGH - Web applications are directly accessible from the internet, making them prime targets for automated scanning and exploitation.
🏢 Internal Only: MEDIUM - Internal applications could still be exploited by malicious insiders or compromised internal systems.

🎯 Exploit Status

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

Public exploit code is available on Exploit-DB. The vulnerability requires no authentication and can be exploited with simple HTTP requests.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Versions after 1.5.04

Vendor Advisory: https://extensions.joomla.org/extension/realpin/

Restart Required: No

Instructions:

1. Log into Joomla! administrator panel
2. Navigate to Extensions > Manage > Update
3. Check for Realpin component updates
4. If no update available, manually download latest version from Joomla! Extensions Directory
5. Install the updated component
6. Verify the component version is greater than 1.5.04

🔧 Temporary Workarounds

WAF Rule Implementation

all

Implement web application firewall rules to block SQL injection attempts targeting the pinboard parameter.

# Example ModSecurity rule:
SecRule ARGS:pinboard "@detectSQLi" "id:1001,phase:2,deny,status:403,msg:'SQLi attempt detected'"
# Example nginx rule:
location ~* \.php$ {
    if ($args ~* "pinboard.*[';]|union.*select|select.*from") {
        return 403;
    }
}

Input Validation Filter

all

Add custom input validation for the pinboard parameter before it reaches the vulnerable component.

# PHP input validation example:
$pinboard = filter_input(INPUT_GET, 'pinboard', FILTER_SANITIZE_STRING);
if (!preg_match('/^[a-zA-Z0-9_-]+$/', $pinboard)) {
    die('Invalid input');
}

🧯 If You Can't Patch

  • Disable or remove the Realpin component entirely from Joomla! installation
  • Implement strict network segmentation and access controls to limit exposure of vulnerable systems

🔍 How to Verify

Check if Vulnerable:

Check Joomla! administrator panel > Components > Realpin > About to see if version is 1.5.04 or earlier. Alternatively, test with SQL injection payloads against the pinboard parameter.

Check Version:

# Check Joomla! database for component version:
SELECT manifest_cache FROM #__extensions WHERE element = 'com_realpin';

Verify Fix Applied:

After updating, verify component version is greater than 1.5.04 and test that SQL injection payloads no longer work against the pinboard parameter.

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests containing SQL keywords (SELECT, UNION, INSERT) in pinboard parameter
  • Unusual database error messages in Joomla! logs
  • Multiple failed login attempts following SQL injection attempts

Network Indicators:

  • HTTP GET requests with SQL payloads in query strings
  • Unusual outbound database connections from web server

SIEM Query:

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

🔗 References

📤 Share & Export