Door een nieuwe fout in de WordPress-kern kon een anonieme bezoeker een reactie achterlaten die een verborgen script op de pagina plaatste. Als een ingelogde beheerder die pagina later zou openen, zou het script code op de server van de site kunnen uitvoeren.
WordPress heeft de fout opgelost, bijgehouden als CVE-2026-93485 en genaamd “Commentaar2Shell,” op 17 september in versie 7.1.1 en vertelde site-eigenaren dat ze meteen moesten updaten. Er zijn geen tekenen dat het bij aanvallen is gebruikt, en het staat niet op de lijst van actief misbruikte softwarefouten van de Amerikaanse overheid.
Patchstack, het bedrijf dat deze identificatie heeft toegewezen, beoordeelde de fout met een 7,1 op 10 op de CVSS-schaal.
WordPress controleert een opmerking op gevaarlijke HTML wanneer deze wordt opgeslagen en formatteert deze vervolgens opnieuw wanneer de pagina wordt weergegeven, en de fout zat in de opening tussen deze twee stappen.
Rafie Muhammad, de beveiligingsonderzoeker die de bug rapporteerde, legde op 21 september de volledige keten uit in een artikel. De truc was een regeleinde in het attribuut van een toegestane HTML-tag in de opmerking te plaatsen.
Toen WordPress de opmerking opnieuw formatteerde voor weergave, brak een van de stappen die tag uit elkaar en verplaatste de tekst van de aanvaller naar een plek waar de browser deze behandelde als een live gebeurtenishandler. De handler werd automatisch uitgevoerd terwijl de pagina werd geladen, zonder dat een klik nodig was.
Het script draaide in de browser van degene die de pagina opende, ongeacht of deze wel of niet was ingelogd, en het werkte met het toegangsniveau van die persoon tot de site.
Voor het uitvoeren van code op de server was nog een voorwaarde nodig. Een ingelogde beheerder moest de pagina met de opmerking openen.
Het script kan dan de eigen sessie van de beheerder gebruiken om een plug-in te uploaden die een webshell bevat, een klein bestand dat alle opdrachten uitvoert die een aanvaller verzendt. Het op deze manier uploaden van een plug-in is een bekende route vanuit de browser van een beheerder naar controle over de server.

De aanval was ook afhankelijk van de manier waarop een site zijn opmerkingen weergaf. Het werkte op sites die een blokthema gebruiken, wat sinds Twenty Twenty-Two de standaard is in WordPress. Sommige klassieke thema’s werden ook beïnvloed, waarbij opmerkingen via dezelfde stap worden opgemaakt; het artikel noemt Twenty Twenty-One als één.
Om dit te laten gebeuren, moest de opmerking eerst op de pagina verschijnen. WordPress beschreef de fout als alleen misbruikbaar ‘onder voorbehoud van goedkeuring van commentaar’.

Standaard wordt een opmerking van een nieuwe auteur vastgehouden totdat iemand deze goedkeurt, zodat deze niet op zichzelf verschijnt. Maar de onderzoeker beschreef manieren om die controle te omzeilen, waardoor een opmerking zonder goedkeuring op de pagina terechtkwam. Zoals Patchstack het uitdrukte: “moderatie is geen veiligheidscontrole.”
Wat te doen
Update naar WordPress 7.1.1, of naar de nieuwste release op jouw branch als deze nog steeds beveiligingsoplossingen krijgt. De getroffen versies lopen van 4.7 tot en met 7.1, en dit zijn de vaste releases voor de huidige branches:
Een site die niet meteen kan updaten, kan de toegang afsluiten door reacties op berichten te sluiten of reacties op de hele site uit te schakelen, en een webapplicatie-firewall of een beveiligingsplug-in kan de gemaakte reactie blokkeren.
Noch WordPress, noch de onderzoeker publiceerden een afzonderlijke oplossing. Muhammad raadde aan om de WordPress-kern eenvoudigweg bij te werken, waarbij hij opmerkte dat 7.1.1 een beveiligingsrelease is. Updaten verhelpt de fout, maar maakt geen wijzigingen ongedaan die een aanvaller al heeft aangebracht. Een site die reden heeft om te denken dat deze het doelwit is, moet ook zoeken naar plug-ins of bestanden die hij niet herkent.
WordPress 7.1.1 loste in totaal 11 beveiligingsproblemen op. Deze commentaarfout was de enige waartoe een aanvaller zonder account toegang had, en voor de meeste andere fouten was een ingelogde gebruiker met een bepaald toegangsniveau vereist.
In dezelfde release werd een tweede fout opgelost, Click2Shell genaamd, waarbij een vervaardigde link WordPress een thema kon laten installeren en, samen met een tweede zwakte in dat thema, code op de server kon uitvoeren. Ook hiervoor was een ingelogde beheerder nodig om de link te openen.
De WordPress-kern heeft dit jaar nog andere ernstige tekortkomingen gekend. In juli zorgde een bug met de naam wp2shell ervoor dat aanvallers code konden uitvoeren zonder in te loggen, en de Amerikaanse autoriteiten noemden het later als gebruikt bij echte aanvallen.
In augustus hebben onderzoekers een scriptfout op de inlogpagina omgezet in code-uitvoering via een beheerder. Dit zijn afzonderlijke tekortkomingen van de commentaarbug.