Cybersecurity-onderzoekers hebben licht geworpen op een WordPress-compromis waarbij bedreigingsactoren meerdere persistentiemechanismen hebben ingezet om ervoor te zorgen dat de uiteindelijke lading bleef terugkeren zonder de site opnieuw te hoeven infecteren.
De achterdeur heeft de codenaam gekregen SC na de “SC_”-markers die aanwezig zijn in de geïnjecteerde inhoud. Sucuri heeft de malware beschreven als een ‘zelfherstellende mesh’ die wordt beheerd door blockchain.
“De lading bevindt zich op minstens acht plaatsen tegelijk, verspreid over bestanden, de database en het gedeelde geheugen, en elk van die plaatsen kan alle andere opnieuw opbouwen”, aldus veiligheidsonderzoeker Gabriel Barbosa.
“Verwijder de plug-in en een drop-in herschrijft hem. Verwijder de drop-in en het thema herschrijft hem. Maak elk bestand op de schijf schoon en de volgende pagina die wordt geladen, herstelt de hele set uit de database of uit een gedeeld geheugensegment. Het resultaat is een circulair systeem zonder enig punt dat je kunt verwijderen om het te stoppen.”
Volgens Sucuri heeft de malware geen leesbare functienamen, maar maakt hij gebruik van een decoder om de code te ontcijferen met behulp van een vervangingscode. Een samenvatting van de acht componenten is als volgt:
- .user.ini, waarmee “auto_prepend_file” wordt ingesteld om een lader uit te voeren vóór elk PHP-verzoek in die directorystructuur.
- wp-content/c1b12371.php, de lader die een verborgen bestand met een puntvoorvoegsel bevat als het op dezelfde locatie bestaat.
- wp-content/.c1b12371.php, het verborgen bestand met een puntvoorvoegsel dat fungeert als de eerste fase-lader om een nep-plug-in te lokaliseren en deze vanuit drie bronnen opnieuw op te bouwen in mu-plug-ins: een bestaande kopie in de map met plug-ins, een gecodeerde stub in de cachemap en een ZIP-herstelbundel met een willekeurige hexadecimale naam.
- wp-content/db.php, dat tijdens de bootstrap wordt geladen en de volledige backdoor-payload in gecomprimeerd, Base64-gecodeerd formaat draagt. Het decodeert en implementeert de plug-in opnieuw wanneer deze ontbreekt of te klein is.
- wp-content/advanced-cache.php, dat door WordPress vóór gewone plug-ins wordt geladen wanneer caching is ingeschakeld, en de plug-in opnieuw opbouwt op basis van vijf onafhankelijke bronnen: een bestaande mu-plug-in, een bestaande plug-inkopie, een System V-segment met gedeeld geheugen met PHP, een ZIP-bundel en de database. Vervolgens wordt plugins_loaded gehaakt en opgenomen.
- wp-content/themes/khorshidi/functions.php, een thema-residente tweeling van db.php die dezelfde achterdeur heeft en de plug-in herschrijft elke keer dat deze niet aanwezig is.
- wp-content/mu-plugins/hyper-engine-kit.php, de daadwerkelijke malware die is geïnstalleerd als zowel een must-use plug-in als een normale plug-in.
- wp-content/plugins/hyper-engine-kit/hyper-engine-kit.php, een duplicaat van dezelfde achterdeur-payload voor redundantie.
Ongeacht de methode die wordt gebruikt om de achterdeur te lanceren, voert deze een aantal acties uit, waaronder zichzelf verbergen voor het scherm met beheerdersplug-ins of bij updatecontroles, communiceren met een command-and-control (C2)-server met behulp van de Ethereum-blockchain, vingerafdrukken nemen van de geïnfecteerde site en extra payloads ophalen, een verborgen beheerdersaccount aanmaken en de herinfectielus uitvoeren.
Dankzij de mogelijkheden van de achterdeur kan de operator de controle over de WordPress-site overnemen, willekeurig JavaScript ophalen om sitebezoekers te injecteren en te targeten met skimmers (of andere malware), PHP-code uitvoeren en specifieke plug-ins deactiveren of verwijderen.
“Op servers die het gedeelde System V-geheugen ondersteunen, wordt de payload geschreven in een segment dat wordt geïdentificeerd door een vaste numerieke sleutel”, aldus Sucuri. “Dat segment leeft in het RAM-geheugen, dus het overleeft zowel het verwijderen van bestanden als het opschonen van de database, en op gedeelde hosting kan het zelfs eigendom zijn van een ander account.”
“De infectie registreert cron-hooks, inclusief gerandomiseerde namen naast een bekende ophaalhaak. Systeemcron voert het WordPress-cronbestand uit, niet het bezoekersverkeer, en activeert vervolgens de herimplementatie volgens schema.”
Het is momenteel niet bekend hoe de malware op de WordPress-site wordt afgeleverd. Typische initiële toegangsvectoren omvatten echter bekende beveiligingsfouten in WordPress, plug-ins en thema’s; zwakke inloggegevens; aanvallen op de softwaretoeleveringsketen gericht op populaire plug-ins; en de exploitatie van onveilige media- of formulieruploadfuncties om PHP-webshells naar servermappen te pushen.
“SC herinnert ons eraan dat een moderne WordPress-infectie een systeem kan zijn in plaats van een bestand”, zegt Sucuri. “Deze toolkit verspreidt identieke kopieën van één achterdeur over drop-ins, het thema, een nep-plug-in op twee locaties, de database en gedeeld geheugen, verbergt het commandokanaal binnen de legitieme blockchain-infrastructuur en herschrijft zichzelf vanaf elke overgebleven kopie op het eerstvolgende verzoek.”
WpForo Forum WordPress-plug-infout misbruikt
De onthulling komt omdat een zeer ernstige, niet-geverifieerde SQL-injectiefout in de wpForo Forum WordPress-plug-in (CVE-2026-1581, CVSS-score: 7,5) actief wordt uitgebuit. Het probleem treft alle versies van de plug-in tot en met 2.4.14.
Volgens telemetriegegevens van Previdian zijn sinds 3 juli 2026 minder dan twintig exploitatiepogingen waargenomen die zich op het beveiligingslek richtten. De activiteit is afkomstig van vijf unieke IP-adressen van aanvallers in Bulgarije, Zwitserland, Frankrijk, de VS en Jemen.