CVE-2024-37947

5.9 MEDIUM

📋 TL;DR

This stored cross-site scripting (XSS) vulnerability in the Tutor LMS WordPress plugin allows attackers to inject malicious scripts into web pages. When users view affected pages, the scripts execute in their browsers, potentially stealing credentials or performing unauthorized actions. All Tutor LMS installations up to version 2.7.2 are affected.

💻 Affected Systems

Products:
  • WordPress Tutor LMS Plugin
Versions: All versions up to and including 2.7.2
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with Tutor LMS plugin enabled. Vulnerability exists in the plugin's input handling during web page generation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal administrator credentials, hijack user sessions, deface websites, or redirect users to malicious sites, potentially leading to complete site compromise.

🟠

Likely Case

Attackers inject malicious scripts that steal user session cookies or credentials, allowing account takeover and unauthorized access to sensitive LMS data.

🟢

If Mitigated

With proper input validation and output encoding, malicious scripts would be neutralized before reaching users, preventing execution.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Stored XSS vulnerabilities are commonly exploited. While no public PoC is confirmed, the vulnerability type is well-understood and easily weaponized.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.7.3 or later

Vendor Advisory: https://patchstack.com/database/vulnerability/tutor/wordpress-tutor-lms-plugin-2-7-2-cross-site-scripting-xss-vulnerability

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.3 or higher.

🔧 Temporary Workarounds

Input Sanitization Filter

all

Add custom input sanitization for Tutor LMS fields to strip script tags and malicious content

Add WordPress filter: add_filter('tutor_sanitize_input', 'custom_sanitize_function');

Content Security Policy

all

Implement CSP headers to restrict script execution sources

Add to .htaccess: Header set Content-Security-Policy "default-src 'self'; script-src 'self'"
Or use WordPress CSP plugin

🧯 If You Can't Patch

  • Disable Tutor LMS plugin temporarily until patching is possible
  • Implement web application firewall (WAF) rules to block XSS payloads in Tutor LMS requests

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Tutor LMS → Version. If version is 2.7.2 or lower, system is vulnerable.

Check Version:

wp plugin list --name=tutor --field=version (if WP-CLI installed) or check WordPress admin panel

Verify Fix Applied:

After update, verify Tutor LMS version shows 2.7.3 or higher in WordPress plugins list.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to Tutor LMS endpoints containing script tags or JavaScript
  • Multiple failed XSS attempts in web server logs

Network Indicators:

  • HTTP requests with suspicious parameters like <script>, javascript:, or encoded payloads to Tutor LMS URLs

SIEM Query:

source="web_server_logs" AND (uri_path="*tutor*" AND (request_body="*<script>*" OR request_body="*javascript:*"))

🔗 References

📤 Share & Export