What’s Vulnerable › Vulnerabilities
CVE-2023-48795: Prefix Truncation Attack against ChaCha20-Poly1305 and Encrypt-then-MAC aka Terrapin
- Severity: medium (CVSS 5.9 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 93.5% probability of exploitation in the next 30 days
- Public exploit or detection template: yes
- Published: 2023-12-18 · updated 2026-10-15
- Weakness: CWE-354
Description
The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remote attackers to bypass integrity checks such that some packets are omitted (from the extension negotiation message), and a client and server may consequently end up with a connection for which some security features have been downgraded or disabled, aka a Terrapin attack. This occurs because the SSH Binary Packet Protocol (BPP), implemented by these extensions, mishandles the handshake phase and mishandles use of sequence numbers. For example, there is an effective attack against SSH's use of ChaCha20-Poly1305 (and CBC with Encrypt-then-MAC). The bypass occurs in chacha20-poly1305@openssh.com and (if CBC is used) the -etm@openssh.com MAC algorithms. This also affects Maverick Synergy Java SSH API before 3.1.0-SNAPSHOT, Dropbear through 2022.83, Ssh before 5.1.1 in Erlang/OTP, PuTTY before 0.80, AsyncSSH before 2.14.2, golang.org/x/crypto before 0.17.0, libssh before 0.10.6, libssh2 through 1.11.0, Thorn Tech SFTP Gateway before 3.4.6, Tera Term before 5.1, Paramiko before 3.4.0, jsch before 0.2.15, SFTPGo before 2.5.6, Netgate pfSense Plus through 23.09.1, Netgate pfSense CE through 2.7.2, HPN-SSH through 18.2.0, ProFTPD before 1.3.8b (and before 1.3.9rc2), ORYX CycloneSSH before 2.3.4, NetSarang XShell 7 before Build 0144, CrushFTP before 10.6.0, ConnectBot SSH library before 2.2.22, Apache MINA sshd through 2.11.0, sshj through 0.37.0, TinySSH through 20230101, trilead-ssh2 6401, LANCOM LCOS and LANconfig, FileZilla before 3.66.4, Nova before 11.8, PKIX-SSH before 14.4, SecureCRT before 9.4.3, Transmit5 before 5.10.4, Win32-OpenSSH before 9.5.0.0p1-Beta, WinSCP before 6.2.2, Bitvise SSH Server before 9.32, Bitvise SSH Client before 9.33, KiTTY through 0.76.1.13, the net-ssh gem 7.2.0 for Ruby, the mscdex ssh2 module before 1.15.0 for Node.js, the thrussh library before 0.35.1 for Rust, and the Russh crate before 0.40.2 for Rust.
Affected products
- 9Bis Kitty: through 0.76.1.13
- Apache Sshd: through 2.11.0
- Apache Sshj: through 0.37.0
- Apple macOS: from 14.0 before 14.4 — fixed in 14.4
- ronf asyncssh: before 2.14.2 — fixed in 2.14.2
- Bitvise Ssh Client: before 9.33 — fixed in 9.33
- Bitvise Ssh Server: before 9.32 — fixed in 9.32
- connectbot Sshlib: before 2.2.22 — fixed in 2.2.22
- Crates Thrussh: before 0.35.1 — fixed in 0.35.1
- CrushFTP: through 10.6.0; before 10.6.0 — fixed in 10.6.0
- Debian Linux: 10.0
- [UNKNOWN] dropbear: before 2022.83 — fixed in 2022.83
- Erlang OTP: before 22.3.4.27; from 23.0 before 23.3.4.20; from 24.0 before 24.3.4.15; from 25.0 before 25.3.2.8; from 26.0 before 26.2.1 — fixed in 22.3.4.27, 23.3.4.20, 24.3.4.15, 25.3.2.8, 26.2.1
- Fedoraproject Fedora: 38, 39
- Filezilla-Project FileZilla: before 3.66.4 — fixed in 3.66.4
- FreeBSD: through 12.4
- gentoo Security: all versions
- golang.org/x/crypto/ssh: before 0.17.0 — fixed in 0.17.0
- Jadaptive Maverick Synergy Java Ssh Api: before 3.1.0-snapshot — fixed in 3.1.0-snapshot
- Lancom-Systems Lanconfig: all versions
- Lancom-Systems Lcos: through 3.66.4
- Lancom-Systems Lcos Fx: all versions
- Lancom-Systems Lcos Lx: all versions
- Lancom-Systems Lcos Sx: 4.20, 5.20
- libssh: before 0.10.6 — fixed in 0.10.6
- libssh2: before 1.11.1 — fixed in 1.11.1
- Matez Jsch: before 0.2.15 — fixed in 0.2.15
- Net-Ssh: 7.2.0
- Netgate Pfsense Ce: through 2.7.2
- Netgate Pfsense Plus: through 23.09.1
How to fix
Upgrade to a fixed version: Apple macOS 14.4; ronf asyncssh 2.14.2; Bitvise Ssh Client 9.33; Bitvise Ssh Server 9.32; connectbot Sshlib 2.2.22; Crates Thrussh 0.35.1; CrushFTP 10.6.0; [UNKNOWN] dropbear 2022.83; Erlang OTP 22.3.4.27, 23.3.4.20, 24.3.4.15, 25.3.2.8; Filezilla-Project FileZilla 3.66.4; golang.org/x/crypto/ssh 0.17.0; Jadaptive Maverick Synergy Java Ssh Api 3.1.0-snapshot. Check the vendor advisory for mitigations.
References
- http://packetstormsecurity.com/files/176280/Terrapin-SSH-Connection-Weakening.html
- http://seclists.org/fulldisclosure/2024/Mar/21
- http://www.openwall.com/lists/oss-security/2023/12/18/3
- http://www.openwall.com/lists/oss-security/2023/12/19/5
- http://www.openwall.com/lists/oss-security/2023/12/20/3
- http://www.openwall.com/lists/oss-security/2024/03/06/3
- http://www.openwall.com/lists/oss-security/2024/04/17/8
- https://access.redhat.com/security/cve/cve-2023-48795
- https://arstechnica.com/security/2023/12/hackers-can-break-ssh-channel-integrity-using-novel-data-corruption-attack/
- https://bugs.gentoo.org/920280
- https://bugzilla.redhat.com/show_bug.cgi?id=2254210
- https://bugzilla.suse.com/show_bug.cgi?id=1217950
Get alerted when CVE-2023-48795 or the next vulnerability affects your stack