{"id":"CVE-2026-77829","kind":"vulnerability","aliases":["CVE-2026-77829"],"related":[],"title":"WordPress Cooked recipe plugin: stored XSS via cooked-timer shortcode","description":"The Cooked – Recipe Management plugin for WordPress is vulnerable to Stored Cross-Site Scripting via [cooked-timer] Shortcode Content in all versions up to, and including, 1.16.1 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","summary":"The Cooked recipe management plugin for WordPress does not sanitize content passed to its [cooked-timer] shortcode, in all versions up to and including 1.16.1. A contributor-level user can store a script in a page that runs in the browser of anyone who opens it.","severity":"medium","cvss":6.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["cooked","package","self-hosted","wordpress","wordpress-plugin"],"not_affected_if":["no-contributor-accounts","plugin-not-installed","plugin-updated","shortcode-unused"],"how_to_check":"- Check the installed Cooked plugin version in the WordPress admin under Plugins; versions up to and including `1.16.1` are affected.\n- Search post and page content for the `[cooked-timer]` shortcode to find where it is used.","fix":"- Update the Cooked plugin to a version later than `1.16.1`; the sources do not name the fixed version, so check the plugin's changelog.\n- Until patched, remove the `[cooked-timer]` shortcode from content written by untrusted contributors.","status":"open","published_at":"2026-10-16T04:18:38+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","triaged_at":"2026-10-25T03:59:58+00:00","updated_at":"2026-10-25T03:59:58+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-25T03:59:58Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Cooked plugin to a version later than `1.16.1`; the sources do not name the fixed version, so check the plugin's changelog.\n- Until patched, remove the `[cooked-timer]` shortcode from content written by untrusted contributors.","reach":"internet","title":"WordPress Cooked recipe plugin: stored XSS via cooked-timer shortcode","impact":"medium","summary":"The Cooked recipe management plugin for WordPress does not sanitize content passed to its [cooked-timer] shortcode, in all versions up to and including 1.16.1. A contributor-level user can store a script in a page that runs in the browser of anyone who opens it.","category":"package","nicknames":[],"who_cares":["wordpress","wordpress-plugin","cooked","self-hosted"],"confidence":0.8,"needs_auth":"yes","worst_case":"Scripts run in visitors' browsers, potentially including administrators, stealing sessions.","analyst_note":"","how_to_check":"- Check the installed Cooked plugin version in the WordPress admin under Plugins; versions up to and including `1.16.1` are affected.\n- Search post and page content for the `[cooked-timer]` shortcode to find where it is used.","needs_analyst":false,"not_affected_if":["plugin-not-installed","plugin-updated","no-contributor-accounts","shortcode-unused"],"who_is_affected":"Sites running the Cooked plugin at version 1.16.1 or earlier that let contributor-level or higher users create pages or posts using the [cooked-timer] shortcode. Sites without the plugin, or where only trusted editors write content, have lower exposure. Note that stored script runs for every visitor who opens the injected page, including administrators.","user_interaction":"yes","needs_special_setup":"no","severity_if_unknown":"medium"},"cost_usd":0.000654,"input_tokens":3377,"output_tokens":633,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-77829':14A,17A '1.16.1':52B,102C 'access':122C,138C 'anyon':71B 'arbitrari':127C 'attack':117C 'authent':116C 'browser':69B 'content':37B,94C 'contributor':55B,120C 'contributor-level':54B,119C 'cook':2A,9A,18B,28B,42B,75C,91C 'cooked-tim':8A,41B,90C 'cross':86C 'cross-sit':85C 'cve':12A,15A 'due':103C 'escap':110C 'execut':134C 'host':22B 'includ':51B,101C 'inject':126C,140C 'input':106C 'insuffici':105C 'level':56B,121C 'make':112C 'manag':30B,77C 'open':73B 'output':109C 'packag':19B 'page':64B,131C,141C 'pass':38B 'plugin':4A,26B,31B,78C 'possibl':114C 'recip':3A,29B,76C 'run':66B 'sanit':36B,107C 'script':61B,88C,129C 'self':21B 'self-host':20B 'shortcod':11A,44B,93C 'site':87C 'store':5A,59B,84C 'timer':10A,43B,92C 'user':57B,137C 'version':47B,97C 'via':7A,89C 'vulner':82C 'web':128C 'whenev':135C 'wordpress':1A,23B,25B,33B,80C 'wordpress-plugin':24B 'xss':6A","nicknames":[],"mitigations":[],"who_affected":"Sites running the Cooked plugin at version 1.16.1 or earlier that let contributor-level or higher users create pages or posts using the [cooked-timer] shortcode. Sites without the plugin, or where only trusted editors write content, have lower exposure. Note that stored script runs for every visitor who opens the injected page, including administrators.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T04:18:38+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-77829","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-77829","severity":null,"published_at":"2026-10-16T04:18:38+00:00","modified_at":"2026-10-16T17:17:50+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","fetched_at":"2026-10-23T22:28:54+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}