phpseclib — это библиотека защищенных коммуникаций PHP. До версий 3.0.51, 2.0.53 и 1.0.28 phpseclib\Net\SSH2::get_binary_packet() использует оператор PHP != для сравнения полученного пакета SSH HMAC с локально вычисленным HMAC. != для двоичных строк одинаковой длины в PHP используется memcmp(), который сокращает первый отличающийся байт. Это настоящее сравнение с переменным временем (CWE-208), подтвержденное тестами масштабирования.
Эта уязвимость исправлена в версиях 3.0.51, 2.0.53 и 1.0.28.
Показать оригинальное описание (EN)
phpseclib is a PHP secure communications library. 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.
Характеристики атаки
Последствия
Строка CVSS v3.1