Вышел WordPress 4.8.3, представляющий собой релиз безопасности для 4.8.2 и всех прошлых версий. Новая версия исправляет проблему с $wpdb->prepare(), которая может вести к потенциальной SQL-инъекции. Несмотря на то, что само ядро WordPress остается неуязвимым, был выпущен дополнительный релиз, позволяющий предотвратить эксплуатацию уязвимости в плагинах и темах.
Если вы сейчас столкнулись с дежавю, то это неспроста – WordPress 4.8.2 уже пытался решить ту же самую задачу. По словам Энтони Феррары, который раскрыл данную уязвимость, патч 4.8.2 не решил основную проблему и сломал многие сайты.
Феррара отметил, что он выявил проблему сразу же после выхода 4.8.2 и рассказал о ней службе безопасности WordPress, но его обращение игнорировалось в течение нескольких недель.
«Когда специалисты наконец-то меня услышали, они решили исправить только подмножество проблемы, о которой я сообщал», — отметил Феррара. – «Частичное исправление – решение еще хуже, чем отсутствие исправлений (по многим причинам). В итоге я решил публично раскрыть суть проблемы, чтобы команда поняла важность этого вопроса».
Полное раскрытие (Full Disclosure) – это процесс публикации технических данных об уязвимости, чтобы общественность получила тот же самый объем информации, что и злоумышленники. Угроза полного раскрытия информации об уязвимости обычно используется для оказания давления на предпринимателей и разработчиков программ с целью их быстрого реагирования и оперативного выпуска патчей.
26 октября Феррара использовал свой Twitter аккаунт, чтобы сообщить общественности о том, что WordPress содержит серьезную SQLi уязвимость. Команда WordPress не оправдала своего доверия для Феррары, а потому полное раскрытие стало единственным вариантом обратить внимание на существующую проблему. Его пост с предупреждением о раскрытии данных был ретвитнут 562 раза и лайкнут 484 пользователями.
Тот уровень публичного воздействия, который оказал твит, привел к тому, что 27 октября с Феррарой связались представители команды WordPress для продолжения диалога. В итоге Феррара решил отложить раскрытие данных до 31 октября.
27 октября Феррара поговорил с участником команды безопасности WordPress, который решил еще раз изучить проблему. «Участник группы безопасности, который до этого не участвовал в обсуждениях, изучил все опубликованные ранее записи».
«Он (грамотно) обобщил суть проблемы, а также задал мне несколько уточняющих вопросов. Он также попросил чуть больше времени, чтобы принять решение, но конечным сроком поставил 31 октября. По этой причине я не раскрывал уязвимость в публичном пространстве. Именно этого ответа и я ждал все время».
Обе стороны работали над созданием патча, который исправил бы проблему, и в итоге был выпущен WordPress 4.8.3. И хотя для Феррары все началось с разочарования, он все же надеется, что команда примет меры и улучшит обработку обращений.
«Я понимаю, что есть и другие приоритеты», — отметил он. – «Но продемонстрируйте свое внимание. Покажите, что вы прочитали то, что было написано. И если кто-то говорит вам, что вы что-либо не поняли, попросите разъяснение. Вступите в диалог. Попросите помощь. В целом, я надеюсь, что команда безопасности WP улучшит этот момент».
Аарон Кэмпбелл, руководитель команды безопасности WordPress, отметил, что, хотя в работе с Феррарой были грубые накладки, они смогли в итоге посотрудничать вместе для выпуска готового релиза. Хотя угроза полного раскрытия безопасности не оказала серьезного влияния на исправление уязвимости, это, возможно, стало катализатором для привлечения нового человека в процесс разработки.
«Угроза разглашения, безусловно, добавляет определенный нажим и стресс, но на деле она не меняет расклада сил», — отметил Кэмпбелл. – «Проблема не станет от этого более значимой или серьезной, если она будет раскрыта; все это приведет только к потенциальным ошибкам из-за быстрой разработки фикса».
В данном случае я считаю, что угроза разглашения совпала с моментом присоединения в нашу команду нового участника. Новый человек намного лучше взаимодействовал с Энтони, и это действительно изменило ситуацию».
В официальном посте команда безопасности WordPress поблагодарила Феррару за ответственное раскрытие информации. Это вызвало некоторое обсуждение в Twitter, стоит ли переименовать ответственное раскрытие (Responsible Disclosure) в скоординированное раскрытие (Coordinated Disclosure).
«Я не уверен, что эта терминология что-то кардинально меняет», — сказал Кэмпбелл. – «Я видел, что некоторые сайты используют подобную формулировку, но, честно говоря, я не считаю, что она несет в себе что-то, чего нет в термине ответственного раскрытия».
Пользователям рекомендуется как можно скорее обновить свои сайты до версии 4.8.3. Поскольку этот релиз изменяет поведение esc_sql(), разработчикам советуют изучить следующее примечание на сайте Make WordPress Core.
Бюрократия же?
Все же когда команда разработчиков меньше — обратная связь более тесная, чем когда команда большая. Там видимо думали — «На кого бы переложить это…» Или особо вникать не хотели. Ведь «тронешь — поломается». А как мы знаем: ВП не без костылей, хоть я и люблю этот движок.
Да, у них там перманентный дедлайн + бюрократия. С таким циклом разработки особо не расслабиться.
Про WP тоже верно.