{"api_version":"1","generated_at":"2026-11-09T17:13:07+00:00","cve":"CVE-2026-121516","urls":{"html":"https://cve.report/CVE-2026-121516","api":"https://cve.report/api/cve/CVE-2026-121516.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-121516","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-121516"},"summary":{"title":"QODE Wishlist for WooCommerce <= 1.2.9 - Unauthenticated Stored Cross-Site Scripting via 'table_title' Shared Wishlist Field via Guest Cookie","description":"The QODE Wishlist for WooCommerce plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'qode_wishlist_for_woocommerce_guests_items' parameter in all versions up to, and including, 1.2.9 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is exploitable by guests because the required wp_rest nonce is publicly emitted to unauthenticated visitors on the /wishlist/ page, and the attacker controls the transient key, meaning the payload is stored site-wide and only requires a victim to open a crafted share URL and click the injected title link. Successful exploitation additionally requires an action by an administrator — the attacker cannot trigger the vulnerability on their own.","state":"PUBLISHED","assigner":"Wordfence","published_at":"2026-11-07 04:17:18","updated_at":"2026-11-07 18:17:19"},"problem_types":["CWE-79","CWE-79 CWE-79 Improper Neutralization of Input During Web Page Generation"],"metrics":[{"version":"3.1","source":"security@wordfence.com","type":"Secondary","score":"6.1","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","baseScore":6.1,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"REQUIRED","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"6.1","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","data":{"baseScore":6.1,"baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","version":"3.1"}}],"references":[{"url":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/assets/js/main.js#L857","name":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/assets/js/main.js#L857","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/inc/wishlist/shortcodes/wishlist-table/templates/parts/section-title.php#L14","name":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/inc/wishlist/shortcodes/wishlist-table/templates/parts/section-title.php#L14","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/inc/wishlist/shortcodes/add-to-wishlist/helper-ajax.php#L83","name":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/inc/wishlist/shortcodes/add-to-wishlist/helper-ajax.php#L83","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/changeset/3783991/qode-wishlist-for-woocommerce/trunk/assets/js/main.js","name":"https://plugins.trac.wordpress.org/changeset/3783991/qode-wishlist-for-woocommerce/trunk/assets/js/main.js","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/inc/wishlist/helper.php#L949","name":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/inc/wishlist/helper.php#L949","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/fb50261f-c769-4fbb-a23a-eee3744b5317?source=cve","name":"https://www.wordfence.com/threat-intel/vulnerabilities/id/fb50261f-c769-4fbb-a23a-eee3744b5317?source=cve","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce?rev=3783991","name":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce?rev=3783991","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/inc/wishlist/helper.php#L150","name":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/inc/wishlist/helper.php#L150","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-121516","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121516","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"qodeinteractive","product":"QODE Wishlist for WooCommerce","version":"affected 1.2.9 semver","platforms":[]}],"timeline":[{"source":"CNA","time":"2026-11-03T14:40:24.000Z","lang":"en","value":"Vendor Notified"},{"source":"CNA","time":"2026-11-06T15:21:38.000Z","lang":"en","value":"Disclosed"}],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"CNA","value":"Mohamed Amgad Khater (mamgad)","lang":"en"}],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"121516","cve":"CVE-2026-121516","epss":"0.002800000","percentile":"0.206020000","score_date":"2026-11-08","updated_at":"2026-11-09 00:01:52"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"metrics":[{"other":{"content":{"id":"CVE-2026-121516","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","timestamp":"2026-11-07T18:02:06.994062Z","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2026-11-07T18:06:07.336Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"defaultStatus":"unaffected","product":"QODE Wishlist for WooCommerce","vendor":"qodeinteractive","versions":[{"lessThanOrEqual":"1.2.9","status":"affected","version":"0","versionType":"semver"}]}],"credits":[{"lang":"en","type":"finder","value":"Mohamed Amgad Khater (mamgad)"}],"descriptions":[{"lang":"en","value":"The QODE Wishlist for WooCommerce plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'qode_wishlist_for_woocommerce_guests_items' parameter in all versions up to, and including, 1.2.9 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is exploitable by guests because the required wp_rest nonce is publicly emitted to unauthenticated visitors on the /wishlist/ page, and the attacker controls the transient key, meaning the payload is stored site-wide and only requires a victim to open a crafted share URL and click the injected title link. Successful exploitation additionally requires an action by an administrator — the attacker cannot trigger the vulnerability on their own."}],"metrics":[{"cvssV3_1":{"baseScore":6.1,"baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-79","description":"CWE-79 Improper Neutralization of Input During Web Page Generation","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-11-07T03:28:06.951Z","orgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","shortName":"Wordfence"},"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/fb50261f-c769-4fbb-a23a-eee3744b5317?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/assets/js/main.js#L857"},{"url":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/inc/wishlist/shortcodes/wishlist-table/templates/parts/section-title.php#L14"},{"url":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/inc/wishlist/helper.php#L949"},{"url":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/inc/wishlist/shortcodes/add-to-wishlist/helper-ajax.php#L83"},{"url":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce/tags/1.2.9/inc/wishlist/helper.php#L150"},{"url":"https://plugins.trac.wordpress.org/browser/qode-wishlist-for-woocommerce?rev=3783991"},{"url":"https://plugins.trac.wordpress.org/changeset/3783991/qode-wishlist-for-woocommerce/trunk/assets/js/main.js"}],"timeline":[{"lang":"en","time":"2026-11-03T14:40:24.000Z","value":"Vendor Notified"},{"lang":"en","time":"2026-11-06T15:21:38.000Z","value":"Disclosed"}],"title":"QODE Wishlist for WooCommerce <= 1.2.9 - Unauthenticated Stored Cross-Site Scripting via 'table_title' Shared Wishlist Field via Guest Cookie"}},"cveMetadata":{"assignerOrgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","assignerShortName":"Wordfence","cveId":"CVE-2026-121516","datePublished":"2026-11-07T03:28:06.951Z","dateReserved":"2026-11-03T14:22:10.759Z","dateUpdated":"2026-11-07T18:06:07.336Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-11-07 04:17:18","lastModifiedDate":"2026-11-07 18:17:19","problem_types":["CWE-79","CWE-79 CWE-79 Improper Neutralization of Input During Web Page Generation"],"metrics":{"cvssMetricV31":[{"source":"security@wordfence.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","baseScore":6.1,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"REQUIRED","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE"},"exploitabilityScore":2.8,"impactScore":2.7}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2026-11-07T18:02:06.994062Z","id":"CVE-2026-121516","options":[{"exploitation":"none"},{"automatable":"no"},{"technicalImpact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"121516","Ordinal":"1","Title":"QODE Wishlist for WooCommerce <= 1.2.9 - Unauthenticated Stored ","CVE":"CVE-2026-121516","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"121516","Ordinal":"1","NoteData":"The QODE Wishlist for WooCommerce plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'qode_wishlist_for_woocommerce_guests_items' parameter in all versions up to, and including, 1.2.9 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is exploitable by guests because the required wp_rest nonce is publicly emitted to unauthenticated visitors on the /wishlist/ page, and the attacker controls the transient key, meaning the payload is stored site-wide and only requires a victim to open a crafted share URL and click the injected title link. Successful exploitation additionally requires an action by an administrator — the attacker cannot trigger the vulnerability on their own.","Type":"Description","Title":"QODE Wishlist for WooCommerce <= 1.2.9 - Unauthenticated Stored "}]}}}