Een recent ontdekte kwetsbaarheid in WordPress, genaamd Click2Shell, stelt aanvallers in staat om op afstand PHP-code uit te voeren op de server. Deze cross-site request forgery (CSRF) kwetsbaarheid treft het Core-component van WordPress en werd vorige week verholpen met de release van WordPress versie 7.1.1.

De kwetsbaarheid, ontdekt door securityonderzoeker Paulos Yibelo van het penetratietestplatform pwn.ai, maakt gebruik van een foutieve verwerking van een waarde uit een WordPress theme-preview URL. Deze waarde wordt eerst geïnterpreteerd door de WordPress.org Themes API en vervolgens opnieuw door een gebrekkige JavaScript-methode in de browser van de beheerder. Hierdoor kan een aanvaller zonder authenticatie een thema uit de officiële WordPress.org catalogus installeren en een willekeurig PHP-bestand uitvoeren, mits een ingelogde beheerder een speciaal geconstrueerde link bezoekt.

Zelfs inactieve thema’s kunnen tijdens een Customizer preview PHP-code uitvoeren, wat de aanvalsketen compleet maakt. De exploit begint met een link die het installeren van een kwetsbaar thema forceert. Zodra de Customizer preview het thema laadt, wordt de kwaadaardige PHP-code op de server uitgevoerd. Dit kan leiden tot het aanpassen of verwijderen van bestanden, toegang tot gebruikersgegevens en het wp-config.php bestand met database- en authenticatiegegevens. Ook kunnen aanvallers hiermee rogue admin-accounts aanmaken of schadelijke scripts injecteren.

Hoewel de demonstratie van Click2Shell met een specifiek thema plaatsvond, kan de onderliggende kwetsbaarheid in WordPress Core 7.1.0 en eerdere versies worden misbruikt om elk kwetsbaar thema uit de catalogus te installeren. Een WordPress-account, installatie nonce of eigen beheerdersrechten zijn niet vereist. Wel moet een ingelogde beheerder de malafide link openen om de aanval te laten slagen. Volgens beveiligingsbedrijf Patchstack kunnen alleen beheerders deze keten activeren; auteurs en redacteuren beschikken niet over de benodigde rechten om thema’s te installeren. Aanvallen kunnen plaatsvinden via gerichte phishing of bestaande cross-site scripting (XSS) kwetsbaarheden die de browser van de beheerder dwingen het verzoek te versturen.

De fix in WordPress 7.1.1 beperkt de kwetsbaarheid door de thema-slug te ontsnappen voordat deze in de jQuery-selector wordt gebruikt en door de selector te beperken tot daadwerkelijke themakaarten. Voor beheerders die niet direct kunnen updaten, biedt het inschakelen van ‘DISALLOW_FILE_MODS’ bescherming tegen het geforceerd installeren van thema’s of plugins. Desondanks wordt het sterk aanbevolen om zo snel mogelijk te upgraden, zeker nu de technische details en een proof-of-concept exploit publiekelijk beschikbaar zijn.