Strategic Overview
- Status
- Patched in 2.1.5
- Affected Plugin
- Good LMS - Learning Management System WP Plugin
- Affected Version
<= 2.1.4- CVSS
- 9.8Critical
- Weakness type
- CWE-89 · Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
- CVE
CVE-2020-27481
At a glance
CVE-2020-27481 is a critical-severity Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') vulnerability in the Good LMS - Learning Management System WP Plugin WordPress plugin, affecting versions <= 2.1.4. It carries a CVSS score of 9.8 (reachable over the network; low attack complexity; high confidentiality, integrity, availability impact). Exploitation requires no authentication. The issue is fixed in version 2.1.5; sites on affected versions should update now. Disclosed November 2020, reported by Abdul Azeez Alaseeri.
Vulnerability Overview
An unauthenticated SQL Injection vulnerability in Good Layers LMS Plugin <= 2.1.4 exists due to the usage of "wp_ajax_nopriv" call in WordPress, which allows any unauthenticated user to get access to the function "gdlr_lms_cancel_booking" where POST Parameter "id" was sent straight into SQL query without sanitization.
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 privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.
CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
Good LMS - Learning Management System WP Plugin <= 2.1.4 carries this weakness at wp_ajax_nopriv, and reaching it takes no account at all. SQL injection happens when request data is concatenated into a query instead of being bound as a parameter, letting an attacker change the structure of the statement rather than just its values.
A working injection can read any table the database user can see, which on a WordPress install means user records, password hashes and session or API secrets stored in options. For Good LMS - Learning Management System WP Plugin the fix is 2.1.5: builds <= 2.1.4 are affected, anything from 2.1.5 onward is not.
Remediation
Update to version 2.1.5, or a newer patched version
How does WordSec protect against this?
Requests carrying this pattern arrive without a session, so nothing upstream of the firewall gets a chance to reject them: WordSec's web application firewall inspects request payloads before WordPress loads them. None of that substitutes for the fix: Good LMS - Learning Management System WP Plugin 2.1.5 closes this, and updating the plugin is the step that ends it.
- Firewall
- Login Security
- Alerts
External References
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C