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

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

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

Критическая уязвимость, затрагивающая ряд версий PHP 8, угрожает веб-приложениям и сайтам, позволяя провести SQL-инъекцию. Патчи уже готовы, поэтому настоятельно рекомендуется установить их как можно скорее.

Проблема получила идентификатор CVE-2022-31631 и 9,1 балла по шкале CVSS. Брешь актуальна для 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 sqlite3_snprintf() использует 32-битное целое число для параметров длины, а PHP PDO::quote() — zend_long (64-битное). Именно это несоответствие приводит к целочисленному переполнению буфера.

При этом 32-битные системы менее уязвимы к CVE-2022-31631, а вот пользователям 64-битных стоит незамедлительно установить патчи.

Что на самом деле видят провайдер, VPN-сервис и сайт при веб-сёрфинге юзера

Пётр Васильченко на Хабре разобрал, какие данные о пользователе получают сайт, провайдер, DNS-резолвер и VPN-сервис. Главный вывод прост: HTTPS защищает содержимое трафика, но плащ-невидимку не выдаёт. При корректно настроенном HTTPS провайдер не может прочитать адрес конкретной статьи, поисковый запрос, пароль или текст сообщения.

Зато ему доступны IP-адрес назначения, время и продолжительность соединения, объём трафика, а при определённых условиях — DNS-запросы и доменное имя из SNI.

Как объясняет исследователь, технологии защищённого DNS и ECH скрывают часть этих сведений, но метаданные никуда не испаряются.

Сам сайт знает гораздо больше. Он получает полный путь страницы, параметры URL, разрешённые браузером cookies, данные авторизации и сведения, которые пользователь вводит добровольно.

 

Скрипты также могут собирать характеристики устройства и формировать цифровой отпечаток браузера. Не паспорт, конечно, но для вероятностного опознания посетителя сгодится.

VPN меняет маршрут и прячет домашний IP от сайта. Провайдер после его включения видит соединение с VPN-сервером, зато новый посредник получает IP пользователя и метаданные трафика.

 

Cookies, аккаунты и браузерный отпечаток при этом остаются на месте. Можно сменить IP хоть десять раз, но вход в привычную учётную запись мгновенно заканчивает игру в шпиона.

 

Режим инкогнито тоже не превращает браузер в секретный бункер. Он отделяет временную сессию и удаляет её данные после закрытия окон, однако сайты продолжают видеть запросы, а провайдер — сетевую активность.

HTTPS скрывает содержимое, защищённый DNS — запросы доменных имён, VPN — домашний IP, а инкогнито не сохраняет локальную историю сессии. Поэтому сначала стоит решить, какие данные и от кого нужно спрятать.

RSS: Новости на портале Anti-Malware.ru