CVE-2024-4318

8.8 HIGH

📋 TL;DR

This vulnerability allows authenticated attackers with Instructor-level permissions or higher in Tutor LMS for WordPress to perform time-based SQL injection attacks via the 'question_id' parameter. Attackers can extract sensitive information from the database by injecting malicious SQL queries. Only WordPress sites running Tutor LMS version 2.7.0 or earlier are affected.

💻 Affected Systems

Products:
  • Tutor LMS WordPress Plugin
Versions: Up to and including version 2.7.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with Tutor LMS plugin. Attackers need Instructor-level permissions or higher.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise including extraction of sensitive user data, administrative credentials, and potential privilege escalation to full system access.

🟠

Likely Case

Extraction of sensitive user information, course data, and potentially administrative credentials from the WordPress database.

🟢

If Mitigated

Limited impact with proper input validation and prepared statements preventing successful injection.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Time-based SQL injection requires authenticated access but is relatively straightforward to exploit given the public vulnerability details.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version 2.7.1 or later

Vendor Advisory: https://plugins.trac.wordpress.org/changeset/3086489/

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find Tutor LMS and click 'Update Now'. 4. Verify update to version 2.7.1 or later.

🔧 Temporary Workarounds

Input Validation Filter

all

Add custom input validation for question_id parameter to only accept numeric values

Add to theme's functions.php or custom plugin: add_filter('tutor_question_id_validation', function($id) { return is_numeric($id) ? intval($id) : 0; });

🧯 If You Can't Patch

  • Immediately revoke Instructor and higher permissions from untrusted users
  • Implement web application firewall (WAF) rules to block SQL injection patterns

🔍 How to Verify

Check if Vulnerable:

Check Tutor LMS version in WordPress admin panel under Plugins → Installed Plugins

Check Version:

wp plugin list --name=tutor --field=version

Verify Fix Applied:

Confirm Tutor LMS version is 2.7.1 or higher in WordPress admin

📡 Detection & Monitoring

Log Indicators:

  • Unusual database query patterns in WordPress debug logs
  • Multiple failed login attempts followed by SQL-like patterns in request logs

Network Indicators:

  • HTTP POST requests with SQL keywords in question_id parameter
  • Unusually long response times for specific Tutor LMS requests

SIEM Query:

source="wordpress.log" AND ("question_id" AND ("SLEEP" OR "BENCHMARK" OR "WAITFOR"))

🔗 References

📤 Share & Export