CVE-2026-40194: phpseclib · Timing Side Channel
Affects phpseclibSource GCVE Database
Not known to be exploited · CVSS 3.7 Low · fixed in 3.0.51 : update phpseclib when convenient.
Data as of 27 Oct 2026, 00:07 UTC
- Patch
- Available – fixed in 3.0.51, 2.0.53, 1.0.28
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:NExploitation evidence
Disclosed: evidence found.
CVE published 10 Apr 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade phpseclib to 3.0.51, 2.0.53 or 1.0.28.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| phpseclib phpseclib | Affected
| Fixed in
|
Description
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.
References
- github.com/phpseclib/phpseclib/security/advisories/GHSA-r854-jrxh-36qx (opens in a new tab)
- github.com/phpseclib/phpseclib/commit/ffe48b6b1b1af6963327f0a5330e3aa004a194ac (opens in a new tab)
- github.com/phpseclib/phpseclib/releases/tag/1.0.28 (opens in a new tab)
- github.com/phpseclib/phpseclib/releases/tag/2.0.53 (opens in a new tab)
- github.com/phpseclib/phpseclib/releases/tag/3.0.51 (opens in a new tab)