CVE-2026-54697
6.7MediumPublished 13 Oct 2026 · NVD status: Deferred · AI triage by gemini-3.8-flash
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Active
- Impact
- High impact on availability
- Weakness
- CWE-190, CWE-789
Impact
Attackers can crash applications via denial of service or OutOfMemoryError. They need a user or application to load a maliciously crafted private key file.
Root cause
The DER length reader accumulates excessive length octets into a signed integer and allocates arrays without validating declared sizes against the input stream, causing integer wraparound and uncontrolled memory allocation.
Affected systems
ConnectBot SSH Client Library (cbssh) prior to version 0.3.1
CVSS v4.0 · CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Fix & remediation
Upgrade the ConnectBot SSH Client Library dependency to version 0.3.1 or later. Avoid loading untrusted or unverified PEM private key files until upgraded.
AI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
ConnectBot SSH Client Library is written in Kotlin with Kaitai Struct and KStateMachine. Prior to 0.3.1, DerReader.readLength() accepts excessive long-form DER length octets, accumulates them into an Int, and primitive readers allocate arrays without checking the declared size against the remaining input. An application or user that loads an attacker-provided private-key file through SshClient.authenticatePublicKey(), SshKeys.decodePemPrivateKey(), SshSigning.sign(), or SshSigning.getPublicKey() can trigger integer wraparound, excessive allocation, or an uncaught OutOfMemoryError. SSH server host keys and agent-forwarding messages do not use this application-supplied private-key input path. No usable weakened key and no confidentiality or integrity impact have been demonstrated. This issue is fixed in version 0.3.1.