Уязвимость WP < 2.8.4
Намедни была обнаружена уязвимость WordPress, позволяющая злоумышленнику запросить смену пароля пользователя, у которого в базе нет ключа активации (не было запросов “напоминания” пароля). Чаще всего таким пользователем оказывался admin - первый по списку. Уязвимость не критичная, т.к. пароль менялся на случайный, сгенерированный WP, и отправлялся на почту жертве.Но приятного в этом тоже мало, особенно если имеют место проблемы с почтой, что, увы, не редкость. В связи с этим была выпущена версия 2.8.4 с исправленным багом.
Тем, кто по каким-либо причинам не хочет переходить на новую версию, могу предложить небольшой хак. В файле wp-login.php, в самом начале, после <?php добавить строку
foreach ($_GET as $key=>$value) if (!is_string($value)) $_GET[$key] = '';


Comment Vladimir — 13 августа 2009 в 17:43
Юрий, Ваш плагин (как я его вижу сейчас), будет работать только в глубоко частном случае, когда register_globals On.
function wp_login_vulnerability_remover() {
if (strlen($key) != 20)
return new WP_Error('invalid_key', __('Invalid key'));
}
Проблема в том, что $key в функции нигде не объявлен и не передаётся ей в качестве аргумента.
Я полагаю, что Вы имели в виду $_REQUEST['key']?
Comment Ю.Б. — 13 августа 2009 в 18:32
Спасибо. Плагин на доп проверке.
PS Спешка нужна в трех случаях. Этот - не из их числа.
Comment Ю.Б. — 13 августа 2009 в 18:53
Да, и на старуху бывает проруха… Меня подвели самоуверенность и мой WordPress. Он почему-то вдруг самостоятельно распознал западло и не нашел юзера с пустым полем user_activation_key, хотя оно у всех пустое. А я подумал, что сработал плагин, не перепроверив как положено 7 раз. Спасибо, Vladimir, еще раз. Плагин в архиве обновлен, но ссылку я пока выставлять не буду.
Comment Пинк — 15 августа 2009 в 14:46
На редкость бажный переход на новую версию, особенно с учётом отпусков всё это печально… Меня уже подёргали по данной фиче в день выхода 2.8.4. Жесть.
Comment Ruslan — 17 августа 2009 в 11:36
Можно ли обновить WP с 2.2.3 сразу до 2.8.4 ?
Comment Ю.Б. — 17 августа 2009 в 11:48
Я 2.2.3 напрямую обновил до 2.7. Не думаю, что есть принципиальные отличия от обновления до 2.8.4. Советую почитать лучший FAQ по WordPress. И помнить: бэкап - наше всё!
Comment Доктор Хаус — 30 августа 2009 в 15:14
Спасибо за инфу!
Comment Andronya — 8 сентября 2009 в 12:30
Этот переход точно даётся с трудом, спасибо за статью. Надо ещё почитать статью лекактуса.
Comment Константин — 25 сентября 2009 в 15:07
Скажите, хак-исправление в этом посте ещё актуальный после вашей записи”Взлом WordPress. HTTP_REFERER в url.”?
Comment Ю.Б. — 25 сентября 2009 в 15:10
Да. Это другая дырка, к слову, довольно безобидная.
Comment Константин — 25 сентября 2009 в 15:38
спасибо!
Comment Serg — 2 ноября 2009 в 13:13
[q]Плагин в архиве обновлен, но ссылку я пока выставлять не буду.[/q]
Об чём речь?
Comment Ю.Б. — 2 ноября 2009 в 13:33
Речь о несостоявшемся “лечебном” плагине. Забудьте.
Comment vkonto — 18 ноября 2009 в 11:10
Спасибо, за хак.
Comment Edya — 15 февраля 2010 в 20:52
большое спасибо