Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to jline nano session
-
DeliveryEnable regex search mode
-
ExploitEnter catastrophic pattern (a+)+b
-
ExecutionRegex engine backtracks exponentially
-
PersistWorker thread hangs at high CPU
-
ImpactSession denial of service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Regex complexity limits
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 | Requires an application that embeds org.jline:jline-builtins AND exposes the nano editor to a user, AND the user must enable nano's regex search mode (Pattern.LITERAL is used when regex mode is off, so default literal search is not vulnerable). For it to be a security-relevant DoS rather than self-harm, the deployment must be a remote, multi-user/shared service where an authenticated attacker (PR:L) can occupy a shared server worker thread; in a single-user local terminal the user can only hang their own session. No confidentiality/integrity exposure and no memory corruption - impact is limited to CPU exhaustion / thread hang of the affected session. |
| Impact | This is a genuine but low-urgency issue. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, base 6.5) is availability-only - no confidentiality or integrity impact, consistent with CWE-1333 (inefficient regex complexity / ReDoS). The vendor score is defensible, though the AV:N/PR:L combination is meaningful ONLY in the specific deployment where jline-builtins' nano editor is exposed to remote, authenticated multi-user sessions; in the far more common local single-user case the attacker can only hang their own session, which is self-inflicted and not a real security event. No EPSS score, no CISA KEV listing, and no packaged exploit tool are present in the input; however the GitHub Security Advisory (GHSA-ph9c-7hw9-vhhw) publishes complete step-by-step reproduction with the trivial trigger pattern '(a+)+b', so a working exploit is effectively public. No SSVC decision data was provided. Net: this is a real, easily-triggered availability bug against a narrow attack surface, not a high-priority mass-exploitation threat - prioritize patching only where the nano/less/grep builtins are exposed to untrusted or shared users. |
| Exploit ScenarioDerived | In a multi-user server that embeds org.jline:jline-builtins and exposes the nano editor to authenticated remote users, an attacker opens a file, toggles regex search mode, and enters a catastrophic-backtracking pattern such as '(a+)+b' against buffer content of repeated 'a' characters. The Java backtracking regex engine runs in exponential time, pinning the session/worker thread at high CPU and denying service. The advisory publishes full reproduction steps, so no exploit development is required. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 23, 2026
Catastrophic regex backtracking in the JLine3 nano editor's regex search mode allows an authenticated user to hang the editor session thread at high CPU, producing a denial of service. The flaw affects applications that embed org.jline:jline-builtins and expose the nano editor: jline-builtins 3.0.0 through 3.30.14 and 4.0.0 through 4.3.0 are impacted (CWE-1333, CVSS 6.5, CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H). A proof-of-concept reproduction, using a buffer of repeated 'a' characters and the pattern (a+)+b, is documented in the vendor advisory, and vendor-released patches exist in 3.30.15 and 4.3.1; no confirmed active exploitation (CISA KEV) or public exploit code beyond the advisory PoC has been reported. Practical severity depends on deployment: in a single-user local terminal the user only hangs their own session, whereas remote multi-user services that share worker threads can lose a server thread indefinitely.
RemediationAI
Upgrade org.jline:jline-builtins to a vendor-released patched version: 4.3.1 for the 4.x line or 3.30.15 for the 3.x line (vendor advisory GHSA-ph9c-7hw9-vhhw; fixes landed via PRs https://github.com/jline/jline3/pull/2012 and https://github.com/jline/jline3/pull/2018, commits 1d5fc3099e77938b971e197211cad2d4fbb17541 and 341ee69ccc57b7733c1b40d6993219b64b3206ae). If upgrading is not immediately possible, the most effective compensating control is to stop exposing the nano editor's regex search in multi-user or remote deployments - for example by disabling or not wiring the nano builtin, or by gating regex search behind a trusted/admin-only path - with the trade-off that users lose regex search entirely (literal search remains safe because it uses Pattern.LITERAL). Isolating each user session in its own process or container bounds the blast radius of a hung thread but does not prevent the per-session hang and increases resource overhead. Interposing a watchdog that interrupts or times out the search thread, or backporting the upstream SafeRegex/RegexTimeoutException wrapper, reduces the exposure but, as the vendor notes, is weaker than replacing the backtracking engine; note that switching to the linear-time RE2J engine changes regex semantics and drops support for backreferences and lookaround constructs in search patterns, so validate any user-facing regex behavior before adopting it. Because exploitation requires an authenticated user to enable regex mode and enter a crafted pattern, restricting who can reach an interactive nano session also lowers risk.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in maven, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
JLine3 is a Java library for building interactive console applications; its nano builtin implements a small text editor, and jline-builtins packages that editor for embedding. In builtins/src/main/java/org/jline/builtins/Nano.java, the doSearch(String text) method compiles the user-supplied search string with Pattern.compile(searchTerm, ...) and only adds Pattern.LITERAL when regex mode is disabled - so when the user toggles regex search, the raw Java regex engine is used with no backtracking bound or timeout. Java's java.util.regex engine is a backtracking matcher, so a nested-quantifier pattern such as (a+)+b evaluated against a long run of 'a' characters that never matches exhibits exponential-time behavior (CWE-1333, Inefficient Regular Expression Complexity). The vendor's fix routes matching through a SafeRegex utility backed by a linear-time engine (com.google.re2j) and a RegexTimeoutException guard; the same PR series also hardens related builtins - Less, Commands.history glob matching and PosixCommands.grep - that shared the same unchecked regex path. Because the regex is applied to buffer content synchronously on the session thread, the exhaustion manifests as a hung editor session rather than memory corruption or data exposure.
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
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Availability-only thread-hang; PR:L because the attacker needs access to an exposed editor session, AC:L since the trigger pattern is trivial, C/I:N as no data is exposed or altered.
Primary rating from Vendor (https://github.com/jline/jline3).
CVSS VectorVendor: https://github.com/jline/jline3
DescriptionCVE.org
Summary
When regex search mode is enabled in the JLine3 nano editor, the user-supplied search term is compiled directly as a Java regular expression with no timeout or backtracking bound. A crafted pattern such as (a+)+b can hang the editor session thread at high CPU, causing a denial of service for that session.
Details
In builtins/src/main/java/org/jline/builtins/Nano.java, the search implementation uses Pattern.LITERAL only when regex mode is disabled. When regex mode is enabled, the search term is compiled as a raw Java regex:
Pattern pat = Pattern.compile(
searchTerm,
(searchCaseSensitive ? 0 : Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE)
| (searchRegexp ? 0 : Pattern.LITERAL));This regex is then applied to buffer content. Because Java's regex engine is backtracking-based, nested-quantifier patterns can take exponential time on non-matching input.
Affected source location:
builtins/src/main/java/org/jline/builtins/Nano.javadoSearch(String text)
PoC
- Create a file containing a long run of
acharacters and open it in the JLine3
nano editor.
- Enable regex search mode with the editor's regex toggle.
- Start a search and enter the pattern
(a+)+b.
Expected result:
- The editor stops responding.
- The session thread consumes high CPU.
Reproduction environment:
- JLine3 on x86_64 Linux
- OpenJDK 25.0.2
Impact
This is a denial-of-service vulnerability caused by catastrophic regex backtracking. Applications embedding org.jline:jline-builtins and exposing the nano editor are impacted. In local use, the user can hang their own session. In remote multi-user deployments, an attacker can occupy a server worker thread indefinitely.
Suggested Fix
The preferred fix for the current git head is to use a linear-time regex engine for regex search mode while preserving literal matching behavior when regex mode is off.
Suggested patch:
diff --git a/builtins/pom.xml b/builtins/pom.xml
--- a/builtins/pom.xml
+++ b/builtins/pom.xml
@@
<dependency>
+ <groupId>com.google.re2j</groupId>
+ <artifactId>re2j</artifactId>
+ <version>1.8</version>
+ </dependency>
+ <dependency>
<groupId>org.jline</groupId>
<artifactId>jline-reader</artifactId>
</dependency>
diff --git a/builtins/src/main/java/org/jline/builtins/Nano.java b/builtins/src/main/java/org/jline/builtins/Nano.java
--- a/builtins/src/main/java/org/jline/builtins/Nano.java
+++ b/builtins/src/main/java/org/jline/builtins/Nano.java
@@
-import java.util.regex.Pattern;
+import com.google.re2j.Pattern;If a dependency change is not acceptable, a fallback mitigation is to reject dangerous regex constructs or execute regex matching with a strict timeout, but that is weaker than replacing the backtracking engine.
Credits
This issue was identified by Michał Majchrowicz and Marcin Wyczechowski, members of the AFINE Team.
Blast Radius
ecosystem impact- 8 maven packages depend on org.jline:jline-builtins (6 direct, 2 indirect)
Ecosystem-wide dependent count for version 4.0.0.
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.
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
Same technique Denial Of Service
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Desktop 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server 16.0 | Not-Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Not-Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Not-Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Not-Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Not-Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Not-Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Not-Affected |
| SUSE CaaS Platform 4.0 | Not-Affected |
| SUSE Enterprise Storage 6 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP1 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15-LTSS | Not-Affected |
| SUSE Linux Enterprise Module for Basesystem 15 | Not-Affected |
| SUSE Linux Enterprise Module for Basesystem 15 SP1 | Not-Affected |
| SUSE Linux Enterprise Server 15 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP1 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP1-BCL | Not-Affected |
| SUSE Linux Enterprise Server 15 SP1-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15-LTSS | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP1 | Not-Affected |
| SUSE Manager Proxy 4.0 | Not-Affected |
| SUSE Manager Retail Branch Server 4.0 | Not-Affected |
| SUSE Manager Server 4.0 | Not-Affected |
| openSUSE Leap 15.3 | Not-Affected |
| openSUSE Leap 15.4 | Not-Affected |
| openSUSE Leap 15.5 | Not-Affected |
| openSUSE Leap 15.6 | Not-Affected |
| SUSE Linux Enterprise Server for NVIDIA 16.1 | Not-Affected |
| SUSE Linux Enterprise Server for NVIDIA 16.1 | Affected |
EUVD-2026-85522
GHSA-ph9c-7hw9-vhhw
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB