☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
BuddyPress logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.4 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2020-37233

CVE-2020-37233 — WordPress Plugin Buddypress 6.2.0 Persistent Cross-Site Scripting
📅 PUBLISHED: 2026-05-16 00:00 UTC 🔄 UPDATED: 2026-10-17 15:48 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.28%
👁️
0.28% probability
6.9× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: USA License: Open Source
VULNERABLE: 6.2.0 (and potentially earlier versions; no patched version confirmed)
CVSS VECTOR BREAKDOWN 6.4
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
6.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2020-37233 is a persistent cross-site scripting (XSS) vulnerability in the WordPress plugin BuddyPress 6.2.0, triggered when an authenticated attacker with moderator privileges injects malicious markup via the figure parameter inside wp:html blocks. Because the injected iframe-based payload is stored and later rendered for administrators and other privileged users who preview or view the affected content, successful exploitation enables session hijacking and persistent phishing against high-privilege WordPress accounts. The vulnerability carries a CVSS v3.1 base score of 6.4 (Medium) and, at the time of this report, has no confirmed vendor patch.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The flaw is a stored/persistent cross-site scripting issue (CWE-79) rooted in insufficient sanitization of user-controlled markup. The affected surface is the Gutenberg block editor content model: BuddyPress 6.2.0 processes wp:html block content and does not adequately neutralize attacker-supplied markup within the figure parameter of that block.

The attack mechanism follows the classic stored-XSS pattern:

  • Injection point: the figure parameter inside wp:html blocks, writable by users holding moderator privileges.
  • Payload class: arbitrary HTML/script inclusion — the NVD description specifically notes injection of <iframe> elements carrying JavaScript event handlers such as onload.
  • Trigger/storage: the malicious content is persisted server-side (hence "persistent") rather than reflected, meaning it remains in the stored post/page content between requests.
  • Execution context: the payload executes in the browser session of any administrator or privileged user who previews or views the affected page content, in the security context of the WordPress application (site origin).

Severity characteristics from the CVSS vector: the attack is network-reachable (AV:N) and low-complexity (AC:L), but requires authenticated privileges (PR:L — moderator). The S:C (scope changed) component reflects that the injected script runs with privileges/impact beyond the vulnerable content component — notably access to an administrator's session. Confidentiality and Integrity impacts are both Low (C:L/I:L), and Availability is None (A:N). No user interaction is required of the victim in the vector (UI:N), since the payload fires automatically via an event handler such as onload when content is rendered.

No public exploit code and no Nuclei template are associated with this CVE in the provided data. The precise sanitization routine responsible for the bypass is not documented in the available description, so the exact filtering weakness remains a matter of the described attack class rather than a named, confirmed code defect.

Exploitation Scenarios

The following chain is derived strictly from the NVD description and the vulnerability class; no public PoC is available, so steps are described at the mechanism level.

  1. Reconnaissance/target identification. An attacker identifies a WordPress installation running BuddyPress 6.2.0 with the block editor (wp:html blocks) in use. The attacker must hold a legitimate account with moderator-level privileges on the target site.

  2. Triggering the flaw. Using moderator access, the attacker creates or edits content containing a wp:html block and supplies malicious markup through the figure parameter. The payload takes the form of an <iframe> element bearing an event handler (e.g., onload) that executes JavaScript when the element loads. Because the input is not properly sanitized, the payload is stored in the content.

  3. Payload/execution. The malicious content is saved (persistence). When an administrator or other privileged user previews or views the affected page, the browser renders the stored wp:html block, the iframe loads, and the onload handler executes the attacker's script in the site's origin — with no additional victim interaction required.

  4. Post-exploitation impact. Executed script can act within the privileged user's session: exfiltrating session cookies/tokens (enabling session hijacking), performing authenticated actions on the victim's behalf, or presenting persistent phishing content. Because the payload is stored, every privileged viewer is exposed on each render until the content is cleaned.

Impact Assessment

Successful exploitation lets an authenticated moderator escalate effective control over privileged users' browser sessions, undermining the WordPress administrative boundary that is supposed to contain moderator-level users. Business impact centers on:

  • Session hijacking / account takeover of administrator accounts, enabling full site compromise (content, plugins, users, SEO injection).
  • Persistent phishing delivered from a trusted first-party origin, damaging user trust and brand reputation.
  • Blast radius: all administrators and privileged users who preview or view the poisoned content; on multi-author/multi-moderator sites this may be a broad internal set. Public-facing community sites (a typical BuddyPress deployment) increase exposure of privileged reviewers.

The CVSS base of 6.4 reflects Medium severity: network-reachable and low-complexity but requiring moderator authentication, with scope change and Low confidentiality/integrity impact. It is not listed in CISA KEV, and EPSS is low (0.00278, ~18.9th percentile), indicating no observed mass exploitation — but the stored nature and privileged target set make it operationally significant for affected installations.

Detection Guidance

