CVE-2017-11412

9.8 CRITICAL

📋 TL;DR

CVE-2017-11412 is a critical SQL injection vulnerability in Fiyo CMS 2.0.7 that allows attackers to execute arbitrary SQL commands through the comment_status.php component. This affects all websites running the vulnerable version of Fiyo CMS, potentially compromising the entire database. Attackers can exploit this without authentication via the $_GET['id'] parameter.

💻 Affected Systems

Products:
  • Fiyo CMS
Versions: 2.0.7
Operating Systems: All platforms running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability exists in the default installation of Fiyo CMS 2.0.7. No special configuration is required for exploitation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, privilege escalation, remote code execution, and full system takeover.

🟠

Likely Case

Database information disclosure, data manipulation, and potential administrative access to the CMS.

🟢

If Mitigated

Limited impact with proper input validation and parameterized queries in place.

🌐 Internet-Facing: HIGH - The vulnerability is exploitable via web requests and affects internet-facing CMS installations.
🏢 Internal Only: MEDIUM - Internal systems are still vulnerable but have reduced attack surface compared to internet-facing deployments.

🎯 Exploit Status

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

The exploit is straightforward as it involves simple SQL injection through a GET parameter. Public proof-of-concept code is available in the GitHub issue.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.0.8 or later

Vendor Advisory: https://github.com/FiyoCMS/FiyoCMS/issues/5

Restart Required: No

Instructions:

1. Upgrade Fiyo CMS to version 2.0.8 or later. 2. Replace the vulnerable file dapur/apps/app_comment/controller/comment_status.php with the patched version. 3. Verify that $_GET['id'] parameter is properly sanitized or uses prepared statements.

🔧 Temporary Workarounds

Input Validation Workaround

all

Add input validation to sanitize the 'id' parameter before processing

Edit dapur/apps/app_comment/controller/comment_status.php and add: $id = intval($_GET['id']); before any database operations

WAF Rule

all

Implement web application firewall rules to block SQL injection patterns

Add WAF rule: deny requests containing SQL keywords in GET parameters

🧯 If You Can't Patch

  • Disable or restrict access to the comment_status.php component
  • Implement strict input validation and parameterized queries in the affected file

🔍 How to Verify

Check if Vulnerable:

Check if running Fiyo CMS version 2.0.7 and examine dapur/apps/app_comment/controller/comment_status.php for lack of input validation on $_GET['id']

Check Version:

Check Fiyo CMS version in configuration files or admin panel

Verify Fix Applied:

Verify version is 2.0.8+ and check that comment_status.php uses prepared statements or proper input sanitization

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL queries in database logs
  • Multiple requests to comment_status.php with SQL-like parameters
  • Error logs showing SQL syntax errors

Network Indicators:

  • HTTP GET requests to comment_status.php with SQL injection payloads in parameters
  • Unusual database connection patterns from web server

SIEM Query:

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

🔗 References

📤 Share & Export