The Tutor LMS – eLearning and online course solution plugin for WordPress is vulnerable to generic SQL Injection via Stored Quiz Answer Array in all versions up to, and including, 4.0.0 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers, with custom-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. The payload is stored at quiz-attempt time via the wp_ajax_tutor_quiz_abandon handler, but the injected SQL executes only when a privileged user or Tutor REST API key holder requests the /wp-json/tutor/v1/quiz-attempt-details/{id} endpoint, making this a second-order (stored) injection chain.
Security readout for executives and security teams
Plain-English summary
Tutor LMS for WordPress has a stored, second-order SQL injection in quiz handling up to version 4.0.0. An authenticated low-privilege user can plant data during quiz abandonment, and database exposure can occur later when a privileged user or Tutor REST API key holder views quiz attempt details.
Executive priority
Treat this as a near-term remediation item for any production learning site using Tutor LMS. It is not rated critical and active exploitation is not evidenced here, but it can expose sensitive database information through normal quiz workflows.
Technical view
The issue is CWE-89 SQL injection caused by insufficient escaping and query preparation around a stored quiz answer array. The payload is stored through wp_ajax_tutor_quiz_abandon and executes when /wp-json/tutor/v1/quiz-attempt-details/{id} is requested by a privileged user or Tutor REST API key holder. CVSS 3.1 is 6.5 with high confidentiality impact.
Likely exposure
Exposure is likely limited to WordPress sites running Tutor LMS versions up to and including 4.0.0, especially sites allowing subscriber-level users to take quizzes. Risk increases where administrators or API integrations routinely retrieve quiz attempt details.
Exploitation context
The source bundle does not show KEV listing or active exploitation evidence. Exploitation requires an authenticated account and depends on a later privileged or API-key-backed request to the quiz attempt details endpoint, making it a stored second-order injection chain rather than a simple direct request.
Researcher notes
Key mechanics are second-order storage at quiz abandonment and execution during privileged REST retrieval. The provided references point to REST_Quiz.php, Quiz.php, and QueryHelper.php in Tutor LMS 3.9.x, supporting review of query construction and data flow without assuming exploitability beyond the advisory.
Mitigation direction
Inventory WordPress sites using Tutor LMS and identify versions up to 4.0.0.
Check Themeum, Wordfence, or WordPress plugin guidance for the fixed release before upgrading.
Limit quiz access for untrusted users until remediation is confirmed.
Restrict and rotate Tutor REST API keys where quiz attempt access is unnecessary.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-89: Database access and collection lookup
Injection into data stores can inform collection, data access, and exfiltration detection reviews. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references database injection or access, so collection and exfiltration review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-89 · source CWE mapping
Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.