Nieuwe wp2shell WordPress-kernfout zorgt ervoor dat niet-geverifieerde aanvallers code kunnen uitvoeren

Een anoniem HTTP-verzoek kan code uitvoeren op een WordPress-site. De bug zit in de kern, dus een kale installatie zonder plug-ins kan worden misbruikt.

Elke 6.9- en 7.0-site was binnen bereik tot vrijdag, toen WordPress 6.9.5 en 7.0.2 uitbracht en zogenaamde gedwongen updates mogelijk maakte via zijn automatische updatesysteem.

Adam Kues van Assetnote, de aanvalsbeheerafdeling van Searchlight Cyber, ontdekte de fout en rapporteerde deze via het HackerOne-programma van WordPress. Het artikel, gepubliceerd onder de naam wp2shellzegt dat de aanval “geen voorafgaande voorwaarden heeft en kan worden uitgebuit door een anonieme gebruiker.”

Het bedrijf houdt zich voorlopig bezig met de technische details en heeft in plaats daarvan een checker op wp2shell.com geplaatst, zodat eigenaren hun eigen exemplaar kunnen testen.

WordPress heeft op 17 juli 2026 6.9.5 en 7.0.2 uitgebracht, waarmee een pre-auth RCE in de kern wordt afgesloten die een anoniem verzoek kan activeren tegen een standaardinstallatie zonder plug-ins. Er zijn twee bereiken getroffen:

  • 6.9.0 tot en met 6.9.4, opgelost in 6.9.5
  • 7.0.0 tot en met 7.0.1, opgelost in 7.0.2

WordPress heeft niet gezegd of de gedwongen push sites bereikt die automatische updates hebben uitgeschakeld. Controleer wat u daadwerkelijk gebruikt, in plaats van aan te nemen dat het is geland.

7.1 beta2 heeft dezelfde oplossing. Voor sites die nog steeds op 6.8 staan, wacht ook een update, maar 6.8.6 is voor de tweede SQL-injectiebug in dezelfde ronde, gerapporteerd door een ander team.

Searchlight’s bericht schat dat meer dan 500 miljoen websites WordPress gebruiken. Dat cijfer is de totale installatiebasis, niet de kwetsbare populatie: de gebrekkige code bestaat pas vanaf 6.9 en 6.9 werd op 2 december 2025 verzonden. Dus elke getroffen site heeft een release die minder dan acht maanden oud is, en geen van beide adviseurs zegt hoeveel sites dat omvat.

WordPress is openhartiger over de bugklasse dan de onderzoeker. In de releasepost wordt de bevinding van Kues beschreven als “een REST API-batch-routeverwarring en SQL-injectieprobleem dat leidt tot uitvoering van externe code.” De release behandelt één kritieke en één ernstige fout, en WordPress zegt niet welke welke is.

De versiepagina vermeldt de drie bestanden die in 7.0.2 zijn aangeraakt en omvat beide reparaties: /wp-includes/rest-api/class-wp-rest-server.php, /wp-includes/class-wp-query.php en /wp-includes/rest-api.php. Het batcheindpunt is niet nieuw. WordPress heeft het sinds 5.6 in november 2020 verzonden en sindsdien het verzoekformaat publiekelijk gedocumenteerd. Niets dat tot nu toe is gepubliceerd, legt uit wat er in 6.9 is veranderd om het te openen.

Geen van beide adviesdiensten heeft een CVE-ID of een CVSS-score, en op 18 juli was er nog geen CVE-record verschenen. CVE-gecodeerde scanners en inventarissen zullen dit niet markeren, en CISA heeft een CVE nodig voordat het iets aan de KEV-catalogus kan toevoegen. Volg het in plaats daarvan op versienummer.

Als u vandaag niet kunt updaten

Elke beperking die Searchlight biedt, komt erop neer dat anonieme bellers buiten het batch-eindpunt blijven. Drie opties, allemaal noodoplossingen totdat je updatet, en allemaal in staat legitieme integraties te verbreken:

  • Blokkeer bij een WAF zowel /wp-json/batch/v1 als rest_route=/batch/v1. Het bedrijf maakt duidelijk dat beide moeten verdwijnen, omdat een regel die alleen het pad /wp-json bestrijkt de query-string-route open laat.
  • Schakel de WP REST API uit, waardoor niet-geverifieerde REST-toegangsgroothandel wordt beëindigd.
  • Een korte drop-in plug-in die anonieme /batch/v1-verzoeken publiceert en afwijst op rest_pre_dispatch.

Sinds 18 juli is er geen melding gemaakt van een poging tot exploitatie. Omdat er geen CVE is om te taggen en er geen openbare handtekening is die daarbij past, is er nog niemand echt op zoek.

Massale exploitatie van WordPress is nu een industrie. Voordat de server in juni lekte, zorgde één fout in de caching-plug-in ervoor dat de bemanning van WP-SHELLSTORM op meer dan 17.000 sites terechtkwam. Die bug was al openbaar, al gepatcht en werkte alleen bij een niet-standaardinstelling.

Toen Drupal in mei een anonieme SQL-injectie in zijn eigen kern patchte, veranderde Searchlight die publieke oplossing in een demontage op dezelfde dag met twee werkende proofs of concept. Dat was de bug van iemand anders en de patch van iemand anders, en niets verplicht het bedrijf hetzelfde te doen met zijn eigen bedrijf. Maar het kostte een dag, en de mensen die die klok hebben gezet, zijn degenen die er nu op wedden dat stilte tijd voor de verdedigers koopt.

De kern van WordPress is open source en 7.0.1 en 7.0.2 bevinden zich beide in het openbare release-archief, dus de vergelijking is beschikbaar voor iedereen die dat wil. Dat is de voorwaarde voor elk open-sourceproject: je kunt de oplossing niet verzenden zonder de kaart naar de bug te sturen, en de enige hefboom die overblijft is hoe snel de patch sites bereikt voordat iemand hem leest.

WordPress trok vrijdag aan die hendel. Verkeer tegen batch/v1 zal laten zien wanneer de aanvallers arriveren, en de eigen versiestatistieken van WordPress zullen laten zien of de patch er als eerste was. Slechts één van die cijfers haalt ooit het nieuws.

Thijs Van der Does