Изследователят по сигурността на Legal Hackers Давид Голунски публикува подробности за неупълномощена уязвимост за нулиране на паролата в ядрото на WordPress. Голунски демонстрира как при определени обстоятелства нападателят може да прихване имейл за нулиране на паролата и да получи достъп до акаунт на потребител.
Неговата концептуална концепция използва WordPress, използвайки променливата SERVER_NAME за да получите името на хоста на сървъра, за да създадете заглавка От / Return-Path изходяща парола за нулиране на парола.
Основните уеб сървъри като Apache задават променливата SERVER_NAME по подразбиране, използвайки името на хоста, предоставено от клиента (в заглавката HTTP_HOST):
Https://httpd.apache.org/docs/2.4/mod/core.html#usecanonicalname
Тъй като SERVER_NAME може да бъде модифициран, нападател може да го конфигурира в произволен домейн по свой избор, например:
Attackers-mxserver.com
Което би дало на WordPress конфигурацията $ from_email
И така причинява изходящ имейл с пътя Return / Return-Path на този злонамерен адрес.
Резултатите от тази конкретна атака ще зависят от сървърната среда, конкретната конфигурация на пощенския сървър и в някои случаи ще изискват взаимодействие с потребителя. Докладът на Голунски включва по-конкретна разбивка на възможните методи, които биха могли да бъдат използвани.
След докладване на проблема на екипа по сигурността на WordPress през юли 2016 г., а също и чрез уеб сайт HackerOne, Golunski не видя напредък и реши да го направи публикувам подробности за уязвимостта за обществеността.
Въпреки че все още няма официална корекция, звездата за сигурност на WordPress Аарън Кембъл заяви, че проблемът не е толкова сериозен, колкото може да бъде.
« Това е проблем с по-нисък приоритет, но ние сме наясно с него и е в нашата опашка- Каза Кембъл. Той обясни уникалния набор от условия, които биха били необходими, за да бъде това сериозна уязвимост.
« За да може проблемът да окаже въздействие върху сигурността, сървърът трябва да позволи заменяната от потребителя заглавка да бъде заменена $ _SERVER ['SERVER_NAME']- Каза Кембъл. „Смятаме, че конфигурацията на сървъра е недостатъчна (като„ display_errors “, когато е приложимо на производствен сървър), което за съжаление е извън нашия контрол.“
Кембъл е тествал личните си сървъри Apache и nginx и никой от тях не е лицензиран за това. В допълнение към неправилно конфигуриран сървър, Кембъл каза, че трябва да се случи и едно от следните действия:
- Потребителят трябва да отговори на имейл за нулиране на парола
- Автоматичният отговор трябва да отговори на имейла и да включва оригинала
- Имейл сървърът трябва да бъде компрометиран или претоварен и съобщението да бъде върнато на подателя с съдържание непокътнат
« Ако сървърът ви е уязвим и нямате възможност да коригирате конфигурацията на сървъра, пак не е необходимо да правите промени във файловете на WordPress, за да облекчите проблема.- Каза Кембъл. „Малко PHP като този в приставка ще определи статичен имейл адрес по ваш избор:“
add_filter ('wp_mail_from', функция ($ from_email) {return '[имейл защитен]"; });
Кембъл каза, че всяка промяна на ядрото, която WordPress прави, вероятно ще бъде чрез билет, който в момента проследява проблема без перспектива за сигурност. Той каза, че е малко вероятно поправката да дойде в следващото издание за сигурност, но екипът работи активно по нея. Ако открият добро смекчаване на проблема, Кембъл каза, че ще го споделят, след като се справят с всички потенциални последици.
А ти ? Какво мислите за тази уязвимост?