Miljoenen WordPress websites kwetsbaar sinds 2021

Rudy Brinkman - Brinkman.IT
Rudy Brinkman BrinkmanIT

Naar schatting tot wel 45 miljoen WordPress websites zijn potentieel kwetsbaar voor aanvallers doordat plugins niet meer bijgewerkt worden in WordPress. Eigenaren van websites zijn zich hier niet van bewust omdat ze geen melding meer krijgen dat de plugin een update nodig heeft.

Het probleem wordt veroorzaakt doordat het WordPress update mechanisme ‘by design’ zo ontworpen is dat updates niet standaard geport worden naar oudere versies (dat is ondoenlijk) en ontwikkelaars van plugins vaak alleen de nieuwste versie ondersteunen.

In dit artikel de oorzaak en de mogelijk ernstige gevolgen hiervan voor veel websites, wereldwijd, die WordPress en ClassicPress gebruiken. Mogelijk ook úw website!

Wat zijn WordPress plugins?

WordPress is een populair systeem voor het beheren van je website, een “content management” programma. Oorspronkelijk begonnen als “blog software” is WordPress uitgegroeid tot een programma uitermate geschikt als CMS voor websites.

wordpress gratis open source CMSBinnen WordPress bestaat de mogelijkheid functionaliteit aan het programma toe te voegen middels stukjes extra software, “plugins”. Plugins vormen sowieso al een beveiligingsrisico. De afgelopen jaren is dit meerdere malen gebleken. Ze worden bijvoorbeeld niet meer door ontwikkelaars onderhouden (“abandoned” plugins) of ze worden doorverkocht aan kwaadaardige ontwikkelaars die zo de websites waar deze plugins gebruikt worden kunnen infecteren zonder dat de eigenaren het door hebben.

Naar nu gebleken is, is er echter een nieuw en nog véél groter probleem met plugins. Dit wordt veroorzaakt door de overgang van WordPress versie 4.9 naar versie 5. WordPress versie 5 is voorzien van Gutenberg. Gutenberg is niet alleen een wijziging in de ‘editor’ (de tekstverwerker waarmee je berichten maakt voor je website) maar grijpt ook diep in op andere onderdelen van de software. Dit blijkt alleen al uit het feit dat de code van het pakket bijna verdubbeld is door de implementatie van Gutenberg.

Wat is het probleem met WordPress plugins?

Als beta-tester van ClassicPress, gebaseerd op de WordPress 4.9-branch, constateerde ik een “tekortkoming” bij het updaten van plugins. Namelijk: dat plugins niet tonen dat er een update is zodra de plugin is gestopt met ondersteuning voor de WordPress 4.9-branch.

Normaliter wordt er in het WordPress dashboard, waar je de website beheert, namelijk een melding gedaan dat er een update beschikbaar is voor een plugin en bij de plugin zelf zie je dat ook.

wordpress-udpates-plugins

(afb. meldingen update plugins in WordPress)

Veel mensen zijn hier laks in overigens. Maar in elk geval wordt je gewaarschuwd. Zodra echter ontwikkelaars van WordPress plugins overgaan naar het ondersteunen van alleen nog maar WordPress 5+ wordt er dus géén melding meer gedaan van updates. Immers: die zijn er ook niet (meer) voor de 4.9.x en oudere versies? Je hebt daardoor effectief een “abandoned” (een “verstoten” of “weeskind”) plugin in je WordPress website.

Een bekend voorbeeld hiervan is het ontzettend populaire ContactForm7, een plugin waarmee je contactformulieren op je website kunt toevoegen. Deze ondersteund alleen nog WordPress 5.x-versies.

Ik dacht in eerste instantie dat de constatering die ik deed bij het testen het een tekortkoming in ClassicPress was. Dit bleek niet het geval te zijn!

Voor de meeste ClassicPress-gebruikers is het niet zo’n probleem want ze gebruiken veelal alternatieve plugins of plugins speciaal voor ClassicPress. Maar voor gebruikers van verouderde WordPress installaties, en die zijn er heel veel, is het een enorm probleem zonder dat ze het weten en er wordt ook helemaal niets aan gedaan door de ontwikkelaars van de plugins en WordPress zelf.

