WordPress heeft een kritiek beveiligingslek gedicht dat aanvallers zonder inloggegevens code laat uitvoeren op een standaardinstallatie. De aanval, wp2shell genoemd in navolging van cybergevaren als Log4Shell en React2Shell, combineert twee kwetsbaarheden. Het werkt ook op sites zonder plug-ins. Er wordt al actief misbruik van gemaakt, maar lang niet elke site is kwetsbaar.
Anders dan bij de meeste WordPress-kwetsbaarheden zit dit lek in de core engine. Daardoor zijn ook kale sites zonder plug-ins of speciale configuratie kwetsbaar. Searchlight Cyber ontdekte het probleem en publiceerde een checker op wp2shell.com. WordPress draait naar schatting op 43 procent van alle websites, wat de reikwijdte enorm maakt. Het voordeel is dat lang niet alle sites werkelijk kwetsbaar zijn dankzij WAF-regels of security-plugins.
De aanval maakt gebruik van twee kwetsbaarheden: CVE-2026-60137 en CVE-2026-63030. De eerste is een SQL-injectie in WP_Query. De tweede zit in de REST-API. Anonieme aanvallers combineren die twee om de authenticatie te omzeilen en uiteindelijk code uit te voeren. Volgens verschillende securitybedrijven wordt het lek actief uitgebuit.
Hoe de keten werkt
Het aanvalspad draait om het batch-endpoint van de REST-API, bereikbaar op zowel /wp-json/batch/v1 als /?rest_route=/batch/v1. Dat endpoint bundelt meerdere REST-verzoeken in één request. Bij het afhandelen raken interne lijsten van verzoeken en handlers uit sync zodra één verzoek vroegtijdig faalt. Vanaf dat punt wordt elk volgend verzoek beoordeeld tegen de permissiecheck van een ander verzoek in de batch.
Het gevolg is dat een aanvaller die de volgorde van de sub-verzoeken bepaalt, een verzoek met weinig rechten door een kritieke controle kan laten glippen. Dergelijke verzoeken zijn alleen voor een geprivilegieerde handler bedoeld. Zo bereikt aanvaller-gestuurde input de SQL-injectie, waarmee een nieuw admin-account en een webshell zijn aan te maken.
Welke versies zijn kwetsbaar
De volledige RCE-keten treft WordPress 6.9.0 tot en met 6.9.4 en 7.0.0 tot en met 7.0.1. De versies 6.8.0 tot en met 6.8.5 bevatten wel de onderliggende SQL-injectie, maar niet de kwetsbaarheid in de REST-API. Versies van vóór 6.8 zijn niet geraakt.
WordPress heeft de lekken gepatcht in 6.9.5 en 7.0.2. De SQL-injectie in de 6.8-branch is gedicht in 6.8.6. Door de ernst werkt WordPress getroffen sites automatisch bij, maar sites met uitgeschakelde automatische updates moeten handmatig aan de slag. Een werkende proof-of-concept staat sinds 18 juli publiek op GitHub.
Wie niet direct kan updaten, wordt geadviseerd het batch-endpoint via een WAF of webserver af te schermen voor anonieme verzoeken. Blokkeer daarbij beide adressen; slechts één vorm dichttimmeren laat de site alsnog bereikbaar.
wp2shell is ongerelateerd aan maar in werking vergelijkbaar met eerdere prominente cybergevaren. Vorig jaar verscheen React2Shell, dat binnen enkele uren werd uitgebuit, en in 2021 het beruchte Log4Shell. Ook bij die zaken bleek het vinden van kwetsbare installaties de grootste uitdaging. Securitybedrijven adviseren om alle WordPress-instances te inventariseren, inclusief vergeten staging- en campagnesites.