Skip to main content
VulnerabilityPublished Updated

CVE-2026-40194: phpseclib · Timing Side Channel

Affects phpseclibSource GCVE Database

0

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

CVSS 3.1 base score
3.7Low
How severe the flaw is on the 0–10 CVSS scale.
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:N

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 10 Apr 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponised: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq 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

ProductAffectedFixed in
phpseclib phpseclibAffected
  • >=0.1.1 <1.0.28
  • >=2.0.0 <2.0.53
  • >=3.0.0 <3.0.51
Fixed in
  • 1.0.28
  • 2.0.53
  • 3.0.51

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

Community reviews

Loading reviews…