Search

Find a vulnerability

Search criteria Use this form to refine search results.
Full-text search supports keyword queries with ranking and filtering.
You can combine vendor, product, and sources to narrow results.
Enable “Apply ordering” to sort by date instead of relevance.

    1 vulnerability by punnel

    CVE-2026-3645 (GCVE-0-2026-3645)

    Vulnerability from cvelistv5 – Published: 2026-03-21 03:27 – Updated: 2026-04-08 17:17
    VLAI
    Title
    Punnel <= 1.3.1 - Missing Authorization to Authenticated (Subscriber+) Settings Update via 'punnel_save_config' AJAX Action
    Summary
    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.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: partial
    CISA Coordinator (v2.0.3)
    CWE
    Assigner
    Impacted products
    Vendor Product Version
    punnel Punnel – Landing Page Builder Affected: 0 , ≤ 1.3.1 (semver)
    Create a notification for this product.
    Credits
    Phong Nguyen
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-3645",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-03-24T13:55:38.136142Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-03-24T13:55:47.127Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "Punnel \u2013 Landing Page Builder",
              "vendor": "punnel",
              "versions": [
                {
                  "lessThanOrEqual": "1.3.1",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Phong Nguyen"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "The Punnel \u2013 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 \u0027punnel_save_config\u0027 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\u0027s 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\u0027s public API endpoint (sniff_requests() at /?punnel_api=1) \u2014 which only validates requests by comparing a POST token against the stored api_key \u2014 to create, update, or delete arbitrary posts, pages, and products on the site."
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "baseScore": 5.3,
                "baseSeverity": "MEDIUM",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N",
                "version": "3.1"
              }
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-862",
                  "description": "CWE-862 Missing Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-04-08T17:17:34.312Z",
            "orgId": "b15e7b5b-3da4-40ae-a43c-f7aa60e62599",
            "shortName": "Wordfence"
          },
          "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"
            }
          ],
          "timeline": [
            {
              "lang": "en",
              "time": "2026-03-20T15:09:24.000Z",
              "value": "Disclosed"
            }
          ],
          "title": "Punnel \u003c= 1.3.1 - Missing Authorization to Authenticated (Subscriber+) Settings Update via \u0027punnel_save_config\u0027 AJAX Action"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "b15e7b5b-3da4-40ae-a43c-f7aa60e62599",
        "assignerShortName": "Wordfence",
        "cveId": "CVE-2026-3645",
        "datePublished": "2026-03-21T03:27:00.329Z",
        "dateReserved": "2026-03-06T16:19:32.782Z",
        "dateUpdated": "2026-04-08T17:17:34.312Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }