В плагине GiveWP для WordPress обнаружена уязвимость «неаутентифицированное внедрение PHP-объектов» (PHP Object Injection), позволяющая выполнять произвольный код на сервере.
Атака возможна при наличии опубликованной формы пожертвований и активного шлюза оплаты. Уязвимость затрагивает версии 4.16.7.1 и ниже. Разработчики выпустили правила для защиты от эксплуатации.
ⓘ Что такое PHP Object Injection
PHP Object Injection — это уязвимость, позволяющая злоумышленнику внедрять произвольные PHP-объекты в приложение. Это происходит, когда приложение десериализует ненадежные данные, полученные от пользователя. Успешная эксплуатация может привести к выполнению кода, краже данных или другим вредоносным действиям.
// includes/process-donation.php - give_process_donation_form()
$user_info = [
'id' => $user['user_id'],
'title' => $user['user_title'],
'email' => $user['user_email'],
'first_name' => $user['user_first'],
'last_name' => $user['user_last'], // attacker-controlled serialized gadget
'address' => $user['address'],
];
// "safe" unserialize turns the gadget into __PHP_Incomplete_Class
$user_info = array_map( '\Give\Helpers\Utils::maybeSafeUnserialize', stripslashes_deep( $user_info ) );
…
Источник: Patchstack
@cbunit