---
id: CVE-2026-2509
title: >-
  The Page Builder: Pagelayer plugin for WordPress is vulnerable to Stored
  Cross-Site Scripting via the Button widget's Custom Attributes field in all
  versions up to, and including, 2.0.8
summary: >-
  The Page Builder: Pagelayer plugin for WordPress is vulnerable to Stored
  Cross-Site Scripting via the Button widget's Custom Attributes field in all
  versions up to, and including, 2.0.8. This is due to an incomplete event
  handler blockli…
severity: medium
cvss: 6.4
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N'
cwe:
  - CWE-79
published: '2026-04-08'
updated: '2026-07-25'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-2509'
references:
  - url: >-
      https://plugins.trac.wordpress.org/browser/pagelayer/trunk/main/functions.php#L1293
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/pagelayer/trunk/main/shortcode_functions.php#L689
    label: security@wordfence.com
  - url: 'https://plugins.trac.wordpress.org/changeset/3479046/'
    label: security@wordfence.com
  - url: >-
      https://www.wordfence.com/threat-intel/vulnerabilities/id/915c119d-2bae-4ea6-babb-7e8e99054cd0?source=cve
    label: security@wordfence.com
tags:
  - nvd
epss: 0.00345
epssPercentile: 0.25163
ingestedAt: '2026-07-25T23:05:59.207Z'
---

## Overview

The Page Builder: Pagelayer plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the Button widget's Custom Attributes field in all versions up to, and including, 2.0.8. This is due to an incomplete event handler blocklist in the 'pagelayer_xss_content' XSS filtering function, which blocks common, but not all, event handlers. 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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
