CVE-2026-89274 in WP Recipe Maker Plugininfo

Summary

by MITRE • 09/19/2026

The WP Recipe Maker plugin for WordPress is vulnerable to Arbitrary Shortcode Execution in all versions up to, and including, 10.8.1. The vulnerability exists because `WPRM_Metadata::sanitize_metadata()` recursively calls `do_shortcode()` on every scalar field of the recipe's structured metadata array — including the `reviewBody` field, which is populated verbatim from the `comment_content` of approved `wprm-comment-rating` comments — without sanitizing or stripping shortcode tokens before execution; the subsequent `wp_strip_all_tags()` and `strip_shortcodes()` calls operate only on the output string after execution has already fully occurred, providing no protection against server-side shortcode invocation. This makes it possible for unauthenticated attackers to execute arbitrary registered WordPress shortcodes server-side on every recipe page render, causing shortcode output — such as attachment captions, private post fields, or other data exposed by installed shortcodes — to be embedded in the page's JSON-LD `reviewBody` metadata and disclosed to all visitors who load the recipe page. Successful exploitation requires the attacker's rated comment to pass the site's comment approval threshold, either via auto-approval or moderator action, before the injected shortcode begins executing on page loads.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 09/19/2026

The WP Recipe Maker plugin for WordPress contains a critical Arbitrary Shortcode Execution vulnerability affecting all versions up to and including 10.8.1. This flaw stems from improper input validation and sanitization within the `WPRM_Metadata::sanitize_metadata()` function, which is responsible for processing structured metadata arrays associated with recipes. The core technical issue lies in the recursive invocation of WordPress's native `do_shortcode()` function on every scalar field within this array without prior filtering or stripping of shortcode tokens. This design choice allows any registered WordPress shortcodes embedded within user-supplied data to be executed server-side during the rendering process, rather than being treated as inert text content.

The specific attack vector targets the `reviewBody` field in the recipe's structured metadata. This field is populated directly from the `comment_content` of approved comments submitted via the `wprm-comment-rating` feature. Because the plugin does not strip shortcode syntax before passing this data to `do_shortcode()`, an attacker can inject malicious shortcodes into their comment content. Although the function subsequently calls `wp_strip_all_tags()` and `strip_shortcodes()`, these operations occur only after the server-side execution of any embedded shortcodes has already taken place. Consequently, the protective measures are rendered ineffective against code injection that relies on immediate execution during data processing.

Successful exploitation requires a specific sequence of events involving user interaction and administrative oversight. An unauthenticated attacker must first submit a comment containing malicious shortcode payloads through the rating interface. For this payload to become active, the comment must pass the site's approval threshold, either by being auto-approved based on configuration settings or by receiving manual approval from a moderator. Once approved, every subsequent render of any recipe page that utilizes this metadata will trigger the execution of the injected shortcodes. This transforms what appears to be standard user feedback into a persistent server-side code injection point.

The operational impact of this vulnerability is significant data disclosure and potential further system compromise. When the malicious shortcodes execute on each page load, they can output sensitive information such as attachment captions, private post fields, or other data exposed by installed plugins that register accessible shortcodes. This content is then embedded into the JSON-LD `reviewBody` metadata within the HTML source of the recipe pages. As a result, any visitor loading these pages receives this sensitive data in their browser response, leading to unauthorized information exposure. The persistence of the vulnerability means that every page view serves as an opportunity for exploitation until the vulnerable comment is removed or the plugin is updated.

From a classification perspective, this vulnerability aligns with CWE-94 Improper Control of Generation of Code (Code Injection) and specifically CWE-77 Command Injection via Shortcodes in WordPress contexts. In terms of the MITRE ATT&CK framework for Enterprise, this behavior maps to T1059 Command and Scripting Interpretation, where an attacker uses a system's native scripting capabilities to execute arbitrary commands or logic. The attack also reflects aspects of CWE-20 Improper Input Validation, as the application fails to neutralize special elements that could be interpreted by the interpreter before processing.

Mitigation strategies should prioritize immediate patching and input hardening. Administrators must upgrade WP Recipe Maker to a version newer than 10.8.1 where this sanitization logic has been corrected to strip shortcodes prior to execution or disable shortcode parsing in metadata fields entirely. In environments where upgrading is not immediately feasible, administrators can mitigate risk by disabling the `wprm-comment-rating` feature if it is not essential, thereby removing the primary attack vector for unauthenticated users. Additionally, implementing strict comment moderation policies that prevent auto-approval of comments containing suspicious patterns or shortcode syntax can reduce the window of exposure while waiting for a patch. Regular auditing of installed plugins and their handling of user-supplied data in structured metadata fields remains critical to preventing similar injection flaws across WordPress ecosystems.

Responsible

Wordfence

Reservation

09/11/2026

Disclosure

09/19/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Do you know our Splunk app?

Download it now for free!