Veszélyes sebezhetőség az Elementor bővítményben

Ebben a posztban az Elementor 3.6.0-ás verziójába bekerült kritikus sérülékenységről lesz szó, valamint arról, hogy ezt a veszélyes hibát meglehetősen rosszul kommunikálták a fejlesztők a felhasználók felé. A legfontosabb most: minden felhasználó frissítse az Elementort a 3.6.3-as, vagy annál újabb verzióra, minél hamarabb!

A sérülékenységekről általánosságban

A WordPress-ben és a kiegészítőiben mindig fognak új sérülékenységeket találni. Ez egyrészt abból adódik, hogy mind a WP kódbázisa, mind a mögötte lévő technológia folyamatosan változik, fejlődik. Másrészt pedig abból, hogy a programozók is emberek, és hibázhatnak. Fejlesztőként teljesen elkerülni a sebezhetőségeket szinte lehetetlen, de lehet minimalizálni a felbukkanásuk esélyét, és ha már egyszer bekövetkezett a dolog, akkor utólag lehet csökkenteni a károkat (a megfelelő kommunikációval).

A WordPress-es bővítmények és sablonok sérülékenységeit felkutató (és nyilvánosságra hozó) oldalak/szervezetek (pl. WordFence, Sucuri, stb.) nagyon fontos munkát végeznek, de hajlamosak eltúlozni a hibák veszélyességét, hogy ezzel nagyobb hírverést csapjanak maguknak, illetve a biztonsággal kapcsolatos termékeiknek és szolgáltatásaiknak. Emiatt laikusok számára nehéz megállapítani egy-egy sebezhetőség veszélyességi fokát, és hogy egy adott site érintett lehet-e. Ha biztosra akarunk menni, mindig tartsuk naprakészen a WP alaprendszerét, a bővítményeket, és a sablonokat is. További információk itt: a WordPress frissítésekről.

A veszélyesség megítéléséhez jó alappont lehet a sérülékenységeket a súlyosságuk alapján tízes skálán osztályozó CVSS pontszám. A “Common Vulnerability Scoring System” egy egységes, objektív rendszer, amit IT biztonsággal foglalkozó szakemberek használnak az egyes sebezhetőségek összehasonlítására, és a megfelelő javítások priorizálásához.

Az Elementor konkrét sebezhetősége

Az Elementor 3.6.0-ás verziója (megjelenés: 2022. március 22.) hozott néhány új funkciót a bővítmény telepítési varázslójába, ezek egyike tartalmazott egy komoly sebezhetőséget – pontosabban egy felhasználói jogosultság-ellenőrzés hiányzott a kódból. Az ellenőrzés hiánya miatt bárki, akinek hozzáférése van a WP admin felületéhez (tehát legalább “feliratkozó” szintű felhasználó), le tud futtatni bármilyen kódot a weboldal szerverén – ez az úgynevezett RCE, azaz Remote Code Execution (távoli parancs futtatás) sebezhetőség, az egyik legveszélyesebb hibafajta, mert ezt kihasználva egy hacker azonnal átveheti az irányítást a komplett weboldal felett. Minden olyan, Elementort futtató weboldal veszélyben van, ahol van feliratkozási lehetőség. A súlyosságot fokozza, hogy nagyon egyszerűen kihasználható a dolog, “kezdő” hackerek számára is gyerekjáték.

Ez tipikusan olyan hiba, ami megfelelő minőségbiztosítási folyamatokkal (kód review-val) elkerülhető lenne. Ilyen hibát vagy egy kezdő WordPress-es fejlesztő követ el, vagy egy tapasztalt, de oda nem figyelő fejlesztő. Akárhogy is volt, a kód áttekintésekor valakinek fel kellett volna, hogy tűnjön a hiányzó ellenőrző-kód. A fejlesztők első hibája, hogy nem került be engedély-ellenőrzés, a második pedig, hogy ezt utólag sem vették észre.

A hiba felfedezése és javítása

A WordFence szakértői március végén fedezték fel ezt a sebezhetőséget, és először március 29-én jelezték is a fejlesztők felé, kifejezetten a biztonsági hibák bejelentésére létrehozott elementoros e-mail címen keresztül. Reakció hiányában a levelet megismételték április 5-én, majd a további tétlenség miatt 11-én jelentették a hibát a hivatalos WordPress.org plugin-tár kezelői felé. Az Elementor fejlesztői április 12-én kiadtak egy frissítést, ami befoltozta ezt a hibát, több más, kisebb-nagyobb változtatás mellett.

A fejlesztők itt követték el a harmadik hibát: nem készítették elő megfelelően az efféle információk bejelentésére létrehozott csatornát, vagy nem figyeltek eléggé az ide beérkező jelzésekre. Azt állítják, hogy miután a tudomásukra jutott a hiba, 24 órán belül kiadták a javítást.

További hibaként róható fel, hogy egy “sima” frissítésbe csomagolva javították a hibát, és mivel a múltban nagyon gyakran okoztak hibát az Elementor frissítései, ezért a felhasználók többsége kivárja a frissítések telepítése előtt, hogy másoknál okoznak-e gondokat. Ha ezt a javítást egy külön frissítésbe rakták volna, ami más módosítást nem tartalmaz, akkor az kevesebb (lényegében nulla) eséllyel ront el bármit is egy weboldalon, és többen frissítettek volna hezitálás nélkül.

Javító Plugin

Lukács József magyar WordPress-szakértő megosztott egy rövid kódrészletet, amivel az Elementor frissítése nélkül is biztonságossá tehető egy weboldal. Ez nagyon jól jöhet, ha valamilyen okból nem tudjuk vagy nem akarjuk frissíteni a plugint: https://gist.github.com/WProbot/b3a10ce6d5f937464cdeb815956c0228
A fájlt mu-pluginként érdemes telepíteni az oldalra. Az mu-pluginokról itt olvashatunk bővebben: Mi az mu-plugin?

Katasztrofális kommunikáció

Április 12-én kijött az Elementor 3.6.3-as frissítése, különösebb felhajtás nélkül. Ugyanezen a napon jelentek meg az első cikkek a sebezhetőség tényéről. Az Elementor zárt Facebook csoportjában a fejlesztők megemlítenek egy “kisebb sebezhetőséget”. A frissítési naplókban is csak nagyvonalakban írnak erről: “Javítás: a fájlfeltöltések engedélyezése a felhasználói jogosultságok szerint, a telepítési varázsló biztonságának fokozása érdekében” (“Fix: Allow file uploads based on the user capability to enforce better security policies in Onboarding wizard”).

Elementor FB poszt
Részlet az említett Facebook-posztból

Az Elementor csapatában lennie kellett legalább egy olyan fejlesztőnek, aki tisztában volt vele, hogy nem egy “kisebb sebezhetőségről” van szó, hanem egy óriási hibáról. Ennek a hibának az említett CVSS értékelés szerinti pontszáma 9.9 (a 10-ből), tehát az efféle szoftvereket érintő legsúlyosabb hibák közé tartozik. A hiba lekicsinyítése, elrejtése óriási károkat okozhat, mivel a hackerek általában lecsapnak az ilyen sebezhetőségekre, és a nyilvánosságra hozatal után azonnal elkezdik kihasználni őket.

Elementor CVSS értékelés
A sebezhetőség értékelése a Securi weboldalán

A fejlesztők büszkén hirdetik, hogy 10 milliónál is több weboldalon fut jelenleg az Elementor plugin. A nyilvánosan elérhető statisztikák szerint a sérülékenység nyilvánosságra hozatalakor az Elementort futtató weboldalaknak kb. a 34%-a használta a hibát tartalmazó a verziókat, ami több millió veszélyben lévő site-ot jelent. A sebezhetőség még jelen pillanatban (április 15-én) is megtalálható több tíz- vagy százezer weboldalon.

Végszó

A fejlesztők láthatóan több hibát is elkövettek, és ezek miatt rengeteg weboldal-tulajdonost érhettek (és érhetnek még a jövőben) komoly károk. Ezeket csökkenteni lehetett volna, ha a termék jó hírnevének potenciális megmentése helyett a felhasználók weboldalainak a biztonságára, és a frissítés fontosságára helyezik a hangsúlyt a kommunikációban.

Az említett, zárt Facebook csoportban megjelenő rövid poszton kívül semmilyen információt nem adtak a fejlesztők a hibáról. Arról nem is beszélve, hogy “kisebb sebezhetőségként” utaltak a problémára, amit azzal támasztottak alá, hogy nem tudnak róla, hogy bárkinek a weboldalát feltörték volna ezen sebezhetőség által – ami, valljuk be, egy elég furcsa magyarázat, hiszen nem attól lesz súlyos egy sebezhetőség, hogy valaki hallott-e feltörésről, vagy sem. Azóta biztonsági szakértőktől és tárhelyszolgáltatóktól is érkeztek jelzések arra vonatkozóan, hogy a sérülékenységet aktívan kihasználják a hackerek.

Felelősen viselkedő fejlesztők a lehető legszélesebb körben hirdetnék a frissítés fontosságát: nyilvános poszt formájában a fejlesztői blogon, valamint a hivatalos közösségi oldalakon is (Twitter, Facebook oldal). Ezeken kívül a regisztrált felhasználói e-mail címekre is kiküldhettek volna egy tájékoztató üzenetet.

Végezetül, egy jó tanács: aki teheti, használja a WordPress beépített szerkesztőjét, a Gutenberget, a különböző oldal-építő bővítmények helyett. A fejlesztése gyors ütemben zajlik – ha jelen pillanatban még nem is mindenben nyújt használható alternatívát az Elementorra, biztosra vehetjük, hogy a jövőben túl is fogja szárnyalni azt.


A Szerzőről
Piller Balázs senior webfejlesztő, SEO specialista, és a WordPress szakértője. Számos sikeres projektben vett részt vezető fejlesztőként. Az általa írt kód jelenleg több mint 1 000 000 webhelyen fut.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.