Je wilt een vertrouwde plugin op een nieuwe website installeren, maar de zoekfunctie in het dashboard vindt hem niet meer. Op WordPress.org staat in plaats van de downloadknop alleen een korte melding: „This plugin has been closed”. Op je andere websites draait dezelfde plugin intussen gewoon door. Wat is er aan de hand? De plugin is uit de officiële plugindirectory verwijderd. Dat kan onschuldig zijn. Maar het kan ook betekenen dat er op je website op dit moment een beveiligingslek openstaat dat niemand meer dicht. Hier lees je wat er achter zo'n sluiting zit, hoe je het risico inschat en welke stappen nu verstandig zijn.
Wat betekent het als een plugin van WordPress.org is verwijderd?
Strikt genomen wordt een plugin op WordPress.org niet verwijderd, maar gesloten. Op de pluginpagina staat dan een zin als „This plugin has been closed as of June 24, 2024 and is not available for download.” Voor jou als websitebeheerder heeft dat heel concrete gevolgen:
- Je kunt de plugin niet meer downloaden op WordPress.org en ook niet via het dashboard installeren.
- Zolang hij gesloten is, levert WordPress.org geen nieuwe versies. Er komen dus geen updates meer, ook geen beveiligingsupdates.
- Waar de plugin al is geïnstalleerd, blijft alles zoals het is. WordPress deactiveert niets en verwijdert niets, de plugin draait gewoon door.
- De broncode blijft openbaar in te zien in de SVN Repository van WordPress.org.
Vooral het derde punt is verraderlijk. Omdat alles op je website er normaal uitziet, krijg je van de sluiting meestal helemaal niets mee. WordPress laat er in het dashboard ook geen melding over zien. Er ligt sinds 2014 een ticket in WordPress Trac dat precies dat moet veranderen. Het is tussendoor afgewezen en in 2023 opnieuw geopend. Hoe je gebruikers waarschuwt zonder onnodig paniek te zaaien, is nu eenmaal geen makkelijke vraag.
Verwar een verwijderde plugin bovendien niet met een verouderde. Een plugin die al jaren geen update heeft gekregen, staat vaak nog gewoon in de directory. WordPress.org meldt dan alleen dat hij niet is getest met de laatste drie hoofdversies van WordPress. Een gesloten plugin is daarentegen helemaal uit de roulatie genomen.
Waarom worden plugins van WordPress.org verwijderd? De vijf officiële redenen
Het Plugins Team van WordPress.org waakt over de plugindirectory. Het team sluit plugins niet zomaar, maar om een van de vijf redenen die in de officiële documentatie voor ontwikkelaars zijn vastgelegd. Precies die redenen verschijnen later ook op de pluginpagina:
- Security Issue (beveiligingsprobleem): In de plugin zit een bevestigd beveiligingslek. Op een paar uitzonderingen na sluit het team de plugin dan meteen. Een termijn in de trant van „Los dit binnen zeven dagen op, anders lig je eruit” bestaat volgens het handboek van het team niet.
- Guideline Violation (overtreding van de richtlijnen): De plugin houdt zich niet aan de regels van de directory. Typische gevallen zijn tracking zonder toestemming, code die met opzet onleesbaar is gemaakt, of links naar de ontwikkelaar die ongevraagd op je website opduiken.
- Licensing/Trademark Violation (licentie of merkenrecht): De plugin bevat code die niet verenigbaar is met de GPL, of de naam maakt gebruik van het merk van iemand anders.
- Author Request (verzoek van de auteur): De ontwikkelaar heeft de plugin zelf gesloten. Soms heeft hij er gewoon geen tijd meer voor, soms bestaat de plugin alleen nog als betaalde versie op zijn eigen website.
- Merged Into Core (opgegaan in WordPress): De functie zit inmiddels rechtstreeks in WordPress. Dat geldt bijna alleen voor zogeheten Feature Plugins, waarin nieuwe functies worden uitgeprobeerd voordat ze in WordPress terechtkomen.
Veel beveiligingsproblemen ontdekt het Plugins Team overigens niet zelf. Vaak melden beveiligingsonderzoekers een lek bij het team, bijvoorbeeld als de ontwikkelaar niet op hun meldingen reageert.
Waarom wordt de reden van de sluiting pas na 60 dagen getoond?
Direct na de sluiting zie je op de pluginpagina alleen de datum. De reden vult WordPress.org pas 60 dagen later aan, en ook dan alleen als globale categorie uit de lijst hierboven. Wat er precies is gebeurd, weten alleen de ontwikkelaars met schrijfrechten op de plugin en het beveiligingsteam. Details worden alleen bij hoge uitzondering openbaar gemaakt.
Dat lijkt in eerste instantie weinig transparant, maar het is goed te begrijpen. Zou er al op de dag van de sluiting „Security Issue” op de pagina staan, dan zouden aanvallers meteen weten waar ze moeten zoeken, terwijl duizenden websites de plugin nog onbeschermd gebruiken. De termijn geeft de ontwikkelaar de kans om het lek te dichten voordat het nieuws de ronde doet.
Lees ook de zin onder de melding. „This closure is temporary, pending a full review” betekent dat de sluiting voorlopig is en dat de plugin op dit moment grondiger wordt bekeken. „This closure is permanent” wil zeggen dat de sluiting definitief bedoeld is. Bij KingComposer, ooit een veelgebruikte page builder, staat bijvoorbeeld sinds februari 2022 „Reason: Security Issue”.
Is een plugin die van WordPress.org is verwijderd, gevaarlijk?
Het eerlijke antwoord: dat hangt ervan af. Een sluiting alleen bewijst nog geen beveiligingslek. Heeft de ontwikkelaar zijn plugin gewoon opgegeven, dan draait die misschien nog jarenlang zonder problemen.
Toch moet je elke verwijderde plugin serieus nemen als waarschuwingssignaal:
- Je kent de reden in het begin niet. In de eerste 60 dagen kan achter de sluiting een kritiek lek zitten of een onschuldige vormfout. Van buitenaf zie je het verschil niet.
- Beveiligingsupdates blijven uit. Wordt er een lek bekend, dan blijft het open. Juist daarom zijn gesloten plugins interessant voor aanvallers: ze weten dat veel websites ze nog lang gebruiken.
- De compatibiliteit brokkelt af. Met elke nieuwe versie van WordPress en PHP stijgt het risico dat de plugin fouten veroorzaakt of in het ergste geval je website platlegt.
In juni 2024 bleek hoe snel een sluiting een echt probleem kan worden. Aanvallers hadden zich met wachtwoorden uit oude datalekken toegang verschaft tot ontwikkelaarsaccounts op WordPress.org en in meerdere plugins een achterdeur ingebouwd, zoals Wordfence destijds meldde. Getroffen waren onder meer Social Warfare en Blaze Widget. Social Warfare kreeg snel een opgeschoonde versie. Blaze Widget is daarentegen sinds 24 juni 2024 definitief gesloten, reden: Security Issue. Wie de gemanipuleerde versie had geïnstalleerd, zag daar in het dashboard niets van.
Plugin van WordPress.org verwijderd: wat moet je nu doen?
Paniek is niet nodig. Maar schuif het ook niet op de lange baan. Zo ga je het best te werk:
- Lees de melding op de pluginpagina. Je vindt die pagina onder
wordpress.org/plugins/, gevolgd door de slug van de plugin. De slug is de naam van de map van de plugin inwp-content/plugins. Let op de datum, op de vermelding temporary of permanent en, als de 60 dagen voorbij zijn, op de reden. - Controleer of er een beveiligingslek bekend is. Zoek de plugin op in een van de grote databases met kwetsbaarheden, zoals Wordfence Intelligence, Patchstack of WPScan. Staat daar een lek voor je geïnstalleerde versie, dan is de zaak duidelijk: deactiveer de plugin meteen. Is je website ervan afhankelijk, dan heb je snel een tijdelijke oplossing nodig (daarover zo meer).
- Kijk of de ontwikkelaar ermee doorgaat. Sommige plugins verhuizen alleen, bijvoorbeeld naar GitHub of naar een eigen webshop van de ontwikkelaar, of ze zijn alleen nog tegen betaling te krijgen. Een blik op zijn website geeft meestal snel duidelijkheid. Updates komen dan alleen niet meer automatisch via WordPress.org binnen, maar via de weg die de ontwikkelaar kiest.
- Vraag je eerlijk af of je de plugin nog nodig hebt. Vooral op oudere websites staan vaak plugins die ooit voor één doel zijn geïnstalleerd en daarna zijn vergeten. Weet je niet meer waarvoor hij er staat, deactiveer hem dan in een testomgeving en kijk of er iets ontbreekt.
- Zoek een goed onderhouden alternatief. Belangrijk zijn de datum van de laatste update, het aantal actieve installaties, de laatst geteste versie van WordPress en de vraag of er in het supportforum eigenlijk wel iemand reageert. Een plugin met veel gebruikers en een actief team is meestal een veiligere keuze dan een nicheproduct waar één persoon in zijn vrije tijd aan werkt.
- Vervang de plugin zorgvuldig. Maak eerst een reservekopie, test de overstap in een testomgeving en neem instellingen en inhoud over. Denk daarbij ook aan shortcodes, want die staan na het verwijderen anders als kale tekst op je pagina's. Tot slot verwijder je de oude plugin volledig. Alleen deactiveren is niet genoeg: bij sommige lekken hebben aanvallers al genoeg aan bestanden die nog op de server staan en rechtstreeks kunnen worden aangeroepen.
En als je de plugin niet meteen kunt vervangen? Scherm hem dan in elk geval af. Een Web Application Firewall, bijvoorbeeld van Wordfence, Patchstack of je hostingprovider, kan bekende aanvallen op de plugin tegenhouden tot de overstap rond is. Bureaus met eigen ontwikkelaars hebben nog een andere mogelijkheid: plugins op WordPress.org vallen onder de GPL of een compatibele licentie. Je mag de code dus overnemen en zelf verder onderhouden. De beveiligingsupdates zijn dan wel helemaal jouw verantwoordelijkheid.
Meer over het bijhouden van je plugins lees je in onze gids Hoe houd je plugins in WordPress bijgewerkt en veilig.
Hoe kom je erachter of een geïnstalleerde plugin is gesloten?
Met de hand is dat omslachtig. Je zou voor elke plugin de bijbehorende pagina op WordPress.org moeten openen. Bij vijf plugins gaat dat nog, bij 30 plugins op meerdere websites van klanten eerder niet.
Sneller gaat het via de Plugin API van WordPress.org. Voor een gesloten plugin levert die in plaats van de gebruikelijke gegevens een foutmelding met de waarde closed:
curl -sg "https://api.wordpress.org/plugins/info/1.2/?action=plugin_information&request[slug]=SLUG"Vervang SLUG door de mapnaam van de plugin. Staat in het antwoord "closed":true, dan is de plugin gesloten. Daar staat ook de datum van de sluiting, en zodra de reden is gepubliceerd, vind je die daar ook. De optie -g zorgt ervoor dat curl de vierkante haken in het adres niet voor jokertekens aanziet.
Gebruik je Wordfence? Ook de scan daarvan vergelijkt je plugins met WordPress.org en meldt verwijderde plugins als kritiek probleem. Er wordt daarbij niets gewist, de beslissing blijft bij jou.
Schrik niet te snel: niet elke plugin die je niet op WordPress.org vindt, is verwijderd. Premiumplugins zoals WP Rocket of Gravity Forms hebben daar nooit gestaan. Die krijgen hun updates rechtstreeks van de aanbieder.
Hoe InspectWP verwijderde plugins op je website herkent
InspectWP neemt je deze controle uit handen. Het rapport herkent de plugins op je website aan de sporen die ze in de broncode achterlaten en vergelijkt ze stuk voor stuk met WordPress.org. Is een plugin gesloten, dan staat dat direct op zijn kaart en springt de controle op verwijderde plugins op rood. Geeft WordPress.org de plugin later weer vrij, dan verdwijnt de markering bij het volgende rapport. Plugins die al meer dan een jaar geen update hebben gekregen, markeert het rapport los daarvan als verouderd. Premiumplugins die nooit in de directory hebben gestaan, gelden niet als verwijderd.
In de abonnementen Premium en Agency zie je daarnaast de geïnstalleerde versies en de bekende beveiligingslekken van je plugins. Met de InspectWP WordPress Connector legt InspectWP bovendien alle geïnstalleerde plugins vast, ook plugins die in de frontend geen sporen achterlaten. In de PDF van het auditrapport voor je klanten verschijnt een verwijderde plugin als dringend punt met een duidelijke aanbeveling. Omdat een plugin die vandaag nog wordt onderhouden, volgende maand al gesloten kan zijn, zijn automatische rapporten de moeite waard: InspectWP controleert je projecten dan regelmatig en stuurt je desgewenst een melding. Een gratis rapport laat je binnen korte tijd zien of er op dit moment een verwijderde plugin op je website draait.