CVE-2026-55230
Executive Summary
CVE-2026-55230 is a stored cross-site scripting (XSS) vulnerability in Vvveb CMS, affecting all versions prior to 1.0.8.6. The HTML sanitizer fails to strip event-handler attributes when a tag contains a greater-than character inside a quoted attribute value, allowing a low-privilege content author or contributor to persist JavaScript into posts or product content. The injected script executes in the browsers of all visitors and any administrator who views or previews the content, creating a direct path to administrator account takeover and full site compromise. The CVSS score is 8.7 (High), driven by scope change and high confidentiality/integrity impact.
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.
No signup required
Technical Analysis
Vvveb is a CMS with an integrated page builder for websites, blogs, and ecommerce stores. The vulnerability resides in its server-side HTML sanitization routine, which is responsible for stripping dangerous markup—including event-handler attributes such as those beginning with "on" (for example, onerror, onload, onclick)—from user-supplied content before storage and later rendering.
Per the NVD description, the sanitizer's parsing logic is defeated when a tag carries a greater-than character (">") inside a quoted attribute value. This is a classic parser-differential / mutation-XSS condition: HTML sanitizers that tokenize markup with pattern matching or incomplete state machines can be confused when an attribute value (e.g., a value enclosed in single or double quotes) contains a ">" character. The sanitizer effectively believes the tag has terminated at the embedded ">" and therefore stops examining the remainder of the actual tag as part of the attribute-bearing element. Attribute handling for that element is then skipped or applied to the wrong fragment, so event-handler attributes that should have been removed survive sanitization.
The consequence is that the stored content—authored through normal post or product editing functionality—retains an event-handler attribute. When a browser parses the same markup, it follows the HTML5 tokenizer specification and correctly treats the ">" inside the quoted attribute value as literal data, not as a tag boundary. The browser therefore recognizes the full element including the malicious event handler and executes the associated JavaScript when the corresponding event fires (for example, an image load error or page load). The mismatch between the sanitizer's parsing model and the browser's parsing model is the root cause, and it is a well-known weakness class in HTML sanitization.
The attack surface is any post or product content field processed by the sanitizer. The required privilege level is low: the default Vvveb roles "author" or "contributor" are sufficient to store content. No public proof-of-concept, Nuclei template, or exploit code is available, and no EPSS score has been assigned by FIRST.org at the time of writing. Because the flaw is a logic/parsing defect in sanitization rather than a memory-safety issue, exploitation is not dependent on a remote crash or on any specific server configuration—only on a victim rendering the poisoned content in a browser.
Exploitation Scenarios
No public PoC is available; the attack chain below is inferred from the vulnerability class (CWE-79, stored XSS via sanitizer bypass) and the NVD description. No specific function names, endpoints, or parameter names beyond those in the description are asserted.
Reconnaissance / target identification. An attacker identifies an internet-facing Vvveb instance (version prior to 1.0.8.6) using site fingerprinting—page build artifacts, content paths, or the presence of the Vvveb CMS in HTTP responses. The attacker then seeks to obtain or already possesses a low-privilege account with the default "author" or "contributor" role; registration abuse, credential reuse, or a provisioned-but-untrusted content contributor all suffice. No elevated privileges are required at this stage.
Triggering the flaw. Using the CMS content authoring interface, the attacker creates or edits a post or product and inserts crafted HTML in which an element carries an event-handler attribute. The decisive detail is that the element's quoted attribute value contains a greater-than character, which causes the sanitizer to misparse tag boundaries and fail to remove the event-handler attribute. The exact markup is not published; the exploitable property is the sanitizer's inability to handle ">" inside a quoted attribute value, as stated in the NVD description.
Payload execution. The payload is stored server-side with the malicious event-handler attribute intact. When any visitor loads the affected post or product page—or when an administrator views or previews the content, including in the administrative preview flow—the victim's browser parses the element correctly and fires the associated event, executing the attacker's JavaScript in the origin context of the Vvveb site.
Post-exploitation impact. Executed script runs with the privileges of the viewing user's session. Against an administrator, this enables session cookie/token theft or authenticated actions such as creating or modifying accounts, changing site configuration, injecting further persistent content, or tampering with the page builder output—i.e., administrator account takeover as described in the NVD text. The scope change in the CVSS vector (S:C) reflects that the impact crosses from the content-author context to the security authority of the CMS and its visitors.
Impact Assessment
The CVSS 3.1 base score is 8.7 (High) with vector CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N. Network attack vector (AV:N) means exploitation is possible remotely. Low attack complexity (AC:L) means no special conditions or timing dependencies are required. Low privileges required (PR:L) matches the author/contributor threshold. User interaction required (UI:R) reflects that a victim must view or preview the poisoned content. Scope is changed (S:C), as the vulnerable content-sanitization component yields impact on the broader application session and its users. Confidentiality and integrity impacts are both High (C:H/I:H), while availability impact is None (A:N) because the flaw does not degrade service availability.
Business impact: stored XSS on a CMS content path affects every visitor of the affected page and, critically, any administrator who previews or reviews the content. A single low-privilege insider or compromised contributor account can therefore be used to escalate to full administrative control of the website. Downstream effects include theft of administrative sessions, unauthorized content or configuration changes, defacement, injection of malicious scripts or redirects affecting all site visitors, and potential compromise of ecommerce functionality if Vvveb is deployed as an online store (including exposure of customer or order data accessible to an administrator). Blast radius scales with site traffic: all users viewing the poisoned page are exposed, and administrative takeover extends the attacker's reach to the entire managed site.
Detection Guidance
Sigma Rule
title: Vvveb CMS Stored XSS via Event-Handler Attribute Sanitizer Bypass
id: 9f1c2a64-5523-4e0b-9c30-vvveb55230
status: experimental
description: Detects storage or rendering of post/product content containing an event-handler attribute inside an element whose quoted attribute value includes a greater-than character, consistent with CVE-2026-55230 sanitizer bypass.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-55230
author: valtersit.com
date: 2026/01/01
logsource:
category: web
product: vvveb
detection:
selection_method:
http.method:
- POST
- PUT
- PATCH
selection_content:
http.request.body|contains|all:
- '"on'
- '>'
selection_tags:
http.request.body|contains:
- 'onerror'
- 'onload'
- 'onclick'
- 'onmouseover'
condition: selection_method and selection_content and selection_tags
falsepositives:
- Legitimate content editors pasting code samples that include quoted attribute values with '>' characters
level: high
tags:
- attack.t1190
- cve.2026-55230
- cwe.79
YARA Rule
rule CVE_2026_55230_Vvveb_Stored_XSS
{
meta:
description = "Detects stored HTML payloads abusing event-handler attributes with greater-than inside quoted attribute values (Vvveb CMS sanitizer bypass)"
author = "valtersit.com"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-55230"
date = "2026-01-01"
cve = "CVE-2026-55230"
strings:
$on1 = "onerror=" nocase
$on2 = "onload=" nocase
$on3 = "onclick=" nocase
$on4 = "onmouseover=" nocase
$gt = ">"
$quote1 = "\""
$quote2 = "'"
$script = "<script" nocase
condition:
uint32(0) != 0x04034b50 and
(any of ($on*)) and
$gt and
( $quote1 or $quote2 )
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-55230 Vvveb CMS Stored XSS - Event-Handler Attribute Sanitizer Bypass"; flow:established,to_server; http.method; content:"POST"; http.request_body; pcre:"/(?:onerror|onload|onclick|onmouseover)\s*=\s*[^>]*>[^>]*>/i"; reference:cve,2026-55230; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-55230; classtype:web-application-attack; sid:202655230; rev:1;)
Elastic Detection
sequence by host.name
[process where event.type == "start" and process.name == "php" and process.args : "*"]
[file where event.action == "creation" and file.extension in ("html", "php") and
file.path : "*posts*" or file.path : "*product*"]
Splunk SPL Query
index=web sourcetype=vvveb_access
| search (http_method=POST OR http_method=PUT OR http_method=PATCH)
| where match(request_body, "(?i)on(error|load|click|mouseover)\\s*=")
| eval suspicious_marker = if(match(request_body, "[\\x27\\x22][^\\x27\\x22]*>[^\\x27\\x22]*[\\x27\\x22]"), "gt_inside_quoted_attr", "none")
| where suspicious_marker="gt_inside_quoted_attr"
| table _time, src_ip, http_method, uri_path, request_body, status
| sort - _time
Wazuh OSSEC Rule
<group name="web,appsec,vvveb,">
<rule id="202655230" level="10">
<decoded_as>web-accesslog</decoded_as>
<match>POST|PUT|PATCH</match>
<regex type="pcre2">(?i)on(error|load|click|mouseover)\s*=\s*[^>]*></regex>
<description>CVE-2026-55230: Possible Vvveb CMS stored XSS payload containing event-handler attribute with greater-than inside quoted value</description>
<mitre>
<id>T1190</id>
</mitre>
<group>cve_2026_55230,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source). No vendor fix, commit, or workaround is available from the data provided; the NVD description states the issue is addressed in Vvveb 1.0.8.6, but no tracked source corroborates the patch, so this guidance treats the environment as unpatched until verified.
- Immediate mitigations
- Restrict and review accounts holding the author or contributor roles. Apply least privilege; disable content-authoring accounts that are not actively needed.
- Enforce strong, unique authentication for all CMS accounts and require MFA at the reverse proxy/SSO layer where possible, so a stolen administrator session cannot be replayed without a second factor.
- Treat any post or product content created before the fix as untrusted: audit recently created or edited posts and products for event-handler attributes (onerror, onload, onclick, onmouseover) and remove suspicious markup.
- Deploy a Web Application Firewall (WAF) or upstream HTML sanitizer that fully parses HTML rather than pattern-matching it, to neutralize the ">"-inside-quoted-attribute bypass at ingress.
- Harden session cookies: set HttpOnly, Secure, and SameSite attributes to reduce impact of script execution against administrators.
- Limit administrator preview/review of untrusted contributor content until sanitization behavior is confirmed fixed.
- Patch / upgrade steps
- Upgrade Vvveb to version 1.0.8.6 or later as indicated by the NVD description. Because patch confidence is 0/4, verify the vendor artifact hash and release notes independently before relying on the upgrade, and take a full backup (database and files) before applying.
- If a verified 1.0.8.6+ artifact is not obtainable, keep the WAF/virtual-patching and content-audit mitigations in place and monitor the vendor project for an official advisory or commit.
- Long-term hardening
- Replace or wrap custom sanitizers with a maintained, spec-compliant HTML parser/sanitizer library that follows the HTML5 tokenizer algorithm.
- Adopt Content Security Policy (CSP) with a restrictive script-src to blunt injected inline handlers.
- Implement a content review workflow and role separation so that content authoring never shares trust boundary with administrative actions.
- Establish continuous dependency and version monitoring for the CMS and its page builder components.
References
- MITRE NVD — CVE-2026-55230: https://nvd.nist.gov/vuln/detail/CVE-2026-55230
- CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'): https://cwe.mitre.org/data/definitions/79.html
- Vvveb project homepage (vendor): https://www.vvveb.com/
- FIRST.org EPSS (no score assigned at time of writing): https://www.first.org/epss/
- CISA Known Exploited Vulnerabilities Catalog (CVE-2026-55230 not listed): https://www.cisa.gov/known-exploited-vulnerabilities-catalog
Note: No public proof-of-concept, exploit code, Nuclei template, or threat-actor campaign activity was identified for CVE-2026-55230 in the data provided. No evidence of exploitation in the wild is available; CISA KEV status is NO.
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.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.