Как да предпазим своята WordPress инсталация от Genericons Example.html XSS уязвимост

През изминалата година беше открит критичен бъг в популярната система WordPress, който афектира милиони потребители. Уязвимостта включва компоненти, които използват шрифтовия пакет "Genericons" и може да остави уеб сайта ви уязвим към cross-site scripting (XSS) атаки. И до ден днешен обаче има потребители, които страдат от уязвимостта. В днешната статия ще обясним въздействието ѝ, как да проверите за наличието ѝ и какви мерки можете да предприемете, ако установите, че сте уязвими.

Обяснение на уязвимостта

Самата уязвимост е налична в пакета с шрифтове "Genericons", а не в самото ядро на WordPress. За нещастие обаче този шрифтов пакет се използва от официалната WordPress тема "TwentyFifteen". Това е и темата, която се инсталира по подразбиране от WordPress към днешна дата. Уязвимостта афектира също популярния плъгин за оптимизация "JetPack", който се използва в милиони активни уебсайтове, приставки и теми. Това са само няколко примера, а в действителност  уязвимостта афектира и много други компоненти.

Въпросната уязвимост съществува в един единствен файл под името "example.html", който е включен в "Genericons" пакета. Този файл не е важен и е включен единствено за да има възможност за предварителен преглед на самия шрифт. Той съдържа jQuery код, в който е включена уязвимостта, позволяваща DOM базирани cross-site атаки. Всякакви теми и плъгини, използващи по-нови версии на "Genericons", без да са премахнали файла "example.html" са уязвими.

DOM базираната XSS атака работи, като се променя самата DOM среда и по този начин се изпълняват допълнителни скриптове, които не са включени в оригиналния дизайн. За да може да се използва уязвимостта, потребителят трябва да бъде подлъган да натисне специално изработен линк, докато вече е влязъл в своята WordPress инсталация. Ако апликацията има този тип уязвимост, сървърът няма как да я предотврати, тъй като тя се изпълнява в потребителския браузър. За щастие обаче отстраняването на дупката е изключително лесно в този случай.

Съдържа ли уебсайтът ми тази уязвимост? 

Малко след като се разбра за този бъг, се появи нова версия на WordPress - 4.2.2, закърпваща уязвимостта. Ако сте инсталирали или обновили WordPress над тази версия, инсталацията ви трябва да не е уязвима. Ако имате WordPress под тази версия, е силно препоръчително да бъде обновена. Ако това е така, вашата WordPress инсталация ще изпише подобно предупреждение:

XSS уязвимост на WordPress

Ако разполагате със SSH, можете да проверите дали сте уязвими, като влезете в директорията на своята WordPress инсталация и изпълните следната команда:

find ./ -name "example.html"

Ако не разполагате със SSH, можете да влезете чрез FTP или своя файлов мениджър и да потърсите за файл с името "example.html" в директорията:

wp-content/themes/<име на темата>/genericons/example.html

В тази директорията  "<име на темата>" е използваната от вас тема, например twentyfourteen, twentyfifteen и т.н. Ако има уязвимост, можете да видите подобен резултат:

./wp-content/themes/twentyfourteen/genericons/example.html
./wp-content/themes/twentyfifteen/genericons/example.html

Как да се предпазим от уязвимостта?

Препоръчителното действие ако сте уязвими е просто да обновите своята WordPress инсталация. Това не само ще закърпи уязвимостта, но може и да поправи други проблеми, които може и да са съществували от преди това. Обновлението на WordPress се извършва директно от неговия Kонтролен панел -> Табло - Обновления

XSS уязвимост на WordPress

Възможно е да се наложи да обновите своите теми и плъгини поотделно.

Ако не разполагате с възможност за обновление на своята WordPress инсталация, то алтернативен вариант е да премахнете уязвимия файл "example.html". Можете да направите това със следната команда директно под SSH:

find ./ -name "example.html" -delete

Ако все пак имате въпроси, свързани с уязвимостта, можете да се свържете с нас по всяко време, за да ви помогнем.

0.00 avg. rating (0% score) - 0 votes