Vulnerability Details CVE-2026-40194
phpseclib is a PHP secure communications library. Prior to 3.0.51, 2.0.53, and 1.0.28, phpseclib\Net\SSH2::get_binary_packet() uses PHP's != operator to compare a received SSH packet HMAC against the locally computed HMAC. != on equal-length binary strings in PHP uses memcmp(), which short-circuits on the first differing byte. This is a real variable-time comparison (CWE-208), proven by scaling benchmarks. This vulnerability is fixed in 3.0.51, 2.0.53, and 1.0.28.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.0
EPSS Ranking 2.0%
CVSS Severity
CVSS v3 Score 3.7
Products affected by CVE-2026-40194
-
cpe:2.3:a:phpseclib:phpseclib:0.1.0
-
cpe:2.3:a:phpseclib:phpseclib:0.1.1
-
cpe:2.3:a:phpseclib:phpseclib:0.1.2
-
cpe:2.3:a:phpseclib:phpseclib:0.1.5
-
cpe:2.3:a:phpseclib:phpseclib:0.2.0
-
cpe:2.3:a:phpseclib:phpseclib:0.2.1
-
cpe:2.3:a:phpseclib:phpseclib:0.2.2
-
cpe:2.3:a:phpseclib:phpseclib:0.3.0
-
cpe:2.3:a:phpseclib:phpseclib:0.3.1
-
cpe:2.3:a:phpseclib:phpseclib:0.3.10
-
cpe:2.3:a:phpseclib:phpseclib:0.3.5
-
cpe:2.3:a:phpseclib:phpseclib:0.3.6
-
cpe:2.3:a:phpseclib:phpseclib:0.3.7
-
cpe:2.3:a:phpseclib:phpseclib:0.3.8
-
cpe:2.3:a:phpseclib:phpseclib:0.3.9
-
cpe:2.3:a:phpseclib:phpseclib:1.0.0
-
cpe:2.3:a:phpseclib:phpseclib:1.0.1
-
cpe:2.3:a:phpseclib:phpseclib:1.0.10
-
cpe:2.3:a:phpseclib:phpseclib:1.0.11
-
cpe:2.3:a:phpseclib:phpseclib:1.0.12
-
cpe:2.3:a:phpseclib:phpseclib:1.0.13
-
cpe:2.3:a:phpseclib:phpseclib:1.0.14
-
cpe:2.3:a:phpseclib:phpseclib:1.0.15
-
cpe:2.3:a:phpseclib:phpseclib:1.0.16
-
cpe:2.3:a:phpseclib:phpseclib:1.0.17
-
cpe:2.3:a:phpseclib:phpseclib:1.0.18
-
cpe:2.3:a:phpseclib:phpseclib:1.0.19
-
cpe:2.3:a:phpseclib:phpseclib:1.0.2
-
cpe:2.3:a:phpseclib:phpseclib:1.0.20
-
cpe:2.3:a:phpseclib:phpseclib:1.0.21
-
cpe:2.3:a:phpseclib:phpseclib:1.0.22
-
cpe:2.3:a:phpseclib:phpseclib:1.0.23
-
cpe:2.3:a:phpseclib:phpseclib:1.0.3
-
cpe:2.3:a:phpseclib:phpseclib:1.0.4
-
cpe:2.3:a:phpseclib:phpseclib:1.0.5
-
cpe:2.3:a:phpseclib:phpseclib:1.0.6
-
cpe:2.3:a:phpseclib:phpseclib:1.0.7
-
cpe:2.3:a:phpseclib:phpseclib:1.0.8
-
cpe:2.3:a:phpseclib:phpseclib:1.0.9
-
cpe:2.3:a:phpseclib:phpseclib:2.0.0
-
cpe:2.3:a:phpseclib:phpseclib:2.0.1
-
cpe:2.3:a:phpseclib:phpseclib:2.0.10
-
cpe:2.3:a:phpseclib:phpseclib:2.0.11
-
cpe:2.3:a:phpseclib:phpseclib:2.0.12
-
cpe:2.3:a:phpseclib:phpseclib:2.0.13
-
cpe:2.3:a:phpseclib:phpseclib:2.0.14
-
cpe:2.3:a:phpseclib:phpseclib:2.0.15
-
cpe:2.3:a:phpseclib:phpseclib:2.0.16
-
cpe:2.3:a:phpseclib:phpseclib:2.0.17
-
cpe:2.3:a:phpseclib:phpseclib:2.0.18
-
cpe:2.3:a:phpseclib:phpseclib:2.0.19
-
cpe:2.3:a:phpseclib:phpseclib:2.0.2
-
cpe:2.3:a:phpseclib:phpseclib:2.0.20
-
cpe:2.3:a:phpseclib:phpseclib:2.0.21
-
cpe:2.3:a:phpseclib:phpseclib:2.0.22
-
cpe:2.3:a:phpseclib:phpseclib:2.0.23
-
cpe:2.3:a:phpseclib:phpseclib:2.0.24
-
cpe:2.3:a:phpseclib:phpseclib:2.0.25
-
cpe:2.3:a:phpseclib:phpseclib:2.0.26
-
cpe:2.3:a:phpseclib:phpseclib:2.0.27
-
cpe:2.3:a:phpseclib:phpseclib:2.0.28
-
cpe:2.3:a:phpseclib:phpseclib:2.0.29
-
cpe:2.3:a:phpseclib:phpseclib:2.0.3
-
cpe:2.3:a:phpseclib:phpseclib:2.0.30
-
cpe:2.3:a:phpseclib:phpseclib:2.0.31
-
cpe:2.3:a:phpseclib:phpseclib:2.0.32
-
cpe:2.3:a:phpseclib:phpseclib:2.0.33
-
cpe:2.3:a:phpseclib:phpseclib:2.0.34
-
cpe:2.3:a:phpseclib:phpseclib:2.0.35
-
cpe:2.3:a:phpseclib:phpseclib:2.0.36
-
cpe:2.3:a:phpseclib:phpseclib:2.0.37
-
cpe:2.3:a:phpseclib:phpseclib:2.0.38
-
cpe:2.3:a:phpseclib:phpseclib:2.0.39
-
cpe:2.3:a:phpseclib:phpseclib:2.0.4
-
cpe:2.3:a:phpseclib:phpseclib:2.0.40
-
cpe:2.3:a:phpseclib:phpseclib:2.0.41
-
cpe:2.3:a:phpseclib:phpseclib:2.0.42
-
cpe:2.3:a:phpseclib:phpseclib:2.0.43
-
cpe:2.3:a:phpseclib:phpseclib:2.0.44
-
cpe:2.3:a:phpseclib:phpseclib:2.0.45
-
cpe:2.3:a:phpseclib:phpseclib:2.0.46
-
cpe:2.3:a:phpseclib:phpseclib:2.0.47
-
cpe:2.3:a:phpseclib:phpseclib:2.0.48
-
cpe:2.3:a:phpseclib:phpseclib:2.0.5
-
cpe:2.3:a:phpseclib:phpseclib:2.0.6
-
cpe:2.3:a:phpseclib:phpseclib:2.0.7
-
cpe:2.3:a:phpseclib:phpseclib:2.0.8
-
cpe:2.3:a:phpseclib:phpseclib:2.0.9
-
cpe:2.3:a:phpseclib:phpseclib:3.0.0
-
cpe:2.3:a:phpseclib:phpseclib:3.0.1
-
cpe:2.3:a:phpseclib:phpseclib:3.0.10
-
cpe:2.3:a:phpseclib:phpseclib:3.0.11
-
cpe:2.3:a:phpseclib:phpseclib:3.0.12
-
cpe:2.3:a:phpseclib:phpseclib:3.0.13
-
cpe:2.3:a:phpseclib:phpseclib:3.0.14
-
cpe:2.3:a:phpseclib:phpseclib:3.0.15
-
cpe:2.3:a:phpseclib:phpseclib:3.0.16
-
cpe:2.3:a:phpseclib:phpseclib:3.0.17
-
cpe:2.3:a:phpseclib:phpseclib:3.0.18
-
cpe:2.3:a:phpseclib:phpseclib:3.0.19
-
cpe:2.3:a:phpseclib:phpseclib:3.0.2
-
cpe:2.3:a:phpseclib:phpseclib:3.0.20
-
cpe:2.3:a:phpseclib:phpseclib:3.0.21
-
cpe:2.3:a:phpseclib:phpseclib:3.0.22
-
cpe:2.3:a:phpseclib:phpseclib:3.0.23
-
cpe:2.3:a:phpseclib:phpseclib:3.0.3
-
cpe:2.3:a:phpseclib:phpseclib:3.0.33
-
cpe:2.3:a:phpseclib:phpseclib:3.0.34
-
cpe:2.3:a:phpseclib:phpseclib:3.0.35
-
cpe:2.3:a:phpseclib:phpseclib:3.0.36
-
cpe:2.3:a:phpseclib:phpseclib:3.0.37
-
cpe:2.3:a:phpseclib:phpseclib:3.0.38
-
cpe:2.3:a:phpseclib:phpseclib:3.0.39
-
cpe:2.3:a:phpseclib:phpseclib:3.0.4
-
cpe:2.3:a:phpseclib:phpseclib:3.0.40
-
cpe:2.3:a:phpseclib:phpseclib:3.0.41
-
cpe:2.3:a:phpseclib:phpseclib:3.0.42
-
cpe:2.3:a:phpseclib:phpseclib:3.0.43
-
cpe:2.3:a:phpseclib:phpseclib:3.0.44
-
cpe:2.3:a:phpseclib:phpseclib:3.0.45
-
cpe:2.3:a:phpseclib:phpseclib:3.0.46
-
cpe:2.3:a:phpseclib:phpseclib:3.0.5
-
cpe:2.3:a:phpseclib:phpseclib:3.0.6
-
cpe:2.3:a:phpseclib:phpseclib:3.0.7
-
cpe:2.3:a:phpseclib:phpseclib:3.0.8
-
cpe:2.3:a:phpseclib:phpseclib:3.0.9