School Management System – WPSchoolPress <= 2.2.16 - Missing Authorization to Privilege Escalation via Account Takeover
Strategic Overview
- Status
- Patched in 2.2.17
- Affected Plugin
- School Management System – WPSchoolPress
- Affected Version
<= 2.2.16- CVSS
- 8.8High
- Weakness type
- CWE-639 · Authorization Bypass Through User-Controlled Key
- CVE
CVE-2025-1667
At a glance
CVE-2025-1667 is a high-severity Authorization Bypass Through User-Controlled Key vulnerability in the School Management System WordPress plugin, affecting versions <= 2.2.16. It carries a CVSS score of 8.8 (reachable over the network; low attack complexity; high confidentiality, integrity, availability impact). The root cause is a missing authorization check on a reachable function. The issue is fixed in version 2.2.17; sites on affected versions should update now. Disclosed March 2025, reported by wesley (wcraft).
Vulnerability Overview
The School Management System – WPSchoolPress plugin for WordPress is vulnerable to Privilege Escalation due to a missing capability check on the wpsp_UpdateTeacher() function in all versions up to, and including, 2.2.16. This makes it possible for authenticated attackers, with teacher-level access and above, to update arbitrary user details including email which makes it possible to request a password reset and access arbitrary user accounts, including administrators.
Technical Analysis
The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.
CWE-639: Authorization Bypass Through User-Controlled Key
School Management System <= 2.2.16 carries this weakness at wpsp_UpdateTeacher(), and reaching it takes a caller who can reach the endpoint. Authorization bypass through a user-controlled key, often called insecure direct object reference, means the application looks up a record by an identifier from the request without checking that the caller owns it.
Changing a number in the request is enough to read or modify other users' records, which on commerce and membership sites means customer data. For School Management System the fix is 2.2.17: builds <= 2.2.16 are affected, anything from 2.2.17 onward is not.
Remediation
Update to version 2.2.17, or a newer patched version
How does WordSec protect against this?
Because it turns on account access, WordSec's login security is the relevant layer: role-based two-factor, captcha and brute-force limits raise the cost of getting the account this needs. None of that substitutes for the fix: School Management System 2.2.17 closes this, and updating the plugin is the step that ends it.
- Login Security
- Alerts
External References
Related records
Same weakness class
Other vulnerabilities in School Management System – WPSchoolPress
- 8.8CVE-2021-24575: School Management System – WPSchoolPress SQL Injection
CVE-2021-24575 - 7.2CVE-2023-4776: WPSchoolPress <= 2.2.4 SQL Injection
CVE-2023-4776 - 7.1School Management System – WPSchoolPress < 2.1.10 Reflected XSS
- 6.5CVE-2025-1670: School Management System – WPSchoolPress SQL Injection
CVE-2025-1670 - 6.5CVE-2025-1669: School Management System – WPSchoolPress SQL Injection
CVE-2025-1669 - 6.5CVE-2024-12332: School Management System – WPSchoolPress SQL Injection
CVE-2024-12332 - 6.3WPSchoolPress <= 2.2.4 Cross-Site Request Forgery
- 5.4CVE-2023-37887: WPSchoolPress <= 2.2.3 Missing Authorization
CVE-2023-37887
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C