CVE-2026-77420
Received Received - Intake

ReDoS in JLine DefaultHistory via Malicious HISTORY_IGNORE Pattern

Vulnerability report for CVE-2026-77420, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-23

Last updated on: 2026-09-23

Assigner: GitHub, Inc.

Description

JLine is a Java library for handling console input. From 3.0.0 until 3.30.15 and 4.3.1, DefaultHistory.matchPatterns(String patterns, String line) in reader/src/main/java/org/jline/reader/impl/history/DefaultHistory.java converts the HISTORY_IGNORE configuration value into a Java regular expression while escaping only part of its syntax, allowing other regex metacharacters to reach the backtracking engine. An attacker who can control application or user configuration can supply a nested-quantifier expression that is reevaluated whenever a command is added to history, consuming excessive CPU and indefinitely blocking the reader thread. This issue is fixed in versions 3.30.15 and 4.3.1.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-23
Last Modified
2026-09-23
Generated
2026-09-24
AI Q&A
2026-09-23
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 4 associated CPEs
Vendor Product Version / Range
jline jline to 3.30.15 (inc)
jline jline 4.3.1
jline jline From 3.0.0 (inc) to 3.30.14 (inc)
jline jline 3.30.15

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-1333 The product uses a regular expression with an inefficient, possibly exponential worst-case computational complexity that consumes excessive CPU cycles.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This is a Regular Expression Denial of Service (ReDoS) vulnerability in the JLine Java library. It occurs when the HISTORY_IGNORE configuration value is converted into a Java regex without fully escaping special characters. Attackers can craft malicious patterns with nested quantifiers like (a+)+b that cause the regex engine to consume excessive CPU resources through catastrophic backtracking, indefinitely blocking the reader thread.

Detection Guidance

This vulnerability is specific to applications using JLine versions 3.0.0 to 3.30.14 and below 4.3.1. To detect it, check the version of JLine in your application dependencies. For Java applications, inspect the pom.xml or build.gradle files for org.jline:jline-reader. If using a vulnerable version, the application may hang when processing history commands with malicious HISTORY_IGNORE patterns.

Impact Analysis

If you use applications built with vulnerable JLine versions (3.0.0-3.30.14 or <4.3.1) where users can configure HISTORY_IGNORE, an attacker could exploit this to make the application unresponsive by adding specially crafted commands to history. This would cause high CPU usage and potentially crash the application.

Mitigation Strategies
  • Upgrade JLine to version 3.30.15 or 4.3.1 or later to apply the SafeRegex timeout mechanism.
  • Review and sanitize HISTORY_IGNORE configurations to prevent regex metacharacter injection.
  • Monitor application logs for high CPU usage during history operations, which may indicate exploitation attempts.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-77420. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart