Skip to main content

ConnectBot cbssh EUVDEUVD-2026-98838

| CVE-2026-54700 MEDIUM
Improper Input Validation (CWE-20)
2026-10-13 GitHub_M GHSA-ch3q-cw5r-f4hg
6.9
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Victim client connects to malicious or compromised SSH server
  2. Exploit
    Server returns small malformed packet declaring oversized inner length/count
  3. Execution
    Kaitai Struct runtime attempts excessive array allocation before detecting truncation
  4. Impact
    Uncaught OutOfMemoryError terminates client application process

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

The victim must actively initiate an SSH connection from an application using cbssh/sshlib <= 0.3.0 to an attacker-controlled or compromised SSH server; this user/application-initiated outbound connection is the core prerequisite (UI:A) and is the main limiting factor, since the attacker cannot push the malformed packet to passive victims. For the general transport path, no authentication and no optional feature are required - the malicious server only needs to return one malformed packet with an oversized inner length or element count. A second, narrower path through malformed SSH-agent protocol messages additionally requires that SSH agent forwarding be explicitly enabled by the client. Exploitation is limited to clients that connect to untrusted endpoints and results only in a crash of the client process.

Impact

This is a denial-of-service vulnerability (CWE-20, improper input validation) in the ConnectBot cbssh/sshlib SSH client library whose real-world priority is moderate, not critical. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H) correctly characterizes it: network-reachable, low complexity, no authentication, but it REQUIRES user interaction (UI:A) because the victim's client must first initiate a connection to an attacker-controlled or compromised SSH server - the server cannot reach out to victims. Impact is availability-only (VA:H); the advisory and description explicitly state there is NO confidentiality or integrity impact, so the score of 6.9 is driven entirely by process-crash DoS. No EPSS score was provided, there is no CISA KEV listing, and no public exploit code was identified, so all three exploitation-likelihood signals are either absent or negative and point to low active-exploitation pressure. The most important caveat: this is a client-side flaw triggered by a MALICIOUS SERVER, which inverts the usual threat model - it only matters for clients that connect to untrusted or potentially-compromised SSH endpoints, and the impact is limited to crashing the client application process. Note the input tag 'Information Disclosure' conflicts with the actual availability-only impact and appears to be mislabeled.

Exploit ScenarioDerived

A user running an application built on the vulnerable ConnectBot sshlib (<= 0.3.0) connects to an attacker-controlled or compromised SSH server. The server replies with a small, deliberately malformed packet whose inner length or element-count field declares a size far larger than the packet itself; the Kaitai Struct Java runtime pre-allocates a byte array for that declared size before detecting the truncated input, raising an uncaught OutOfMemoryError that terminates the client process. No public proof-of-concept exploit was identified, and exploitation requires the victim to initiate the connection (UI:A).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 13, 2026

Denial of service in the ConnectBot cbssh/sshlib SSH client library (all versions through 0.3.0) lets a malicious or compromised SSH server crash the client process by returning a small malformed packet whose inner length or element-count fields are far larger than the containing packet. The Kaitai Struct Java runtime allocates an array using the attacker-declared length before it notices the input is truncated, producing excessive allocation and an uncaught OutOfMemoryError that terminates the host application; a second, narrower path exists through malformed SSH-agent messages, but only when SSH agent forwarding is enabled. The vulnerable client must initiate a connection to the hostile server (user interaction), which is the main limiting factor; there is no confidentiality or integrity impact, no authentication is required on the general transport path (CVSS 4.0 vector PR:N, UI:A), and no public exploit code was identified at time of analysis. The issue is fixed in version 0.3.1 and is not confirmed as actively exploited (CISA KEV).

RemediationAI

Upgrade the library to 0.3.1 or later, the vendor-released patched version, which introduces the length/count validation constraints and normalizes malformed-packet handling; the fix is contained in pull request 194 (https://github.com/connectbot/cbssh/pull/194) and commit a08421fbe7cf8b72fa60fb8b2f98fb465dc43fd9, with the release at https://github.com/connectbot/cbssh/releases/tag/v0.3.1 and details in advisory GHSA-ch3q-cw5r-f4hg. Where upgrading is not immediately possible, the only effective compensating control is to prevent the client from connecting to untrusted or unverified SSH endpoints, since the general transport path requires no authentication, no optional feature, and cannot be disabled by configuration - it can also be bounded by wrapping the client connection in a supervised process or thread that tolerates OutOfMemoryError termination, at the cost of losing the connection and any in-flight session state. Disabling SSH agent forwarding removes the second (agent-message) attack path but does nothing against the primary transport-path flaw, and restricting outbound SSH destinations or pinning known server host keys reduces exposure to attacker-controlled servers while breaking legitimate connections to unlisted hosts. Apply the upstream fix rather than relying on JVM heap tuning, which only shifts the allocation threshold and does not prevent the crash.

Affected VersionsENISA

cbssh < 0.3.1

Affected Packages

maven org.connectbot.sshlib:sshlib no fix
euvd cbssh fix: 0.3.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in maven, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

cbssh/sshlib is a Kotlin SSH client library that parses the SSH wire protocol using Kaitai Struct definitions (.ksy files) compiled into Java parsers, with KStateMachine handling protocol state. SSH encodes strings as a 32-bit unsigned length prefix followed by that many bytes (RFC 4251 section 5), and several structures (byte strings, ASCII strings, name lists, mpint, public keys, signatures, ECDSA signature blobs, encrypted/unencrypted packets, agent messages, and keyboard-interactive message types) read these length or count fields directly. Because the generated Kaitai code allocates the destination byte array from the declared length before reading from the size-bounded input stream, an outer transport packet of modest size can carry an inner field claiming a length approaching the Java array limit, so the attacker never needs to transmit an equally large payload. Root cause is CWE-20 improper input validation: declared byte lengths and element counts were never validated against the bytes remaining in the containing stream (or against fixed-size element arithmetic for count fields). Parsing failures also surfaced inconsistently as unchecked runtime exceptions rather than transport protocol errors. The fix in PR #194 adds Kaitai 'valid' constraints such as '_ <= _io.size - _io.pos' (and element-size divisors like '/ 5', '/ 8') across the protocol definitions, and converts malformed packets into an SSH transport protocol error or an SSH agent failure response.

Know when Java gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Client must initiate connection to a malicious server (UI:R) with no auth (PR:N) over the network (AV:N); impact is an application-crash DoS only, so A:H and C:N/I:N.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Active
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 13, 2026 - 18:19 EUVD

DescriptionCVE.org

ConnectBot SSH Client Library is written in Kotlin with Kaitai Struct and KStateMachine. Prior to 0.3.1, the SSH protocol parser trusts attacker-controlled inner byte lengths and element counts without verifying that they fit in the containing packet. A malicious or compromised SSH server can return a small malformed packet whose oversized declarations cause the Kaitai Struct Java runtime to attempt excessive allocation or repeated parsing before detecting truncated input. The general transport path requires a client connection but no authentication or optional feature; malformed SSH-agent messages additionally require SSH agent forwarding. The issue can raise an uncaught OutOfMemoryError and terminate the application process, with no demonstrated confidentiality or integrity impact. This issue is fixed in version 0.3.1.

Threat Intelligence Overview

EPSS Score
0.4%
Top 71% exploitable
Prevalence
Low
early pre-1.0 Kotlin SSH library (<=0.3.0), limited production adoption so far
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy