Závažná zraniteľnosť platformy WordPress umožňuje útoky cez distribučný kanál pluginov a tém
Obľúbená platforma na tvorbu webových stránok obsahuje závažnú zraniteľnosť, ktorá útočníkom umožňuje jednoduchým spôsobom vymeniť tému či plugin webstránky za jeho škodlivú verziu. To môže viesť ku vzdialenému vykonávaniu kódu a kompromitácii webstránky. Ak stránka používa vlastný neregistrovaný doplnok, útočníkovi stačí zaregistrovať svoj plugin na webe wordpress.org s rovnakým názvom. V rámci automatickej aktualizácie si následne stránka stiahne škodlivú verziu.
Opis činnosti
CVE-2021-44223
Zraniteľnosť CVE-2021-44223 spočíva v skutočnosti, že ak webová stránka využíva CMS WordPress s vlastnými pluginmi alebo témami, ktoré nie sú registrované na doméne wordpress.org, vzniká pre útočníka možnosť zaregistrovať škodlivú tému alebo plugin s rovnakým názvom. Tieto môžu obsahovať zadné vrátka PHP, ktoré po automatickej alebo manuálnej aktualizácii z takéhoto repozitára WordPressu umožnia vzdialené vykonanie kódu a následnú kompromitáciu webovej stránky.
Podvrhnutie témy je náročnejší proces oproti podvrhnutiu pluginu, nakoľko registrácia novej témy podlieha dôkladnejšej bezpečnostnej kontrole. Zverejnené WP pluginy v minulosti nepodliehali žiadnym kontrolám, takže zaviesť škodlivý kód do zaregistrovaného repozitára WordPressu bolo jednoduché. Podľa posledných informácií spoločnosti existuje určitá kontrola už aj pri pluginoch. Nakoľko však nie je známy rozsah kontroly, nemožno považovať toto opatrenie na odstránenie rizika treťou stranou za dostatočné.
WordPress predstavil vo verzii 5.8 novú hlavičku pluginov „Update URI”, ktorá s priradenou hodnotou false, zabráni prepisu/aktulizácii vlastného pluginu cudzím pluginom s rovnakým názvom z Wordpress.org repozitára.
Zraniteľné systémy
- WordPress, verzie staršie ako 5.8
Závažnosť zraniteľnosti
Vysoká
Možné škody
- Vzdialené vykonávanie kódu
- Prevzatie kontroly nad webstránkou
Odporúčania
Bezodkladná aktualizácia WordPress aspoň na verziu 5.8.
Pokiaľ aktualizácia nie je možná, pre zmiernenie dopadov zraniteľností použite nasledovné techniky.
Pluginy:
Použite v názve pluginu zakázané znaky (v tomto prípade znaky, ktoré nemôžu byť použité v URL, teda veľké písmená, podtržník, zakázané slová), aby nebolo možné registrovať repozitár pluginu s rovnakým názvom na webe wordpress.org. Momentálne môže plugin obsahovať malé písmená a pomlčku. Toto isté platí aj pre témy.
Pokiaľ by vyššie uvedená možnosť nebola z nejakého dôvodu uskutočniteľná, je možné aktualizovanie pluginov selektívne zakázať prostredníctvom pluginu Easy Update Manager.
Témy
Odstránenie rizika pri témach, pokiaľ tému sami nemáme registrovanú na wordpress.org, je možné premenovaním témy, napríklad ako theme-internal_name prípadne WordPress-internal_name, pričom sa zámerne snažíme porušiť podmienky mennej konvencie WordPress komunity na hosting témy resp. registráciu repozitára s takýmto názvom.
Odkazy
https://vavkamil.cz/2021/11/25/wordpress-plugin-confusion-update-can-get-you-pwned/
https://developer.wordpress.org/plugins/wordpress-org/planning-your-plugin/
https://wordpress.org/plugins/stops-core-theme-and-plugin-updates/