Sigma Rule

title: BuddyPress Stored XSS via wp:html figure Parameter
id: 8f2c1a7e-buddypress-xss-2020-37233
status: experimental
description: Detects storage of iframe/event-handler payloads in wp:html blocks via the figure parameter (CVE-2020-37233)
logsource:
  product: wordpress
  service: web
detection:
  selection_endpoint:
    cs-method: 'POST'
    cs-uri-query|contains:
      - 'post.php'
      - 'admin-ajax.php'
  selection_payload:
    c-uri|contains|all:
      - 'wp:html'
    c-uri|contains:
      - 'figure'
      - '<iframe'
  selection_handler:
    c-uri|contains:
      - 'onload'
      - 'onerror'
      - 'onmouseover'
  condition: selection_endpoint and selection_payload and selection_handler
fields:
  - c-ip
  - cs-username
  - cs-uri
falsepositives:
  - Legitimate embedded media iframes created by trusted editors
level: high
tags:
  - attack.t1059
  - cve.2020-37233

YARA Rule

rule CVE_2020_37233_BuddyPress_Stored_XSS
{
    meta:
        description = "Detects stored XSS payload markers in BuddyPress wp:html figure content"
        cve = "CVE-2020-37233"
        author = "Threat Intelligence"
    strings:
        $wphtml = "wp:html" ascii nocase
        $figure = "figure" ascii nocase
        $iframe = "<iframe" ascii nocase
        $onload = "onload" ascii nocase
        $onerror = "onerror" ascii nocase
        $script = "<script" ascii nocase
    condition:
        $wphtml and $figure and $iframe and any of ($onload, $onerror, $script)
}

Suricata IDS Rule

alert http $HOME_NET any -> $HOME_NET any (msg:"CVE-2020-37233 BuddyPress stored XSS via wp:html figure parameter"; flow:established,to_server; content:"POST"; http_method; content:"wp:html"; http_client_body; nocase; content:"figure"; http_client_body; nocase; content:"<iframe"; http_client_body; nocase; pcre:"/(onload|onerror|onmouseover)\s*=/i"; classtype:web-application-attack; sid:202037233; rev:1;)

Elastic Detection

sequence by host.id, user.name with maxspan=5s
  [network where http.request.method == "POST" and
     wildcard(http.request.body, "*wp:html*")]
  [network where http.request.method == "POST" and
     wildcard(http.request.body, "*figure*") and
     wildcard(http.request.body, "*<iframe*") and
     wildcard(http.request.body, "*onload*")]

Splunk SPL Query

index=web sourcetype=access_combined OR sourcetype=wordpress
| search method=POST (uri_path="*/post.php" OR uri_path="*/admin-ajax.php")
| eval body=coalesce(form_data, post_body, _raw)
| search body="*wp:html*" body="*figure*" body="*<iframe*" (body="*onload*" OR body="*onerror*")
| stats count values(uri_path) as paths by src_ip user
| where count > 0

Wazuh OSSEC Rule

<group name="web,wordpress,buddypress,">
  <rule id="202037233" level="10">
    <if_sid>31100,31103</if_sid>
    <match>wp:html</match>
    <regex type="pcre2">figure.*&lt;iframe.*on(load|error)</regex>
    <description>CVE-2020-37233: Possible BuddyPress stored XSS payload via wp:html figure parameter</description>
    <mitre>
      <id>T1059</id>
    </mitre>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source).

  1. Immediate mitigations:

    • Restrict moderator privileges to the minimum necessary and review who holds them; the vulnerability requires moderator authentication to exploit.
    • Disable or restrict Gutenberg wp:html custom HTML blocks for untrusted roles (e.g., via a content-filtering plugin or role-capability restrictions).
    • Deploy server-side/WAF output filtering or a WordPress security plugin that sanitizes stored markup (iframe tags and inline event handlers such as onload) before rendering.
    • Audit existing posts/pages for injected wp:html content containing figure-supplied <iframe>/event-handler payloads and remediate affected content.
  2. Patch/upgrade steps:

    • No vendor-patched version is confirmed; monitor the BuddyPress project for an advisory/patched release addressing wp:html figure sanitization and upgrade as soon as one is published. Given no fix is available, do not assume any specific version is safe.
  3. Long-term hardening:

    • Enforce Content-Security-Policy (CSP) to block inline script execution and inline event handlers where feasible.
    • Apply HTTPOnly/Secure cookies and short session lifetimes to limit session-hijacking impact.
    • Enable WordPress auto-update/notification tracking for plugins and maintain a vulnerability-management process that flags plugins with unpatched CVEs.
    • Apply least-privilege role design so moderation is separated from administration and privileged previews are limited.

References

No known threat-actor campaign or confirmed in-the-wild exploitation is documented in the available data for this CVE.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

product:"BuddyPress"
title:"BuddyPress"
product:"BuddyPress" "6.2.0"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2020-37233/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.