Niljoenen kwetsbare WordPress websites

Op het forum van ClassicPress deed ik hier daarom een melding over, met als gevolg dat er een interessante discussie ontstond hierover want eerder was het ook gezien als potentieel probleem ‘voor de toekomst’ en nog niets aan gedaan. Eén van de deelnemers heeft het vervolgens ook gemeld op de WordPress Slack. De respons er op was nogal lauw.”I see no reason to backport it” geeft overduidelijk aan dat men het gevaar van dit probleem totaal niet ziet en ernstig onderschat.

wordpress security issue plugins

(afbeelding wp slack)

Binnen de ClassicPress community is het meteen opgepakt en is sinds ClassicPress versie 1.3 een plugin, gemaakt door een ClassicPress gebruiker, opgenomen in de core installatie. Deze plugin waarschuwt wanneer gebruik wordt gemaakt van verouderde, niet meer ondersteunde, plugins.

Oudere versies van WordPress worden nog steeds actief aangeboden (via WordPress) en WordPress wordt gebruikt op meer dan 42% van alle websites wereldwijd. In totaal, volgens Google, 455 miljoen websites gebruiken WordPress. Daarvan is meer dan 10% een versie <5.x (bron).

Dat betekent dat er zo’n 45 miljoen websites op oude, 4.x of nog oudere, versies van WordPress draaien. Deze websites ontvangen géén updates meer van plugins die zijn overgegaan naar WordPress 5.x en dit vormt daarmee een ernstig beveiligingsprobleem. Een probleem dat “by design” voorkomt in WordPress. Zoals één van de mensen op de WordPress slack zegt: “none of the current WordPress versions expect that, they only expect to recieve updates compatible with that particular WP version”.

Een oplossing zou kunnen zijn dat de WordPress ontwikkelaars een notificatie zouden geven als “deze plugin is verouderd en wordt niet meer bijgewerkt”. Maar helaas krijg je de handjes niet op elkaar voor zo’n kleine fix. Die echter wel héél belangrijk zou kunnen zijn.

Het is niet de vraag óf maar wannéér er een kwetsbaarheid wordt ontdekt in een dergelijke verouderde plugin en daar opeens (grootschalig) misbruik van gemaakt wordt. Zoals bijvoorbeeld de bekende kwetsbaarheden in ContactForm 7. De makers van ContactForm7 hebben direct een update gemaakt. Maar,.. níet voor de oudere versies die nog volop in omloop zijn. En dat is precies de kern van het probleem!

Hoe los je het probleem met WordPress op?

Uiteraard is het bekend dat je een website moet onderhouden en regelmatig van updates moet voorzien. En als je zelf geen tijd, kennis of kunde hiervan of -voor hebt dan kun je het uitbesteden natuurlijk. Maar anderzijds is er soms geen andere mogelijkheid dan oudere versies van WordPress te gebruiken wegens bijvoorbeeld maatwerk-oplossingen die nog niet beschikbaar zijn voor een nieuwe WordPress versie.

Daarnaast wordt er voor WordPress 4.8.x en 4.9.x nog steeds onderhoud gedaan door Automattic, de makers van WordPress, en updates en patches voor uitgebracht. Als een software product nog steeds ondersteund wordt is het, mijns inziens, dan ook van het grootste belang dat Automattic er voor zorgt dat de gebruikers geattendeerd worden op potentiële security problemen!

Vooralsnog ligt de bal bij u. Controleer regelmatig of u nog wel de laatste WordPress versie gebruikt, of de plugins up to date zijn (en vertrouw daarbij bij WordPress-versies kleiner dan versie 5 niet op de meldingen in het dashboard) en zorg dat ze bijgewerkt zijn en blijven.

Natuurlijk is de beste oplossing: zorg dat uw WordPress-versie up-to-date is en blijft.