CVE-2024-9660

8.8 HIGH

📋 TL;DR

This vulnerability allows authenticated attackers with Student-level access or higher to upload arbitrary files to WordPress sites running the School Management System plugin. This can lead to remote code execution by uploading malicious files like PHP shells. All WordPress sites using this plugin up to version 91.5.0 are affected.

💻 Affected Systems

Products:
  • School Management System for WordPress plugin
Versions: All versions up to and including 91.5.0
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with the vulnerable plugin enabled. Student-level authentication or higher is needed.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full server compromise through remote code execution, allowing attackers to steal data, install malware, or pivot to other systems.

🟠

Likely Case

Website defacement, data theft, or installation of backdoors for persistent access.

🟢

If Mitigated

Limited to file uploads that don't execute due to server hardening, but still enables storage of malicious content.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access but is straightforward once credentials are obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Versions after 91.5.0

Vendor Advisory: https://codecanyon.net/item/school-management-system-for-wordpress/11470032

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find 'School Management System' and update to latest version. 4. Verify update completes successfully.

🔧 Temporary Workarounds

Disable vulnerable functions via .htaccess

all

Block access to the vulnerable upload endpoints

# Add to .htaccess in WordPress root:
<Files "mj_smgt_load_documets*">
    Order Allow,Deny
    Deny from all
</Files>

Restrict file uploads via web server

all

Configure web server to block execution of uploaded files in upload directories

# For Apache in upload directory .htaccess:
<FilesMatch "\.(php|php3|php4|php5|phtml|pl|py|jsp|asp|sh|cgi)$">
    Order Deny,Allow
    Deny from all
</FilesMatch>
# For Nginx in server block:
location ~* ^/wp-content/uploads/.*\.(php|php3|php4|php5|phtml|pl|py|jsp|asp|sh|cgi)$ {
    deny all;
}

🧯 If You Can't Patch

  • Disable the School Management System plugin immediately
  • Implement strict file upload validation at the application level

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin > Plugins > Installed Plugins for 'School Management System' version 91.5.0 or lower

Check Version:

wp plugin list --name='school-management-system' --field=version

Verify Fix Applied:

Confirm plugin version is higher than 91.5.0 in WordPress admin panel

📡 Detection & Monitoring

Log Indicators:

  • Unusual file uploads to /wp-content/uploads/ directory
  • POST requests to mj_smgt_load_documets or mj_smgt_load_documets_new endpoints
  • Execution of unexpected PHP files in upload directories

Network Indicators:

  • HTTP POST requests with file uploads to plugin-specific endpoints
  • Unusual outbound connections from web server after file uploads

SIEM Query:

source="web_server_logs" AND (uri="/wp-admin/admin-ajax.php" AND post_data CONTAINS "mj_smgt_load_documets")

🔗 References

📤 Share & Export