CVE-2026-56741
Java 취약성 분석 및 완화

개요

CVE-2026-56741 is an unauthenticated remote Denial of Service vulnerability in the JLine3 Telnet server (remote-telnet module) caused by unbounded acceptance of terminal dimensions via the Telnet NAWS (Negotiate About Window Size) option. An unauthenticated attacker can send crafted NAWS subnegotiation packets advertising extreme terminal sizes (up to 65535×65535) and alternate between values to trigger continuous, CPU-intensive rendering cycles on the server. All versions of org.jline:jline-remote-telnet before 4.2.1 are affected. The vulnerability was published on June 17, 2026, with a CVSS v3.1 base score of 7.5 (High) (GitHub Advisory).

기술적 세부 사항

The root cause is CWE-400 (Uncontrolled Resource Consumption): TelnetIO.handleNAWS() (TelnetIO.java:856–879) reads client-supplied width and height as 16-bit unsigned integers and enforces only a lower bound (minimum 20 columns / 6 rows), accepting values up to 65535 without an upper limit. The geometry change event propagates to Telnet.java:153–158, which calls terminal.setSize(new Size(65535, 65535)) and raises a WINCH signal, triggering LineReaderImpl.handleSignal()redisplay(). Within redisplay(), freshLine() loops up to 65,534 iterations building and writing space-padding strings over the network socket, and columnSplitLength() is called multiple times processing all characters against the 65,535-wide line width. Because WINCH only fires on change, an attacker alternates between two large values (e.g., 65535 and 65534) at ~10 packets/second to sustain an unlimited stream of expensive render cycles. No authentication is required, as NAWS negotiation occurs before any login sequence. A public PoC consisting of two raw Telnet packet sequences is included in the advisory (GitHub Advisory).

영향

Successful exploitation causes CPU exhaustion on the server, with a single unauthenticated connection at ~10 NAWS packets per second sufficient to fully occupy one connection-handling thread. Because connection threads are reused for the life of the session, one attacker per available connection slot can deny service to all legitimate users of that slot. There is no confidentiality or integrity impact; the vulnerability is purely an availability issue affecting any application embedding the JLine3 remote-telnet module with a network-exposed Telnet server (GitHub Advisory).

착취 단계

  1. Reconnaissance: Identify network-exposed JLine3 Telnet servers (default Telnet port, typically TCP 23 or application-specific port) using network scanners such as Nmap or Shodan, targeting services running org.jline:jline-remote-telnet versions prior to 4.2.1.
  2. Establish Telnet connection: Open a raw TCP connection to the target Telnet server. No authentication or login is required — NAWS negotiation occurs at the protocol level before any login sequence.
  3. Send alternating NAWS packets in a loop: Transmit the following two raw Telnet packets alternately at approximately 10 packets per second:
    • Packet 1 (NAWS 65535×65535): FF FA 1F FF FF FF FF FF F0
    • Packet 2 (NAWS 65534×65534): FF FA 1F FF FE FF FE FF F0
  4. Trigger CPU exhaustion: Each alternating packet causes the server to raise a WINCH signal, invoking redisplay() which loops up to 65,534 iterations and writes large space-padding strings over the socket, pegging one CPU core per connection.
  5. Sustain DoS: Maintain the connection and continue sending alternating packets; the server remains in a degraded state for the duration of the connection, denying service to legitimate users of that connection slot (GitHub Advisory).

타협의 징후

  • Network: Inbound Telnet connections sending repeated NAWS subnegotiation packets (IAC SB NAWS sequences, bytes FF FA 1F) at high frequency (~10/second or more) from a single source IP; large volumes of outbound data from the Telnet server to a single client (space-padding writes).
  • Process: Sustained high CPU utilization on the JVM process hosting the JLine3 Telnet server, particularly on connection-handling threads; thread dumps showing threads blocked in LineReaderImpl.redisplay() or freshLine().
  • Logs: Application logs showing rapid, repeated CONNECTION_TERMINAL_GEOMETRY_CHANGED events from a single client; unusual WINCH signal handling frequency in JLine3 debug logs (GitHub Advisory).

완화 및 해결 방법

Upgrade org.jline:jline-remote-telnet to version 4.2.1 or later, which introduces an upper bound on accepted terminal dimensions. As a network-level workaround, restrict access to the Telnet server port using firewall rules to trusted IP ranges, or disable the remote-telnet module entirely if Telnet access is not required. Rate-limiting inbound Telnet connections at the network perimeter can also reduce exposure (GitHub Advisory).

커뮤니티 반응

The vulnerability was identified by Michał Majchrowicz and Marcin Wyczechowski of the AFINE Team and disclosed responsibly to the JLine3 maintainers. The advisory was published by maintainer gnodet on June 17, 2026. No significant broader media coverage or notable community commentary beyond the advisory itself has been observed (GitHub Advisory).

추가 자료


근원이 보고서는 AI를 사용하여 생성되었습니다.

관련 Java 취약점:

CVE ID

심각도

점수

기술

구성 요소 이름

CISA KEV 익스플로잇

수정 사항이 있습니다.

게시된 날짜

CVE-2026-10050HIGH8.7
  • Java logoJava
  • jetty-12.0-fips
아니요Jul 22, 2026
CVE-2026-59901HIGH8.7
  • Java logoJava
  • strimzi-kafka-bridge
아니요Jul 22, 2026
CVE-2026-59920MEDIUM6.5
  • Java logoJava
  • io.netty:netty-codec-stomp
아니요Jul 22, 2026
CVE-2026-59921MEDIUM5.7
  • Java logoJava
  • camunda-8.8
아니요Jul 22, 2026
CVE-2026-59919MEDIUM5.5
  • Java logoJava
  • trino
아니요Jul 22, 2026

무료 취약성 평가

클라우드 보안 태세를 벤치마킹합니다

9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.

평가 요청

추가 Wiz 리소스

맞춤형 데모 받기

맞춤형 데모 신청하기

"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
데이비드 에슬릭최고정보책임자(CISO)
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
아담 플레처최고 보안 책임자(CSO)
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."
그렉 포니아토프스키위협 및 취약성 관리 책임자