Machine-written summary
Summary written by Claude Haiku from the source advisory. Not reviewed by a person.
phpseclib versions below 1.0.28, from 2.0.0 below 2.0.53, and from 3.0.0 below 3.0.51 compare SSH2 packet HMACs with PHP's != operator in SSH2::get_binary_packet(), a comparison that can run in variable time. The source describes this as a low-severity, defense-in-depth issue and says that practical network exploitation is prevented by the protocol's disconnect-on-MAC-failure behavior and per-connection keys. Upgrade to phpseclib 1.0.28, 2.0.53, or 3.0.51, which replace the comparison with hash_equals().
Not analysed yet
We haven’t published our analysis of this Advisory yet. Once a person has reviewed it, this page will say what’s vulnerable, what has to be true for your app to be affected, and how to check.
Severity and exploitation
| Score | Rating | CVSS | Vector | Source |
|---|---|---|---|---|
| 3.7 | Low | 3.1 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N | CNA (GitHub_M) |
- CISA KEV Not listed.
- EPSS 0.0036, the 30th percentile, on 5 Nov 2026: FIRST’s estimate of the chance of exploitation in the next 30 days.
Timeline
- 31 Oct 2026, 13:59 UTC First seen by agentprime
- 31 Oct 2026, 13:59 UTC Confirmed by OSV
Sources
- GitHub Advisory Database: GHSA-r854-jrxh-36qx
- OSV: GHSA-r854-jrxh-36qx
- github.com/phpseclib/phpseclib/security/advisories/GHSA-r854-jrxh-36qx
- nvd.nist.gov/vuln/detail/CVE-2026-40194
- github.com/phpseclib/phpseclib/commit/ffe48b6b1b1af6963327f0a5330e3aa004a194ac
- github.com/phpseclib/phpseclib
- github.com/phpseclib/phpseclib/releases/tag/1.0.28
- github.com/phpseclib/phpseclib/releases/tag/2.0.53
- github.com/phpseclib/phpseclib/releases/tag/3.0.51