Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft class file with XSS payload in names
-
DeliverySubmit to a Class2HTML report pipeline
-
ExploitPayload written unescaped into HTML report
-
ExecutionOperator opens report in browser
-
ImpactScript executes in viewer's browser context
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 that the deployment actually uses BCEL's Class2HTML utility (classes in org.apache.bcel.util such as Class2HTML, AttributeHTML, CodeHTML, ConstantHTML) to generate HTML reports from class files that are possibly attacker-controlled, and that a victim subsequently opens the generated report in a browser (UI:P). The payload is carried in class-file-derived strings (anchors, type/class names, field/method names, attribute values) that the emitters wrote into HTML without escaping. Limiting factors: this is not reachable in normal library use of BCEL (bytecode parsing/manipulation) - only the report-generation feature is affected; the attacker must get their crafted class file into the report pipeline, and a human must view the resulting HTML, so there is no fully automated/unattended exploitation path. No special server configuration is needed beyond use of the Class2HTML feature itself. |
| Impact | This is a low-priority, high-conditionality issue despite the CVSS:4.0 vector showing AV:N/AC:L/PR:N. The vendor-assigned CVSS 4.0 base score is only 2.3, and the signals are internally consistent: the vulnerable system suffers no impact (VC:N/VI:N/VA:N), with only low confidentiality/integrity impact against a subsequent system (SC:L/SI:L) - i.e., the browser rendering the generated HTML report, which is the classic signature of XSS rather than direct server compromise. Two metrics strongly dampen real-world risk: AT:P (a specific attack requirement must be met - namely that Class2HTML is run against attacker-controlled class files) and UI:P (a victim must open the generated report). Exploitation status is 'no public exploit identified at time of analysis': the only references are the fix commit and the Apache announcement thread, not exploit code. No EPSS score and no CISA KEV listing were provided; absence of these is expected for a low-severity library-tooling XSS and should not be read as either elevated or suppressed risk. The one caveat worth flagging: PR:N/UI:P describe the abstract attacker, but exploitation realistically depends on an uncommon operational workflow (feeding untrusted bytecode into Class2HTML and publishing/viewing the resulting report), so defenders should treat the deployment precondition, not the CVSS vector, as the true gating factor. |
| Exploit ScenarioDerived | An attacker crafts a Java class file whose names or attribute strings embed an HTML/JavaScript payload and gets it into a workflow (e.g., an analysis pipeline or shared JAR) where an operator runs BCEL's Class2HTML to produce browsable reports. Class2HTML's emitters write these attacker-controlled strings into the HTML without escaping, so when the operator opens the report the payload executes as stored XSS in their browser. No public exploit code is identified; exploitation requires both low attack complexity and that a victim view the generated report (UI:P). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
Stored cross-site scripting in the Class2HTML report generator shipped with Apache Commons BCEL before 6.13.0 lets attacker-controlled strings from a Java class file (class, field and method names, constant-pool entries, attribute values and anchors) be written into generated HTML reports without escaping, so script executes in the browser of anyone who opens the report. The issue is unauthenticated (CVSS 4.0 PR:N) but highly conditional: the deployment must actually use the Class2HTML/AttributeHTML/CodeHTML/ConstantHTML utilities to render HTML from class files an attacker can influence, and a victim must then open the resulting report (UI:P), which is why the CVSS 4.0 base score is only 2.3 because attack requirements are present (AT:P) even though the independent assessment rates the same flaw 7.1 under CVSS 3.1 with scope change (S:C). This is not reachable through ordinary BCEL bytecode parsing or manipulation; no public exploit has been identified at time of analysis and the flaw is fixed in 6.13.0.
RemediationAI
Vendor-released patch: Apache Commons Commons BCEL 6.13.0, which adds output escaping to Class2HTML.toHTML and a URL-scheme-safe toHTMLRef used by all emitters; upgrade the org.apache.commons:commons-bcel dependency to 6.13.0 and rebuild any cached report artifacts generated with older versions, since previously produced HTML files remain poisoned. If upgrading is not immediately possible, the most effective compensating control is to stop invoking Class2HTML and its sibling emitters against untrusted or externally supplied class files - this fully removes the attack surface at the cost of losing the HTML report feature, while core BCEL parsing/manipulation remains safe to use. Where reports must still be generated for untrusted input, treat the output as hostile: serve it from a separate origin with no cookies, sessions or privileged APIs, or open the files locally in a sandboxed browser profile, and apply a restrictive Content-Security-Policy (script-src 'none') to the report directory so any residual injected markup cannot execute; both measures reduce usability of the report only marginally but do not remove the underlying stored payload. In applications that accept uploaded class files, validate or re-compile inputs before rendering and quarantine generated reports rather than publishing them from a trusted origin.
Affected VersionsENISA
Affected Packages
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
The root cause is CWE-79 (improper neutralization of input during web page generation). Apache Commons BCEL's org.apache.bcel.util package contains a set of emitters - Class2HTML, AttributeHTML, CodeHTML and ConstantHTML - that render a disassembled class file as a static HTML report. These emitters interpolated raw constant-pool strings directly into HTML markup: Anchor/attribute text in AttributeHTML, HREF targets and link text built from class/type names in Class2HTML.referenceType, field references in CodeHTML.codeToHTML, and method/field class links in ConstantHTML.writeConstant. Because a class file's UTF-8 constant-pool entries are fully attacker-controllable, a crafted class file can inject markup or a javascript: URL that is persisted into the generated report and executes when a browser opens it (stored XSS). The upstream fix (commit fb72c225cbc6ec3d94060ed6edb269f07428d504) adds full HTML escaping of &, ", ', < and > in Class2HTML.toHTML and routes all emitter output through it, and introduces toHTMLRef, which replaces ':' with '_' before escaping so a crafted name cannot smuggle a URL scheme such as javascript: into an HREF. Notably, BCEL's core bytecode parsing and generation paths are unaffected - only the documentation/report-generation utility is in scope.
Know when Java 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Attacker-supplied class file can arrive over the network (AV:N) with no privileges (PR:N), but a victim must open the report (UI:R); XSS executes in a different security authority (S:C) with low C/I and no availability impact.
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
Lifecycle Timeline
2DescriptionCVE.org
Improper neutralization of input during web page generation ('cross-site scripting') vulnerability in Apache Commons BCEL.
This only happens when you're using Class2HTML to generate webpages for possibly-attacker-controlled class files, where Class2HTML emitters write attacker class-file strings into HTML unescaped (stored XSS in reports).
This issue affects Apache Commons BCEL: before 6.13.0.
Users are recommended to upgrade to version 6.13.0, which fixes the issue.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
EUVD-2026-93972
GHSA-vpf7-2j6x-pp68
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB