WIDGET OPTIONS · CVE-2026-116615 · Package
NO FIX YET
The Widget Options plugin for WordPress, in all versions up to and including 4.2.6.1, lets a user with Author access inject PHP expressions through the post_content parameter. The injected code runs on every front-end page view, can read site configuration such as the admin email and user and post metadata, and can run for unauthenticated visitors when a contributor's post is published by an administrator.
first public Nov 13, 2026 · 1 source
Check it with your coding agent
It reads this page and tells you if your code or app is affected.
Sites running the Widget Options plugin at version 4.2.6.1 or earlier are exposed. An attacker needs an account with Author access or above; contributors can also exploit it when an administrator or editor publishes their submitted post. On a default installation without that publishing setup, Author access or above is required, and sites without the plugin can skip it.
Not affected if no-author-accounts, plugin-not-installed
Who cares self-hosted, widget-options, wordpress, wordpress-plugin
4.2.6.1 and earlier are affected.No fix yet, per the sources.
The Widget Options – Advanced Conditional Visibility for Gutenberg Blocks & Classic Widgets plugin for WordPress is vulnerable to Code Injection in all versions up to, and including, 4.2.6.1 via the post_content parameter. This is due to asymmetric parsing between the save-time strip filter (widgetopts_strip_logic_from_blocks()) and the render-time parser (blockopts_filter_before_display()): embedding an inner <!--start_widgetopts literal inside a JSON key causes the write-side json_decode to see a non-class key and skip stripping — persisting the payload verbatim to the database — while the render-side str_replace reconstitutes the key to class, feeding the attacker-controlled logic value directly into @eval. This makes it possible for authenticated attackers, with Author-level access and above, to inject PHP expressions that execute on every front-end page view, enabling boolean-oracle exfiltration of WordPress site configuration data — including admin email address, default role, and arbitrary get_option, , and values — via the plugin's allowlisted-function sandbox, which escalates to unrestricted code execution if any installed plugin extends the filter. Contributors can also exploit this vulnerability when their submitted post is later published by an administrator; notably, the injected payload executes for all site visitors, including unauthenticated users, because a trust-flag mechanism introduced in version 4.2.6 causes to bypass its non-admin short-circuit at every legacy render callsite. Exploitation by attackers with contributor-level access and above requires that an administrator (or editor) later publishes the contributor's submission. On a default installation, where that is not configured, the vulnerability requires attackers with author-level access and above.
Are you affected?
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
InfraStack checks it against your stack and answers on your report, with the evidence and the fix.
get_user_metaget_post_metawidgetopts_allowed_php_functionswidgetopts_safe_eval_trusted()This page as .md · .json · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.