JCTables (com_jctables) below 1.21.1 - Unauthenticated SQL Injection (database read and write, leading to RCE)
JCTables by JoomCode before 1.21.1 exposes a front-end CRUD controller (index.php?option=com_jctables&task=...) that performs no Joomla token validation and no authentication check on any task. Table names, column names and values are taken straight from the request and concatenated into SQL, and the escaping helper treats any quote-wrapped value as already escaped. An anonymous visitor can read any table in the Joomla database (including the users table) and write to any row, which is enough to take over an administrator account and from there install code on the site. No login or user interaction is needed (CVSS 4.0 10.0 Critical). Update JCTables to 1.21.1 or later, which adds token checks to the write tasks, always quotes values, and limits reads to administrator-configured tables. If you cannot update straight away, disable or uninstall the component until you can, and review administrator accounts for changes.
Affected versions: < 1.21.1
Full advisory: our disclosure post
