Vulnerability in org.jline:jline-reader (CVE-2026-77420)
Summary
Vulnerability in org.jline:jline-reader (CVE-2026-77420). Risk of unauthorized operations or information disclosure. Exploitable via HISTORY_IGNORE. Mitigation: upgrade to 3.30.15 or later.
Original description
The description as published by the source.
Summary
The JLine3 HISTORY_IGNORE variable is converted into a Java regular expression with
only partial escaping. As a result, regex metacharacters other than * and : are
passed through to the regex engine. A crafted value such as (a+)+b can cause
catastrophic backtracking each time a command line is added to history, hanging the
reader thread at high CPU.
Details
In reader/src/main/java/org/jline/reader/impl/history/DefaultHistory.java,
matchPatterns() converts HISTORY_IGNORE into a regex:
for (int i = 0; i < patterns.length(); i++) {
char ch = patterns.charAt(i);
if (ch == '\\') {
ch = patterns.charAt(++i);
sb.append(ch);
} else if (ch == ':') {
sb.append('|');
} else if (ch == '*') {
sb.append('.').append('*');
} else {
sb.append(ch);
}
}
return line.matches(sb.toString());
This logic translates wildcard syntax but does not escape regex metacharacters such as
(, ), +, ?, {, }, [, and ]. Those characters therefore reach the Java
regex engine unchanged.
Affected source location:
reader/src/main/java/org/jline/reader/impl/history/DefaultHistory.javamatchPatterns(String patterns, String line)
PoC
- Configure
HISTORY_IGNOREto a malicious pattern, for example:
set history-ignore "(a+)+b"
- At the JLine prompt, enter a long non-matching line:
aaaaaaaaaaaaaaaaaaaaaaaaaaax
- Press Enter.
Expected result:
- The promp…
Source: NIST National Vulnerability Database NVD GitHub Advisory
Auto-generated summary
Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.
A vulnerability tracked as CVE-2026-77420 has been found in org.jline:jline-reader.
Attackers can target a specific entry point like HISTORY_IGNORE over the network to misuse the product.
Risk of unauthorized operations or information disclosure. CVSS score: 5.5/10.
What to do: upgrade org.jline:jline-reader to 3.30.15 or later.
If unsure, ask your IT team or search "org.jline:jline-reader CVE-2026-77420" on the vendor's site.
CVE-2026-77420 (org.jline:jline-reader) — CWE-1333 / CVSS v3 5.5
Attack vector: local / no user interaction
Attack surface: HISTORY_IGNORE
Patched: 3.30.15 — apply immediately
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.
A vulnerability (CWE-1333) exists in org.jline:jline-reader. Attackers reach the vulnerable code path via HISTORY_IGNORE.
Check the vendor advisory for the affected versions of org.jline:jline-reader. Attack surface: HISTORY_IGNORE.
Severity: Medium (CVSS 5.5/10). Risk of unauthorized operations or information disclosure.
Update to 3.30.15.
Until the patch is applied: disable the affected feature, apply WAF rules, or restrict access via network ACLs.
Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Audit SBOM/dependencies to find affected services.
Response actions
Concrete steps and command examples for SOC/SRE teams to execute in order
-
1Identify exposure identify
Audit SBOM/dependencies for affected components.資産台帳・SBOM・依存マニフェストで org.jline:jline-reader を使っているサービスとバージョンを洗い出す。
-
2Apply patch patch
Upgrade org.jline:jline-reader to 3.30.15ステージング環境で 3.30.15 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。
-
3Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
Affected packages
Fix status by distribution
Fixed packages published by each distribution for this CVE
- Debian DEBIAN-CVE-2026-77420 jline3
- Ubuntu UBUNTU-CVE-2026-77420 jline
References
- web github.com
- web github.com
- web github.com
- web github.com
- web github.com
- web github.com
- web github.com
- web github.com