CVE-2025-1667

8.8 HIGH

📋 TL;DR

This vulnerability allows authenticated attackers with teacher-level access or higher in the WPSchoolPress WordPress plugin to escalate privileges by updating arbitrary user details, including email addresses. Attackers can then trigger password resets to gain access to any user account, including administrator accounts. All WordPress sites using WPSchoolPress plugin versions up to 2.2.16 are affected.

💻 Affected Systems

Products:
  • WordPress WPSchoolPress plugin
Versions: All versions up to and including 2.2.16
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires at least teacher-level authenticated access. All WordPress installations with vulnerable plugin versions are affected regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers gain full administrative control over the WordPress site, allowing data theft, site defacement, malware installation, or complete system compromise.

🟠

Likely Case

Attackers compromise administrator accounts to steal sensitive student/parent data, modify grades, or disrupt school operations.

🟢

If Mitigated

Attackers are limited to teacher-level actions if proper access controls and monitoring prevent successful privilege escalation.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires authenticated access but follows predictable patterns. The vulnerability is well-documented with public references.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version after 2.2.16

Vendor Advisory: https://plugins.trac.wordpress.org/browser/wpschoolpress

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find WPSchoolPress and click 'Update Now'. 4. Verify update to version after 2.2.16.

🔧 Temporary Workarounds

Disable vulnerable function

all

Temporarily disable the wpsp_UpdateTeacher() function by modifying the plugin code

Edit wp-content/plugins/wpschoolpress/lib/wpsp-ajaxworks-teacher.php and comment out or remove the wpsp_UpdateTeacher() function

Restrict teacher account creation

all

Temporarily disable new teacher account registrations and review existing accounts

Use WordPress user management to restrict new registrations and audit existing teacher accounts

🧯 If You Can't Patch

  • Immediately disable the WPSchoolPress plugin if patching isn't possible
  • Implement strict network segmentation and monitoring for teacher account activities

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Plugins > Installed Plugins for WPSchoolPress version 2.2.16 or earlier

Check Version:

wp plugin list --name=wpschoolpress --field=version (if WP-CLI installed)

Verify Fix Applied:

Verify WPSchoolPress plugin version is higher than 2.2.16 in WordPress admin panel

📡 Detection & Monitoring

Log Indicators:

  • Unusual user profile updates from teacher accounts
  • Multiple password reset requests for administrator accounts
  • Suspicious wpsp_UpdateTeacher function calls in WordPress debug logs

Network Indicators:

  • HTTP POST requests to /wp-admin/admin-ajax.php with wpsp_UpdateTeacher action
  • Unusual account activity patterns from teacher IP addresses

SIEM Query:

source="wordpress.log" AND ("wpsp_UpdateTeacher" OR "teacher" AND "profile_update")

🔗 References

📤 Share & Export