Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted class to build tool
-
DeliveryASM rewrites method past 64KB
-
Exploit16-bit offset truncates in Label.resolve()
-
ExecutionClassReader.accept() enters infinite loop
-
ImpactTool process hangs, service denied
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Loop termination conditions
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a tool using the vulnerable OW2 ASM 9.11 (before 9.11.1) to parse and TRANSFORM an attacker-supplied class via ClassReader.accept(), where the rewritten method body grows beyond 65535 bytes, causing 16-bit forward-reference offsets to truncate in Label.resolve(). The specific prerequisite is a code-growing transformation path (instrumentation/rewriting) - not merely reading an unmodified class. Limiting factors: the attack vector is local (AV:L), a victim must actively run the vulnerable build tool, instrumenter, agent, or analyzer against the malicious input (UI passive), and only availability of that single process is affected - there is no code execution or data disclosure. |
| Impact | This is a denial-of-service issue in the OW2 ASM bytecode library (CWE-835, infinite loop in Label.resolve()). The supplied CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H) and base score 6.8 (Medium) are internally consistent and align well with the description: a local attack vector, no privileges, passive user interaction (a victim must run a tool that parses the malicious class), and impact limited to availability (no confidentiality or integrity impact). There is no CISA KEV listing and no POC flag in the input, so exploitation status is 'no public exploit identified at time of analysis' - there is no EPSS value provided either, so widespread-exploitation probability cannot be quantified. The realistic risk is moderate and bounded: this hangs a single process (a build, an instrumentation agent, or an analyzer) rather than granting code execution or data access. It is a genuine supply-chain/tooling hazard because ASM is embedded in a huge number of Java build and analysis pipelines, but it is NOT a 'drop everything' critical issue - the local vector and required user interaction (feeding an attacker-crafted class into a vulnerable tool) limit mass exploitation. Note the trigger is conditional: it only manifests when ASM rewrites a method such that the transformed code grows past 65535 bytes, which depends on the transformation being performed, not merely on parsing any class. |
| Exploit ScenarioDerived | An attacker publishes a malicious JAR/class (e.g., to a public artifact repository or as a dependency/plugin) crafted so that when an ASM 9.11-based tool transforms it, the rewritten method body grows past 64 KB. When a CI build, instrumentation agent, or static analyzer runs ClassReader.accept() over that class, Label.resolve() enters an infinite loop and the process hangs, stalling the pipeline. No public exploit code is identified at time of analysis, and the local attack vector plus required processing (UI:P) mean the victim must actually run the vulnerable tool against the crafted input. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 18, 2026
Denial of service in OW2 ASM 9.11 before 9.11.1 occurs when a build tool, instrumenter, agent, or analyzer uses ClassReader.accept() to transform an attacker-supplied class whose rewritten method body grows beyond 65535 bytes; 16-bit forward-reference offsets truncate in Label.resolve() and cause an infinite loop that hangs the affected process. The issue is local (AV:L) and requires the victim to process a crafted class through a code-growing transformation path (UI:R), with impact limited to availability of that single process and no code execution or data disclosure. No public exploit code was identified at time of analysis and no CISA KEV entry is associated; the vendor addressed the flaw in ASM 9.11.1.
RemediationAI
Upgrade OW2 ASM to 9.11.1 or later; the fix is tracked in the vendor merge request https://gitlab.ow2.org/asm/asm/-/merge_requests/480 and commit https://gitlab.ow2.org/asm/asm/-/commit/4bb1a4701e7b61c2163525b987a96a8db815cb68, with version guidance at https://asm.ow2.io/versions.html. If immediate upgrade is not possible, enforce a hard cap on rewritten method-body size before the transformation completes, so classes whose output would exceed 65535 bytes are rejected rather than passed into Label.resolve(); the trade-off is that very large but legitimate generated methods may be refused. Configure watchdog timeouts around ClassReader.accept() in build tools, instrumenters, agents, and analyzers so a hung transformation is terminated; the trade-off is that legitimate long-running transformations may be aborted. Avoid applying code-growing transformations to untrusted class files where feasible, and run such tooling with least privilege and process isolation to contain availability impact; these are compensating controls only and do not replace the 9.11.1 upgrade.
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
OW2 ASM is a Java bytecode manipulation and analysis framework used by build tools, instrumentation agents, bytecode analyzers, and other JVM tooling. The defect is CWE-835 (Infinite Loop) in Label.resolve(): class-file method bodies and their branch offsets are constrained by 16-bit structures, and when a transformation causes a rewritten method to exceed 65535 bytes, forward-reference offsets are truncated rather than safely rejected or widened. That truncated offset leads to an infinite loop while ClassReader.accept() processes the transformed class, so the consuming tool stalls. The affected CPE entry, cpe:2.3:a:ow2:asm:*:*:*:*:*:*:*:*, is a wildcard and does not pin a version by itself; version confirmation against the advisory is required. Exploitation is not a simple parse of an unmodified class: the prerequisite is a code-growing transformation/rewriting path that accepts attacker-controlled bytecode and then lets the rewritten method body cross the 64 KB boundary, which is why the assessed vector is local with user interaction and availability-only impact.
Know when Asm 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:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
A victim-run tool must process an attacker-crafted class locally, so AV:L and UI:R with PR:N; impact is an unrecoverable hang, so A:H only with C:N/I:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
OW2 ASM 9.11 before 9.11.1 contains an infinite loop vulnerability in Label.resolve() caused by 16-bit forward-reference offsets truncating when rewritten methods exceed 64 KB. Attackers can supply crafted class files whose transformed code grows past 65535 bytes, hanging ClassReader.accept() and denying service to build tools, instrumenters, agents, or analyzers.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Excessive resource consumption in OW2 ASM versions 1.4.3 through 9.10.x allows an unauthenticated local attacker to trig
Denial of service in OW2 ASM versions 3.0 up to but not including 9.11 allows a crafted legacy class file with nested JS
Uncontrolled recursion in OW2 ASM's SignatureReader.parseType() lets an attacker crash any application that reads or tra
CPU exhaustion in the OW2 ASM Java bytecode library (versions 3.0 through 9.10.x) lets attackers who can supply crafted
Denial of service in OW2 ASM versions 3.0 through 9.10.x allows a crafted class file to exhaust JVM heap memory when an
Denial of service in OW2 ASM versions 3.0 through 9.10.x (prior to 9.11) allows an attacker to crash applications that t
Denial of service in OW2 ASM (versions 3.0 up to but not including 9.11) allows an attacker who can get a crafted Java c
Denial of service in OW2 ASM 5.0 through 9.10.x allows an attacker who can supply a crafted Java class file to trigger e
Excessive memory allocation in the asm-commons AdviceAdapter of OW2 ASM (versions 3.1 through 9.10.x, fixed in 9.11) let
EUVD-2026-103508
GHSA-84qw-843w-9rmf
NVD
CVE.org
EPSS
VulDB
Exploit-DB