CVE-2026-40194

Source
https://cve.org/CVERecord?id=CVE-2026-40194
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-40194.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-40194
Aliases
Downstream
Related
Published
2026-04-10T20:24:06Z
Modified
2026-08-12T03:51:29Z
Severity
  • 3.7 (Low) CVSS_V3 - CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N CVSS Calculator
Summary
phpseclib has a variable-time HMAC comparison in SSH2::get_binary_packet() using != instead of hash_equals()
Details

phpseclib is a PHP secure communications library. Starting in 0.1.1 and 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.

Database specific
{
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
        "CWE-208"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40194.json"
}
References

Affected packages

Git / github.com/phpseclib/phpseclib

Affected ranges

Type
GIT
Repo
https://github.com/phpseclib/phpseclib
Events
Database specific
Show details
{
    "extracted_events": [
        {
            "introduced": "0.1.1"
        },
        {
            "fixed": "1.0.28"
        },
        {
            "introduced": "2.0.0"
        },
        {
            "fixed": "2.0.53"
        },
        {
            "introduced": "3.0.0"
        },
        {
            "fixed": "3.0.51"
        }
    ],
    "source": "AFFECTED_FIELD"
}

Affected versions

0.*
0.1.1
0.1.2
0.1.5
0.2.0
0.2.1
0.2.2
0.3.0
0.3.6
0.3.7
0.3.8
1.*
1.0.1
1.0.10
1.0.11
1.0.12
1.0.13
1.0.14
1.0.15
1.0.16
1.0.17
1.0.18
1.0.19
1.0.20
1.0.21
1.0.22
1.0.23
1.0.24
1.0.25
1.0.26
1.0.27
1.0.4
1.0.5
1.0.6
1.0.7
1.0.8
1.0.9
2.*
2.0.0
2.0.10
2.0.11
2.0.12
2.0.13
2.0.14
2.0.15
2.0.16
2.0.17
2.0.18
2.0.19
2.0.20
2.0.21
2.0.22
2.0.23
2.0.24
2.0.25
2.0.26
2.0.27
2.0.28
2.0.29
2.0.3
2.0.30
2.0.31
2.0.32
2.0.33
2.0.34
2.0.35
2.0.36
2.0.37
2.0.38
2.0.39
2.0.4
2.0.40
2.0.41
2.0.42
2.0.43
2.0.44
2.0.45
2.0.46
2.0.47
2.0.48
2.0.49
2.0.5
2.0.50
2.0.51
2.0.52
2.0.6
2.0.7
2.0.9
3.*
3.0.0
3.0.1
3.0.10
3.0.11
3.0.12
3.0.13
3.0.14
3.0.15
3.0.16
3.0.17
3.0.18
3.0.19
3.0.2
3.0.20
3.0.21
3.0.22
3.0.23
3.0.3
3.0.33
3.0.34
3.0.35
3.0.36
3.0.37
3.0.38
3.0.39
3.0.4
3.0.40
3.0.41
3.0.42
3.0.43
3.0.44
3.0.45
3.0.46
3.0.47
3.0.48
3.0.49
3.0.5
3.0.50
3.0.6
3.0.7
3.0.8
3.0.9

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-40194.json"