{"id":"CVE-2026-3645","aliases":["EUVD-2026-14170","GHSA-p6xf-h6c6-2mx9"],"status":"published","title":"Punnel \u003c= 1.3.1 - Missing Authorization to Authenticated (Subscriber+) Settings Update via 'punnel_save_config' AJAX Action","description":"The Punnel – Landing Page Builder plugin for WordPress is vulnerable to Missing Authorization in all versions up to, and including, 1.3.1. The save_config() function, which handles the 'punnel_save_config' AJAX action, lacks any capability check (current_user_can()) and nonce verification. This makes it possible for authenticated attackers, with Subscriber-level access and above, to overwrite the plugin's entire configuration including the API key via a POST request to admin-ajax.php. Once the API key is known (because the attacker set it), the attacker can use the plugin's public API endpoint (sniff_requests() at /?punnel_api=1) — which only validates requests by comparing a POST token against the stored api_key — to create, update, or delete arbitrary posts, pages, and products on the site.","severity":{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.0031,"percentile":0.24199,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-862"],"published":"2026-03-21T03:27:00Z","modified":"2026-06-17T10:43:55Z","products":[{"vendor":"punnel","product":"punnel – landing page builder"}],"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/b6f54ca4-297f-44e8-8bb3-25cdc52f94ff?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/punnel-landing-page-builder/trunk/punnel.php#L410"},{"url":"https://plugins.trac.wordpress.org/browser/punnel-landing-page-builder/tags/1.3.1/punnel.php#L410"},{"url":"https://plugins.trac.wordpress.org/browser/punnel-landing-page-builder/trunk/punnel.php#L403"},{"url":"https://plugins.trac.wordpress.org/browser/punnel-landing-page-builder/tags/1.3.1/punnel.php#L403"},{"url":"https://plugins.trac.wordpress.org/browser/punnel-landing-page-builder/trunk/punnel.php#L179"},{"url":"https://plugins.trac.wordpress.org/browser/punnel-landing-page-builder/tags/1.3.1/punnel.php#L179"},{"url":"https://plugins.trac.wordpress.org/browser/punnel-landing-page-builder/trunk/punnel.php#L118"},{"url":"https://plugins.trac.wordpress.org/browser/punnel-landing-page-builder/tags/1.3.1/punnel.php#L118"},{"url":"https://plugins.trac.wordpress.org/browser/punnel-landing-page-builder/trunk/punnel.php#L156"},{"url":"https://plugins.trac.wordpress.org/browser/punnel-landing-page-builder/tags/1.3.1/punnel.php#L156"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-3645"},{"url":"https://github.com/advisories/GHSA-p6xf-h6c6-2mx9"}],"sources":{"cve":[{"id":"CVE-2026-3645","title":"Punnel \u003c= 1.3.1 - Missing Authorization to Authenticated (Subscriber+) Settings Update via 'punnel_save_config' AJAX Action","description":"The Punnel – Landing Page Builder plugin for WordPress is vulnerable to Missing Authorization in all versions up to, and including, 1.3.1. The save_config() function, which handles the 'punnel_save_config' AJAX action, lacks any capability check (current_user_can()) and nonce verification. This makes it possible for authenticated attackers, with Subscriber-level access and above, to overwrite the plugin's entire configuration including the API key via a POST request to admin-ajax.php. Once the API key is known (because the attacker set it), the attacker can use the plugin's public API endpoint (sniff_requests() at /?punnel_api=1) — which only validates requests by comparing a POST token against the stored api_key — to create, update, or delete arbitrary posts, pages, and products on the site.","status":"published","published":"2026-03-21T03:27:00.329Z","modified":"2026-04-08T17:17:34.312Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T13:49:09.229322Z"}],"euvd":[{"id":"EUVD-2026-14170","description":"The Punnel – Landing Page Builder plugin for WordPress is vulnerable to Missing Authorization in all versions up to, and including, 1.3.1. The save_config() function, which handles the 'punnel_save_config' AJAX action, lacks any capability check (current_user_can()) and nonce verification. This makes it possible for authenticated attackers, with Subscriber-level access and above, to overwrite the plugin's entire configuration including the API key via a POST request to admin-ajax.php. Once the API key is known (because the attacker set it), the attacker can use the plugin's public API endpoint (sniff_requests() at /?punnel_api=1) — which only validates requests by comparing a POST token against the stored api_key — to create, update, or delete arbitrary posts, pages, and products on the site.","status":"published","published":"2026-03-21T03:27:00Z","modified":"2026-04-08T17:17:34Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T19:24:43.773985Z"}],"ghsa":[{"id":"GHSA-p6xf-h6c6-2mx9","title":"The Punnel – Landing Page Builder plugin for WordPress is vulnerable to Missing Authorization in...","description":"The Punnel – Landing Page Builder plugin for WordPress is vulnerable to Missing Authorization in all versions up to, and including, 1.3.1. The save_config() function, which handles the 'punnel_save_config' AJAX action, lacks any capability check (current_user_can()) and nonce verification. This makes it possible for authenticated attackers, with Subscriber-level access and above, to overwrite the plugin's entire configuration including the API key via a POST request to admin-ajax.php. Once the API key is known (because the attacker set it), the attacker can use the plugin's public API endpoint (sniff_requests() at /?punnel_api=1) — which only validates requests by comparing a POST token against the stored api_key — to create, update, or delete arbitrary posts, pages, and products on the site.","status":"published","published":"2026-03-21T06:30:25Z","modified":"2026-03-21T06:30:37Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T15:06:45.979177Z"}],"nvd":[{"id":"CVE-2026-3645","description":"The Punnel – Landing Page Builder plugin for WordPress is vulnerable to Missing Authorization in all versions up to, and including, 1.3.1. The save_config() function, which handles the 'punnel_save_config' AJAX action, lacks any capability check (current_user_can()) and nonce verification. This makes it possible for authenticated attackers, with Subscriber-level access and above, to overwrite the plugin's entire configuration including the API key via a POST request to admin-ajax.php. Once the API key is known (because the attacker set it), the attacker can use the plugin's public API endpoint (sniff_requests() at /?punnel_api=1) — which only validates requests by comparing a POST token against the stored api_key — to create, update, or delete arbitrary posts, pages, and products on the site.","status":"published","published":"2026-03-21T04:17:33.017Z","modified":"2026-06-17T10:43:55.057Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T14:12:10.126802Z"}]}}
