CVE-2026-50636: LimeSurvey RemoteControl invite_participants/remind_participants SQL Injection
The RemoteControl API methods inviteparticipants and remindparticipants pass a caller-supplied token-ID array into TokenDynamic::findUninvited(), which concatenates the values directly into a tid IN ('...') SQL clause without parameterization or input validation. A remote, authenticated attacker holding the tokens/update permission on a survey can inject a crafted array element to perform SQL injection. Because LimeSurvey configures its PDO connection with emulated prepared statements (emulatePrepare = true) and does not disable MySQL multi-statements, the injection supports stacked queries: the attacker can append arbitrary additional statements (INSERT/UPDATE/DELETE/DROP/CREATE) after the original SELECT. This permits both arbitrary read of any data in the database, such as administrator bcrypt password hashes (limeusers), survey response PII, session records, and global settings, all recoverable via a SLEEP() time-based blind oracle, and arbitrary write/destruction of that data, including directly overwriting the administrator password hash for immediate account takeover or dropping/truncating tables. Reads and writes extend to any schema the application's database user can access. The RemoteControl interface (RPCInterface = json/xml) must be enabled, which is not the default.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Disable the RemoteControl RPC interface: ensure RPCInterface is not set to 'json' or 'xml' (i.e., do not enable RPCInterface = json or RPCInterface = xml).
LimeSurvey (RemoteControl interface) RPCInterface = not json/xml - Configuration
Change the PDO configuration to disable emulated prepared statements (emulatePrepare = false) instead of emulatePrepare = true.
LimeSurvey PDO configuration emulatePrepare = false - Configuration
Disable MySQL multi-statements for the application's DB connection so stacked queries are not permitted (do not allow multi-statement execution).
LimeSurvey PDO / MySQL connection MySQL multi-statements = disabled - Compensating control
Restrict network access to the RemoteControl (RPC) endpoints to trusted administrative IPs via firewall/ACLs or otherwise isolate the RPC interface from untrusted networks.
- Operational
If exploitation is suspected, rotate administrative account passwords, invalidate active sessions, and restore/verify database integrity from known-good backups (review for any unauthorized INSERT/UPDATE/DELETE/DROP/CREATE statements).
Event History
Frequently Asked Questions
What is the severity of CVE-2026-50636?
CVE-2026-50636 has a severity rating of high, with a base score of 8.7.
How can I fix CVE-2026-50636?
To fix CVE-2026-50636, ensure that the LimeSurvey software is updated to the latest version where this vulnerability has been patched.
What types of systems are affected by CVE-2026-50636?
CVE-2026-50636 affects the LimeSurvey systems that utilize the RemoteControl API methods invite_participants and remind_participants.
What kind of attack does CVE-2026-50636 enable?
CVE-2026-50636 allows remote, authenticated attackers to exploit SQL injection vulnerabilities.
What is the main cause of CVE-2026-50636?
The main cause of CVE-2026-50636 is the inadequate parameterization and input validation of user-supplied token-ID arrays in SQL queries.