What is FUEL CMS?
FUEL CMS is an open-source PHP content management system built on CodeIgniter. It is used by developers and small-to-medium organizations to build and manage websites with a customizable admin panel for content management. The FUEL CMS admin panel provides management interfaces for pages, navigation, permissions, and other site content through standard CRUD (Create, Read, Update, Delete) endpoints. SQL injection vulnerabilities in CMS admin panels are severe because they provide access to the database containing all site content, user credentials, configuration, and potentially allow escalation to OS-level code execution via SQL features like INTO OUTFILE or stored procedure abuse.
Overview
CVE-2020-17463 is a SQL injection vulnerability (CWE-89) in FUEL CMS 1.4.7 that allows a remote attacker to inject arbitrary SQL via the col parameter in the admin panel's list endpoints (/pages/items, /permissions/items, /navigation/items). The injection is in an ORDER BY clause that the application constructs from the col parameter without sanitization. An unauthenticated attacker (CVSS PR:N) can extract the full database, including admin credentials, and potentially achieve code execution via SQL-based file write operations. CISA added it to KEV in December 2021.
Affected Versions
| Product | Vulnerable | Fixed |
|---|---|---|
| FUEL CMS 1.4.7 and earlier | Yes | Update to patched version or apply sanitization fix |
Technical Details
- Root cause: SQL injection (CWE-89) in the
colparameter used to construct an ORDER BY clause — the FUEL CMS admin panel's list views accept acolparameter to specify the column to sort results by; this parameter is passed directly into the SQL query's ORDER BY clause without parameterization or input sanitization; ORDER BY injection differs from standard WHERE-clause injection but still allows full database extraction via time-based blind or error-based techniques - Attack endpoints:
/fuel/pages/items?col=<payload>,/fuel/permissions/items?col=<payload>,/fuel/navigation/items?col=<payload>— multiple admin panel list views share the same vulnerable parameter handling - Database extraction via ORDER BY injection: The injected SQL payload can use conditional expressions (CASE statements, IF functions) to extract database content character by character via time-based blind injection or boolean-based differences in response time; attackers extract the
fuel_userstable to obtain admin username and hashed password, then crack or use the credentials for admin panel access - CVSS PR:N (no privileges required): Despite being an admin panel endpoint, the list endpoints are accessible without authentication in the affected versions — the access control check is missing or bypassable, making this a pre-authentication SQL injection
- SQL to RCE escalation: Depending on MySQL configuration, the
INTO OUTFILESQL clause can write files to the web root, enabling PHP webshell deployment; ifFILEprivilege is granted to the database user, SQL injection can escalate to OS code execution - FUEL CMS RCE history: FUEL CMS 1.4.1 also had a separate authenticated RCE vulnerability (CVE-2018-16763) — the CMS has a history of security issues, indicating limited security review of the codebase
Discovery
Identified by security researchers and disclosed via the FUEL CMS GitHub issue tracker in 2020. CISA's December 2021 KEV addition reflects active exploitation of internet-accessible FUEL CMS installations with the vulnerable col parameter injection.
Exploitation Context
FUEL CMS deployments are typically small to medium websites and web applications. While the CMS is not as widely deployed as WordPress or Drupal, the combination of unauthenticated SQL injection + path to RCE makes any exposed FUEL CMS instance a target for automated scanning tools that catalog CMS fingerprints. Attackers commonly use search engines like Shodan, Censys, and Google dorks to identify FUEL CMS installations and then automate SQL injection payloads against the vulnerable endpoints. Compromised FUEL CMS sites are typically used for credential theft, SEO spam injection, or as pivot points into hosting infrastructure.
Remediation
- Upgrade FUEL CMS to the latest version — check the FUEL CMS GitHub repository for a patched release that properly sanitizes the
colparameter - As an immediate workaround, implement input validation in
application/core/MY_Model.phpor the relevant controller to whitelist valid column names for thecolparameter rather than passing raw input to SQL - Configure the database user for FUEL CMS with minimum necessary privileges — deny FILE privilege to prevent SQL-to-file-write escalation; use a database user without SUPER or FILE grants
- Implement a WAF rule to detect and block ORDER BY injection patterns in the
colparameter (e.g., SQL keywords, parentheses, or CASE expressions in sort parameters) - Review database access logs for unusual query patterns or large numbers of queries that may indicate automated SQL injection extraction
- Audit the database for unauthorized changes to the
fuel_userstable; rotate admin credentials if exploitation is suspected
Key Details
| Property | Value |
|---|---|
| CVE ID | CVE-2020-17463 |
| Vendor / Product | Fuel CMS — Fuel CMS |
| NVD Published | 2020-08-13 |
| NVD Last Modified | 2025-11-07 |
| CVSS 3.1 Score | 9.8 |
| CVSS 3.1 Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Severity | CRITICAL |
| CWE | CWE-89 find similar ↗ |
| CISA KEV Added | 2021-12-10 |
| CISA KEV Deadline | 2022-06-10 |
| Known Ransomware Use | No |
CVSS 3.1 Breakdown
Required Action
Timeline
| Date | Event |
|---|---|
| 2020-08-13 | CVE-2020-17463 published for SQL injection in FUEL CMS 1.4.7 via col parameter |
| 2021-12-10 | Added to CISA Known Exploited Vulnerabilities catalog |
| 2022-06-10 | CISA BOD 22-01 remediation deadline |
References
| Resource | Type |
|---|---|
| FUEL CMS GitHub Issue #545 — SQL Injection | Security Research |
| NVD — CVE-2020-17463 | Vulnerability Database |
| CISA KEV Catalog Entry | US Government |