Skip to main content

CMB2 CVE-2026-102772

| EUVDEUVD-2026-91243 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-02 Wordfence GHSA-3cr2-3237-fc84
7.2
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Fetch CMB2 box nonce via public GET
  2. Exploit
    Submit XSS payload to textarea_code field
  3. Execution
    Payload stored without sanitization
  4. Impact
    Script executes in visitors' browsers

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the target site to expose a front-end (public-facing) CMB2 form that saves a textarea_code-type field (e.g. kl_code, kl_post_code); this front-end save path is reachable by anyone because it only needs the CMB2 box nonce, which is emitted to all visitors - including unauthenticated guests - via a simple GET request, so no credentials are needed once such a form exists. The key LIMITING factor is that this public textarea_code form is not CMB2's default configuration (CMB2 is predominantly used for admin-only metaboxes), so sites that only use CMB2 in wp-admin are not exposed via this unauthenticated path. Affects all versions up to and including 2.13.1. Being stored XSS, the injected script only fires when a user subsequently loads the affected page.

Impact

The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N, base 7.2 High) describes a network-reachable, low-complexity, unauthenticated stored XSS with a scope change - consistent with CWE-79 affecting other users once a payload is stored. However, the real-world priority is substantially tempered by a deployment precondition: the description itself states exploitation only works 'on sites that expose a public CMB2 form writing a textarea_code field,' which is NOT CMB2's default behavior (CMB2 is primarily an admin-side metabox framework). No EPSS score, KEV listing, POC, or SSVC data was supplied in the input, so exploitation probability and automatability cannot be quantified - absence of these signals is noted but not treated as evidence of safety. Exploitation status: no public exploit identified at time of analysis. Net assessment: a legitimately exploitable unauthenticated stored XSS against affected deployments, but one whose blast radius depends heavily on a non-default front-end form configuration rather than being universally exploitable across all CMB2 installs; treat as a genuine High-priority patch for sites using public CMB2 forms, and a lower-priority hygiene fix for the typical admin-only deployment.

Exploit ScenarioDerived

An attacker targets a WordPress site that publishes a public-facing CMB2 form writing a textarea_code field (e.g. kl_code), fetches the required CMB2 box nonce via a simple unauthenticated GET request, then submits a crafted request containing a JavaScript payload into that field. Because input is insufficiently sanitized and output is not escaped, the payload is stored and later executes in the browser of every user (including administrators) who views the injected page. No public exploit code is identified in the provided data, and no authentication or user interaction by the attacker is required.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 02, 2026

Stored cross-site scripting in the CMB2 WordPress plugin, affecting versions through 2.13.1, lets unauthenticated attackers inject arbitrary scripts into pages that expose a public front-end CMB2 form saving a textarea_code field such as kl_code or kl_post_code. The root cause is insufficient sanitization and output escaping of that field, and the front-end save path is reachable without credentials because it requires only a CMB2 box nonce that is emitted to all visitors, including guests; the injected payload then executes when a victim loads the affected page. CVSS 3.1 rates this High (7.2, AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N), but real-world exposure is limited to the non-default case of public textarea_code forms, and no public exploit identified at time of analysis or CISA KEV confirmation was provided.

RemediationAI

Apply a vendor-released CMB2 update once a patched version newer than 2.13.1 is confirmed; the provided data indicates an upstream Trac changeset for CMB2 (https://plugins.trac.wordpress.org/changeset?reponame=&old=3720258%40cmb2&new=3720258%40cmb2), but no exact released patched version was independently confirmed, so verify the current plugin version against the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/338d824c-e99a-48c2-8844-4ca1104b5143?source=cve before relying on an update. If immediate patching is not possible, remove or disable any public/front-end CMB2 forms that save textarea_code fields such as kl_code or kl_post_code, or require authentication and an appropriate capability check on those save actions instead of relying only on the CMB2 box nonce; this breaks intended public submission workflows but closes the unauthenticated save path. Additionally, sanitize and escape textarea_code values on save and display, restrict unauthenticated POSTs to the affected save endpoint, and consider WAF/virtual-patching rules that block script-containing payloads in those field parameters, while accepting that blocking all script-like content may interfere with legitimate code snippets.

Affected VersionsENISA

CMB2 0 ≤2.13.1

Affected Packages

euvd cmb2 no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

CMB2 is a WordPress library/plugin used to create custom metaboxes and field types, including textarea_code fields designed to store code snippets. CWE-79 applies because the plugin fails to sanitize the textarea_code value on save and fails to escape it on display; the referenced source locations include CMB2_Field_Display.php#L288, CMB2_Sanitize.php#L464, helper-functions.php#L320, and CMB2_Hookup.php#L900, which align with output rendering, sanitization, and hookup/front-end save logic. The front-end save path is protected only by a CMB2 box nonce, and that nonce is emitted to all visitors via a simple GET request, so an unauthenticated guest can obtain it and submit a stored XSS payload when a site exposes a public CMB2 form that writes a textarea_code field. The CPE cpe:2.3:a:jtsternberg:cmb2:*:*:*:*:*:*:*:* and EUVD range CMB2 0 ≤2.13.1 indicate all versions up to and including 2.13.1 are in scope. The scope change in the CVSS vector reflects that the injected script can affect other users/pages beyond the vulnerable component once stored.

Know when Cmb2 gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Wordfence) PRIMARY 7.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 7.2 HIGH

Unauthenticated front-end save path reachable with only a publicly emitted nonce justifies AV:N/AC:L/PR:N/UI:N; stored XSS crossing into victims' browsers gives S:C with C:L/I:L and no availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

The CMB2 plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the '<textarea_code field id> (e.g. kl_code, kl_post_code)' parameter in all versions up to, and including, 2.13.1 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. The front-end save path requires only a CMB2 box nonce, which is emitted to all visitors including unauthenticated guests via a simple GET request, making the attack trivially reachable without any credentials on sites that expose a public CMB2 form writing a textarea_code field.

Executive ViewAI

Why It Matters

CMB2 WordPress plugin, versions through 2.13.1, contains a stored cross-site scripting exposure that can affect site visitors when organizations operate public front-end forms with textarea_code fields. As an unauthenticated issue with no vendor-released patch identified at time of analysis, leadership should prioritize identifying affected sites and limiting public form exposure to protect users and brand trust, while recognizing that no public exploit identified at time of analysis and real-world risk is concentrated in non-default configurations.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations include disabling or removing public front-end CMB2 forms that save textarea_code fields (e.g., kl_code, kl_post_code), restricting form submissions to authenticated users, deactivating the CMB2 plugin if not essential, deploying WAF rules to block script injection, sanitizing and escaping stored field values, and monitoring/cleaning stored payloads until a vendor patch is available.

Threat Intelligence Overview

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Medium
popular WordPress metabox framework, but vulnerable front-end form config is non-default
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy