CVE-2024-4352

8.8 HIGH

📋 TL;DR

This vulnerability in Tutor LMS Pro WordPress plugin allows authenticated attackers with subscriber-level permissions or higher to bypass authorization checks and execute SQL injection attacks. Attackers can access, modify, or delete sensitive data from the database. All WordPress sites using vulnerable versions of Tutor LMS Pro are affected.

💻 Affected Systems

Products:
  • Tutor LMS Pro WordPress Plugin
Versions: All versions before the patch
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with Tutor LMS Pro plugin enabled and at least one user with subscriber role or higher.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise including user credentials, payment information, and sensitive course data; potential for full site takeover via privilege escalation.

🟠

Likely Case

Unauthorized access to student records, course materials, and user data; potential data exfiltration and manipulation.

🟢

If Mitigated

Limited impact with proper network segmentation and database access controls, but still exposes sensitive data to authenticated users.

🌐 Internet-Facing: HIGH - WordPress sites are typically internet-facing and accessible to authenticated users.
🏢 Internal Only: MEDIUM - Internal users with subscriber accounts could exploit this vulnerability.

🎯 Exploit Status

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

Exploitation requires authenticated access but uses simple SQL injection techniques that are well-documented and easy to automate.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Check vendor advisory for specific version

Vendor Advisory: https://www.themeum.com/product/tutor-lms/

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find Tutor LMS Pro and check for updates. 4. Click 'Update Now' if update is available. 5. Verify plugin version after update.

🔧 Temporary Workarounds

Disable vulnerable function via plugin filter

all

Add code to theme's functions.php to disable the vulnerable 'get_calendar_materials' function

add_filter('tutor_lms_pro_calendar_materials_enabled', '__return_false');

Restrict user roles

all

Temporarily restrict subscriber-level access or implement additional authentication requirements

🧯 If You Can't Patch

  • Implement WAF rules to block SQL injection patterns targeting the 'year' parameter
  • Restrict database user permissions to read-only for application accounts

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Plugins > Tutor LMS Pro version against patched version in vendor advisory

Check Version:

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

Verify Fix Applied:

Verify plugin version is updated and test calendar functionality with subscriber account

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL queries in database logs
  • Multiple failed authentication attempts followed by calendar API calls
  • Unexpected database queries from subscriber-level users

Network Indicators:

  • POST requests to /wp-admin/admin-ajax.php with 'action=tutor_pro_get_calendar_materials' and suspicious 'year' parameters
  • Unusual database connection patterns from web server

SIEM Query:

source="web_server" AND uri="/wp-admin/admin-ajax.php" AND parameters.action="tutor_pro_get_calendar_materials" AND parameters.year MATCHES "[^0-9]"

🔗 References

📤 Share & Export