The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"В WordPress 4.8.3 устранена уязвимость, которая может привес..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"В WordPress 4.8.3 устранена уязвимость, которая может привес..."  +/
Сообщение от opennews (ok), 01-Ноя-17, 11:23 
В системе управления web-контентом WordPress выявлена уязвимость (https://blog.ircmaxell.com/2017/10/disclosure-wordpress-wpdb... позволяющая выполнить произвольные SQL-запросы на сервере. Уязвимость устранена (https://wordpress.org/news/2017/10/wordpress-4-8-3-security-... в выпуске 4.8.3.  


Проблема связана с генерацией функцией $wpdb->prepare() запросов, допускающих совершение атак через подстановку SQL-запросов из-за отсутствия экранирования последовательности "%s" функцией esc_sql(). Утверждается, что базовая часть WordPress напрямую не подвержена атаке, но уязвимость может проявиться в плагинах и темах оформления  при наличии двойного вызова prepare в сочетании с подстановками через "%s". Например, если в коде


     $value_clause = $wpdb->prepare( " AND meta_value = %s", $meta_value );
     $object_ids = $wpdb->get_col( $wpdb->prepare( "SELECT $type_column FROM $table WHERE meta_key = %s $value_clause", $meta_key ) );


в качестве значения $meta_value пользователь передаст строку " %s ", а $meta_key - массив ['dump', ' OR 1=1 /*'], то благодаря двойной подстановке через оператор "%s" в первом prepare() вместо %s c учётом добавленного экранирования кавычками будет подставлена строка " '%s' ", в во втором prepare() эта строка приведёт к подстановке второго элемента массива из $meta_key. В итоге будет подготовлен SQL-запрос:

   SELECT type FROM table WHERE meta_key = 'dump' AND meta_value = '' OR 1=1 /*'


Примечательно, что более общая уязвимость, связанная с подстановкой SQL-кода через манипуляцию значениями с символом "%", вначале была исправлена в версии 4.8.2, но для сохранения совместимости с кодом плагинов была оставлена возможность использования последовательности "%s", что не устранило проблему, а лишь потребовало изменения метода атаки. 20 сентября, спустя день после релиза 4.8.2, разработчикам был продемонстрирован (https://blog.ircmaxell.com/2017/10/disclosure-wordpress-wpdb... иной способ атаки, но выявившему проблему исследователю потребовалось 5 недель, чтобы доказать наличие уязвимости и добиться выпуска исправления.

URL: https://wordpress.org/news/2017/10/wordpress-4-8-3-security-.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=47481

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  +3 +/
Сообщение от _hide_ (ok), 01-Ноя-17, 11:23 
Веберы действительно столь упрямые, чтобы не добавлять промежуточный слой перед любой генерацией SQL запросов?
3 версия вышла в 2010, 4 в 2014 году!
Только мне кажется, что это даже не смешно? До сих пор работают плагины со 2-ей версии? Или просто разрабатывают чрезвычайно упертые мудрые люди?
Ответить | Правка | Наверх | Cообщить модератору

2. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  +4 +/
Сообщение от istepan (ok), 01-Ноя-17, 11:40 
Там есть куча плагинов которые уже давно не разрабатывают, но люди пользуются. Вот в WordPress и стараются всеми силами сохранить совместимость.
Ответить | Правка | Наверх | Cообщить модератору

4. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  –4 +/
Сообщение от YetAnotherOnanym (ok), 01-Ноя-17, 12:14 
Это медвежья услуга, имхо.
Ответить | Правка | Наверх | Cообщить модератору

6. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  –3 +/
Сообщение от пох (?), 01-Ноя-17, 13:08 
> Это медвежья услуга, имхо.

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

При том что страшная и ужасная уязвимость, если сайт написан нормально, скорее всего позволяет оплатить своей карточкой чужой заказ (а не наоборот), или еще что-то столь же жизненно необходимое сделать.

Или просто вайпнуть форум (надеюсь, ты бэкапы-то делаешь, прежде чем рассуждать о том какие плохие кодеры в вордпрессе?) и нагадить на главной. То есть в самом худшем случае - если ты не неуловимый джо, кто-то все же сумел нетеоретически (!) воспользоваться уязвимостью - сведется к варианту из первого абзаца.

Ответить | Правка | Наверх | Cообщить модератору

7. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  –2 +/
Сообщение от YetAnotherOnanym (ok), 01-Ноя-17, 13:54 
Рухнет сайт или не рухнет - мне пох, не моя епархия. Да и рушится там нечему - одна страничка с контактами и прайсом в xls, экспортируемым из 1с.
Да, бэкапы есть - пятничные полные и ежедневные ночные и обеденные инкрементальные.
А лохи, у которых сайт на wp, должны страдать, такова их лоховская участь. И "рухнет" - это не самое худшее. Кража номеров кредиток, слив адресов спамерам или распространение вирусов гораздо хуже.
Ответить | Правка | Наверх | Cообщить модератору

8. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  –2 +/
Сообщение от пох (?), 01-Ноя-17, 14:39 
> Рухнет сайт или не рухнет - мне пох, не моя епархия.

удобно, чо. Я бы, правда, уволил сотрудника, которому пох на бизнес - просто вот на всякий случай.

> Да и рушится там нечему - одна страничка с контактами и прайсом в xls, экспортируемым из
> 1с.

тогда и sql injection некуда запихнуть. И модулей никаких нет.

У людей, вот сюрприз-то, бывают сайты пофункциональней-посложней.
Причем мне вот на бизнес обычно не пох (если он банкрот, то мне могут и три оклада не отдать, поскольку сотрудники при дележе останков являются кредиторами второй или третьей очереди - ровно из тех соображений, что часть вины в крахе бизнеса всегда их), бэкапы я делать умею, а вордпресс - не умею, настолько, чтоб самостоятельно исправить экстеншн который не я где-то взял, незнамокак работающий и неизвестно в  каком месте использующийся и сколько тех мест.

поэтому я добавлю костыликов и подпорочек, и буду надеяться, что этот сайт никому не нужен. Вордпрессовцы сделали то же самое, но глобально.

Ответить | Правка | Наверх | Cообщить модератору

13. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  +2 +/
Сообщение от Аноним (-), 01-Ноя-17, 21:58 
> ну да, ну да - давай у тебя сайт просто рухнет и полежит, с недельку, пока ты разбираешься - каким плагином это вызвано, и можно ли его хотя бы временно отключить, или надо пол-сайта переделать.

То есть "стейджин" - это для трусов?

Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

3. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  –1 +/
Сообщение от freehckemail (ok), 01-Ноя-17, 11:50 
> Веберы действительно столь упрямые, чтобы не добавлять промежуточный слой перед любой генерацией SQL запросов?

Я спрошу мягко, чтобы никого не обидеть: а много ты знаешь адекватных вебников?

> Только мне кажется, что это даже не смешно?

Не одному, поверь. Дыры в WP - уже настолько притча во языцех, что даже порой переплёвывает шуточки про дыры в Windows.

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

14. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  +1 +/
Сообщение от _hide_ (ok), 02-Ноя-17, 13:39 
>>> Я спрошу мягко, чтобы никого не обидеть: а много ты знаешь адекватных вебников?

Вообще такие встречаются. Упрямые, но ошибки свои исправляют. Хотя признают только перед исправлением (сообщили о проблеме - нет тут ошибки... исправил - да была ошибка, исправил. но таких редко встречаю)

Ответить | Правка | Наверх | Cообщить модератору

16. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  +/
Сообщение от freehckemail (ok), 02-Ноя-17, 18:28 
Да, непризнание ошибок у них чаще всего. Пока не разжуёшь всё от А до Я, пока чуть ли не покажешь в какой строке ошибка -- тяжело добиться выполнения задачи. В общем-то без этого нюанса я их и вовсе не встречал никогда. Так что я соглашусь с Вами -- если это всё, что за вебником замечено -- то это хороший, годный, грамотный вебник.

Но увы, такие именно что, как Вы изволили выразиться "встречаются". В основном же уровень их общей безграмотности ужасает. Когда вёл семинары, помнится, сразу вбрасывал студентам мысль, что если хотят научиться нормальной разработке, от веба надо поначалу держаться подальше. :/

Ответить | Правка | Наверх | Cообщить модератору

5. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  +/
Сообщение от trolleybusemail (?), 01-Ноя-17, 13:03 
Что, подстановку через ? вместо %s не осилили?
Ответить | Правка | Наверх | Cообщить модератору

9. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  +/
Сообщение от Comdiv (ok), 01-Ноя-17, 15:40 
Ошибки на то и ошибки, чтобы даже зная как надо, сделать что-то не то.
Ответить | Правка | Наверх | Cообщить модератору

11. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  +1 +/
Сообщение от Kodir (ok), 01-Ноя-17, 18:10 
Это слишком древнаяя и широко освещённая ошибка, чтобы в 21 веке иметь её в коде. Код с подобными проблемами автоматом считается "лабуховским".
Ответить | Правка | Наверх | Cообщить модератору

15. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  +/
Сообщение от Comdiv (ok), 02-Ноя-17, 16:41 
Если ошибка легко достижима, то она будет проявляться вне зависимости от того, насколько она древняя и широко освещённая. Переполнение буфера в Си - это тоже древняя и широко освещённая ошибка, но их находили и будут находить и использовать в своих целях.
Ответить | Правка | Наверх | Cообщить модератору

10. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  –1 +/
Сообщение от Kodir (ok), 01-Ноя-17, 18:08 
SQL injection существует десятки лет. Неужели похапасты настолько тупые, что не перепроверили свой позорный код за столько лет?? Уже даже не смешно читать про SQL с прямой подстановкой данных.
Ответить | Правка | Наверх | Cообщить модератору

12. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  +1 +/
Сообщение от Аноним (-), 01-Ноя-17, 19:26 
Не хватает совета мудрых хеловорлдщиков, что поделать.
Ответить | Правка | Наверх | Cообщить модератору

17. "В WordPress 4.8.3 устранена уязвимость, которая может привес..."  +1 +/
Сообщение от KonstantinB (ok), 02-Ноя-17, 19:44 
Забавно, что среди комментирующих про тупых похапешников никто так и не понял суть проблемы.

Читать еще раз внимательно - "благодаря двойной подстановке".

А почему не prepared statements - это понятно: обратная совместимость с плагинами, написанными 15 лет назад. Без плагинов этот вордпресс сразу станет никому не нужен, потому и тянется, прямо скажем, не самая удачная архитектура времен начала нулевых.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру