<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sun, 04 Oct 2026 22:42:42 +0000</lastBuildDate>
    <item>
      <title>CLEANSTART-2026-KE95640 — JLine is a Java library for handling console input</title>
      <link>https://vulnerability.circl.lu/vuln/cleanstart-2026-ke95640</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; CleanStart: apache-nifi, CleanStart: apache-zookeeper, CleanStart: kafka, CleanStart: elasticsearch&lt;/p&gt;
&lt;p&gt;CVE-2026-77420 affects multiple packages. JLine is a Java library for handling console input. See references for individual vulnerability details.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; CleanStart: apache-nifi, CleanStart: apache-zookeeper, CleanStart: kafka, CleanStart: elasticsearch&lt;/p&gt;
&lt;p&gt;CVE-2026-77420 affects multiple packages. JLine is a Java library for handling console input. See references for individual vulnerability details.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cleanstart-2026-ke95640</guid>
    </item>
    <item>
      <title>fkie_cve-2026-77420</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-77420</link>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-77420</guid>
    </item>
    <item>
      <title>GHSA-5q95-hrpc-m3w3 — JLine: ReDoS via `HISTORY_IGNORE` Configuration Variable</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-5q95-hrpc-m3w3</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Maven: org.jline:jline-reader&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;In `reader/src/main/java/org/jline/reader/impl/history/DefaultHistory.java`,
`matchPatterns()` converts `HISTORY_IGNORE` into a regex:&lt;/p&gt;
&lt;p&gt;```java
for (int i = 0; i &amp;lt; patterns.length(); i++) {
    char ch = patterns.charAt(i);
    if (ch == &amp;#39;\\&amp;#39;) {
        ch = patterns.charAt(++i);
        sb.append(ch);
    } else if (ch == &amp;#39;:&amp;#39;) {
        sb.append(&amp;#39;|&amp;#39;);
    } else if (ch == &amp;#39;*&amp;#39;) {
        sb.append(&amp;#39;.&amp;#39;).append(&amp;#39;*&amp;#39;);
    } else {
        sb.append(ch);
    }
}
return line.matches(sb.toString());
```&lt;/p&gt;
&lt;p&gt;This logic translates wildcard syntax but does not escape regex metacharacters such as
`(`, `)`, `+`, `?`, `{`, `}`, `[`, and `]`. Those characters therefore reach the Java
regex engine unchanged.&lt;/p&gt;
&lt;p&gt;Affected source location:
- `reader/src/main/java/org/jline/reader/impl/history/DefaultHistory.java`
- `matchPatterns(String patterns, String line)`&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;1. Configure `HISTORY_IGNORE` to a malicious pattern, for example:&lt;/p&gt;
&lt;p&gt;```sh
set history-ignore &amp;#34;(a+)+b&amp;#34;
```&lt;/p&gt;
&lt;p&gt;2. At the JLine prompt, enter a long non-matching line:&lt;/p&gt;
&lt;p&gt;```text
aaaaaaaaaaaaaaaaaaaaaaaaaaax
```&lt;/p&gt;
&lt;p&gt;3. Press Enter.&lt;/p&gt;
&lt;p&gt;Expected result:
- The prom…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Maven: org.jline:jline-reader&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;In `reader/src/main/java/org/jline/reader/impl/history/DefaultHistory.java`,
`matchPatterns()` converts `HISTORY_IGNORE` into a regex:&lt;/p&gt;
&lt;p&gt;```java
for (int i = 0; i &amp;lt; patterns.length(); i++) {
    char ch = patterns.charAt(i);
    if (ch == &amp;#39;\\&amp;#39;) {
        ch = patterns.charAt(++i);
        sb.append(ch);
    } else if (ch == &amp;#39;:&amp;#39;) {
        sb.append(&amp;#39;|&amp;#39;);
    } else if (ch == &amp;#39;*&amp;#39;) {
        sb.append(&amp;#39;.&amp;#39;).append(&amp;#39;*&amp;#39;);
    } else {
        sb.append(ch);
    }
}
return line.matches(sb.toString());
```&lt;/p&gt;
&lt;p&gt;This logic translates wildcard syntax but does not escape regex metacharacters such as
`(`, `)`, `+`, `?`, `{`, `}`, `[`, and `]`. Those characters therefore reach the Java
regex engine unchanged.&lt;/p&gt;
&lt;p&gt;Affected source location:
- `reader/src/main/java/org/jline/reader/impl/history/DefaultHistory.java`
- `matchPatterns(String patterns, String line)`&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;1. Configure `HISTORY_IGNORE` to a malicious pattern, for example:&lt;/p&gt;
&lt;p&gt;```sh
set history-ignore &amp;#34;(a+)+b&amp;#34;
```&lt;/p&gt;
&lt;p&gt;2. At the JLine prompt, enter a long non-matching line:&lt;/p&gt;
&lt;p&gt;```text
aaaaaaaaaaaaaaaaaaaaaaaaaaax
```&lt;/p&gt;
&lt;p&gt;3. Press Enter.&lt;/p&gt;
&lt;p&gt;Expected result:
- The prom…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-5q95-hrpc-m3w3</guid>
    </item>
    <item>
      <title>UBUNTU-CVE-2026-77420</title>
      <link>https://vulnerability.circl.lu/vuln/ubuntu-cve-2026-77420</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Ubuntu:14.04:LTS: jline, Ubuntu:14.04:LTS: jline2, Ubuntu:16.04:LTS: jline, Ubuntu:16.04:LTS: jline2, Ubuntu:18.04:LTS: jline, Ubuntu:18.04:LTS: jline2, Ubuntu:20.04:LTS: jline, Ubuntu:20.04:LTS: jline2, Ubuntu:22.04:LTS: jline, Ubuntu:22.04:LTS: jline2 and 7 more&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Ubuntu:14.04:LTS: jline, Ubuntu:14.04:LTS: jline2, Ubuntu:16.04:LTS: jline, Ubuntu:16.04:LTS: jline2, Ubuntu:18.04:LTS: jline, Ubuntu:18.04:LTS: jline2, Ubuntu:20.04:LTS: jline, Ubuntu:20.04:LTS: jline2, Ubuntu:22.04:LTS: jline, Ubuntu:22.04:LTS: jline2 and 7 more&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ubuntu-cve-2026-77420</guid>
    </item>
  </channel>
</rss>
