---
id: CVE-2026-77420
title: JLine is a Java library for handling console input
summary: >-
  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 HIS…
severity: medium
cvss: 5.5
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'
cwe:
  - CWE-1333
vendor: jline
product: jline3
affected:
  - 'jline3 >= 3.0.0, < 3.30.15'
  - 'jline3 >= 4.0.0, < 4.3.1'
patched:
  - 'org.jline:jline-reader 4.3.1'
  - 'org.jline:jline-reader 3.30.15'
published: '2026-09-23'
updated: '2026-09-23'
sourceUpdated: '2026-09-23T19:19:15.510'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-77420'
references:
  - url: >-
      https://github.com/jline/jline3/commit/1d5fc3099e77938b971e197211cad2d4fbb17541
    label: security-advisories@github.com
  - url: >-
      https://github.com/jline/jline3/commit/341ee69ccc57b7733c1b40d6993219b64b3206ae
    label: security-advisories@github.com
  - url: 'https://github.com/jline/jline3/pull/2012'
    label: security-advisories@github.com
  - url: 'https://github.com/jline/jline3/pull/2018'
    label: security-advisories@github.com
  - url: 'https://github.com/jline/jline3/releases/tag/4.3.1'
    label: security-advisories@github.com
  - url: 'https://github.com/jline/jline3/releases/tag/jline-3.30.15'
    label: security-advisories@github.com
  - url: 'https://github.com/jline/jline3/security/advisories/GHSA-5q95-hrpc-m3w3'
    label: security-advisories@github.com
  - url: 'https://github.com/advisories/GHSA-5q95-hrpc-m3w3'
tags:
  - nvd
  - cve.org
  - ghsa
  - maven
aliases:
  - GHSA-5q95-hrpc-m3w3
ecosystem: maven
ingestedAt: '2026-09-23T18:29:33.152Z'
epss: 0.00123
epssPercentile: 0.01774
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-77420)

Affected packages:

- `org.jline:jline-reader >= 4.0.0, < 4.3.1`
- `org.jline:jline-reader >= 3.0.0, < 3.30.15`

Patched in:

- `org.jline:jline-reader 4.3.1`
- `org.jline:jline-reader 3.30.15`

Source: https://github.com/advisories/GHSA-5q95-hrpc-m3w3
