CVE-2026-6394
MediumCVSS 5.4Exploitation Probability (EPSS)
Low risk24th percentile - higher than 24% of all known CVEs
Summary
The Nexa Blocks plugin for WordPress up to version 1.1.1 is vulnerable to Server-Side Request Forgery (SSRF) due to missing URL validation in the import_demo() function. The function accepts a user-supplied URL in the demo_json_file POST parameter and passes it directly to wp_remote_get() without restrictions. Additionally, the AJAX nonce is publicly exposed in frontend HTML, allowing unauthenticated attacks.
Risk Assessment
The risk includes the ability to make HTTP requests to internal services such as AWS metadata, localhost, or other resources, potentially leading to data exposure and attack escalation.
Recommendation
Immediately update the Nexa Blocks plugin to version 1.1.2 or later, which includes a fix for this vulnerability.
Original NVD description (English source)
The Nexa Blocks – Gutenberg Blocks, Page Builder for Gutenberg Editor & FSE plugin for WordPress is vulnerable to Server-Side Request Forgery (SSRF) in versions up to and including 1.1.1. This is due to the import_demo() function accepting a user-supplied URL in the demo_json_file POST parameter and passing it directly to wp_remote_get() without any URL validation or restriction against internal or private network destinations. The nexa_blocks_nonce required for the AJAX action is publicly exposed in the HTML source of any frontend page where the plugin is active via wp_localize_script on the enqueue_block_assets hook, effectively making the nonce available to all visitors and bypassing any intended authentication barrier. This makes it possible for unauthenticated attackers to make server-side HTTP requests to arbitrary internal or external destinations, potentially exposing internal services, cloud metadata endpoints such as the AWS instance metadata service, localhost services, and other resources not intended to be publicly accessible. A secondary SSRF vector also exists whereby image URLs extracted from the attacker-controlled JSON response are subsequently fetched via a second wp_remote_get() call, allowing chained exploitation through a crafted JSON payload.

