Skip to content Skip to sidebar Skip to footer

PHP-уязвимость позволяет хакерам взламывать сайты через SQL-инъекцию

Вышла новая уязвимость в PHP 8, которая может использоваться для атаки на веб-приложения и сайты через SQL-инъекции. Уязвимость затрагивает несколько версий PHP 8, но уже есть патчи, которые нужно установить как можно скорее.
Проблема получила идентификатор CVE-2022-31631 и оценку 9,1 из 10 по опасности. Она актуальна для PHP 8.0.x до версии 8.0.27, 8.1.x до версии 8.1.15 и 8.2.x до версии 8.2.2.
Проблема кроется в функции PDO::quote() при работе с базами данных SQLite. Эта функция обычно используется для очистки данных, вводимых пользователем, перед их использованием в запросах к базе данных.
Уязвимость CVE-2022-31631 связана с переполнением буфера. Если PDO::quote() обрабатывает слишком длинную строку, функция не сможет правильно защитить данные.
Это может привести к созданию опасных SQL-запросов, которые позволят злоумышленникам внедрить вредоносный код и получить доступ к базе данных.
Проблема связана с разницей в обработке длинных строк между PHP и SQLite. Например, базовая функция SQLite sqlite3_snprintf() использует 32-битное число для длины, в то время как PHP PDO::quote() использует 64-битное число. Это различие приводит к переполнению буфера.
Пользователям 32-битных систем уязвимость не так опасна, но пользователям 64-битных систем необходимо установить патчи незамедлительно.