Summary
CVE-2026-76570 is a critical, unauthenticated SQL injection vulnerability in the JCTables extension for Joomla, published by joomcode.com. The extension’s front-end CRUD API controller lacks token validation and access control on its data read/write endpoints, allowing unauthenticated attackers to inject arbitrary SQL. Researchers demonstrated a full exploit chain that escalates this SQL injection into remote code execution (RCE) by hijacking a Super Administrator account and installing a webshell, making this a maximum-severity, network-exploitable issue.
Technical details
- Root cause 1 – missing authorization: The JCTables front-end controller performs no
Session::checkToken()CSRF check, no access check, and no$user->authorise()call on endpoints that modify database content. - Root cause 2 – defective input sanitization: The extension’s internal
ladb_escape()helper function incorrectly treats any attacker-supplied string already wrapped in single quotes as "pre-escaped" and returns it unmodified, allowing SQL metacharacters to bypass the intended escaping logic. - Vulnerable endpoints/tasks:
getdatarow– reads arbitrary table rows (used to read admin credential data).updatecell– writes/modifies arbitrary database column values (used to overwrite the admin password hash).getrow– supports boolean-blind SQL injection via craftedindex/ORconditions (used to enumerate the Joomla database table prefix).
- Attack vector: Fully unauthenticated, remote, over HTTP(S) — no user interaction and no privileges required.
- Demonstrated impact/exploit chain:
- Extract the Joomla database table prefix via boolean-blind SQL injection.
- Read Super Administrator credential data via the unauthenticated
getdatarowendpoint. - Overwrite the admin account’s password hash via the vulnerable
updatecellendpoint. - Authenticate to the Joomla admin panel as Super Administrator using the attacker-set password.
- Install a self-deleting system plugin through the Joomla installer to drop a webshell (e.g., under
/images/). - Execute arbitrary commands as the web server user, then restore the original password hash to erase evidence of the intrusion.
- Impact: Full confidentiality, integrity, and availability compromise of the affected site/server (database read/write, admin account takeover, and remote code execution).
Affected software
- JCTables extension for Joomla (joomcode.com), versions 1.0.0 through 1.20.0 (vulnerable), including builds documented as affected up through 1.10.31.2 in vendor/researcher analysis.
- Fixed in version 1.21.1 and later.
Severity
- CVSS Score: 10.0 (Critical)
- CVSS v4.0 Vector:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:A/AU:Y - Network attack vector, low attack complexity, no privileges or user interaction required, with high impact to confidentiality, integrity, and availability.
Mitigation and recommended actions
- Immediate: Upgrade the JCTables extension to version 1.21.1 or later, which resolves both the missing-authorization and defective-escaping issues.
- If immediate patching is not possible:
- Disable or remove the JCTables extension until it can be updated.
- Restrict or block external access to the extension’s front-end controller/API endpoints (e.g., via web application firewall rules blocking requests referencing the vulnerable
getdatarow,updatecell, andgetrowtasks) as a temporary compensating control. - Monitor Joomla Super Administrator accounts for unexpected password changes, unfamiliar login events, or newly installed/uninstalled plugins.
- Rotate administrator credentials and review installed plugins/files (e.g., under
/images/) for unauthorized webshells following any suspected compromise.

