CVE-2026-40194: phpseclib has a variable-time HMAC comparison in SSH2::get_binary_packet() using != instead of hash_equals()

low Affects phpseclib/phpseclib. Feed 2026.10.29.4, updated 2026-10-29; published ; advisory modified .

phpseclib has a variable-time HMAC comparison in SSH2::get_binary_packet() using != instead of hash_equals()

Package
phpseclib/phpseclib Composer
Affected versions
>=0.1.1 and <1.0.28 or >=2.0.0 and <2.0.53 or >=3.0.0 and <3.0.51
Fixed in
1.0.28, 2.0.53, 3.0.51
Severity
low  CVSS 3.7
Exploitation
not on CISA KEV · EPSS 0% (29.9th percentile)
Published
2026-04-10
Source
osv.dev

References

CWE-208
NVD recordphpseclib/phpseclib advisories

Am I affected?

Find out in one command. phpwarden checks your composer.lock against this advisory and 20,000+ others, ranked by real-world exploitation (CISA KEV + EPSS). Free, offline, open data.

# PHP projects (recommended)
composer require --dev phpwarden/phpwarden
# then
vendor/bin/phpwarden deps composer.lock

# or, without Composer
pipx install phpwarden   &&   phpwarden deps composer.lock

Or keep it checked automatically: GitHub Action · pre-commit hook · GitLab CI · Laravel artisan command

Install docs   How findings are ranked

Related advisories