WP-SHELLSTORM: massattack mot WordPress och Joomla, färre intrång än siffrorna antyder
Säkerhetsforskare har under juni och juli 2026 kartlagt en storskalig operation som fått namnet WP-SHELLSTORM. Angriparna bakom den byggde listor med 1,4 miljoner WordPress- och Joomla-domäner som potentiella mål, planterade dolda webbskal (webshells, fjärrstyrda bakdörrar i form av skriptfiler) på tusentals sajter, och sålde sedan vidare åtkomsten till andra kriminella aktörer. Siffran 1,4 miljoner låter dramatisk, men när materialet rensats från dubbletter och verifierats landar det faktiska antalet drabbade sajter på omkring 25 000, långt färre än mållistorna antydde. Det som spelar roll för svenska webbplatsägare är varför din sajt kan bli intressant för angripare, även om den knappast är ett värdefullt mål i sig.
Så upptäcktes operationen
Säkerhetsföretaget SOCRadar hittade en oskyddad mapp på en amerikansk hyrd server den 11 juni 2026. Oberoende av SOCRadar upptäckte teamet Ctrl-Alt-Intel samma material via tjänsten Hunt.io och publicerade sina fynd redan den 22 juni. SOCRadar släppte sin fullständiga analys den 9 juli, vilket gett operationen dess namn.
Det som låg på servern var runt 800 MB fördelat på 434 filer, bland annat färdiga webbskal, kod för att utnyttja sårbarheter, skanningsresultat och operatörens egen kommandohistorik. Operatören hade kört en Python-webbserver för att exponera materialet i 22 dagar innan den togs bort, vilket gav forskarna insyn i hela arbetsprocessen, inte bara resultatet.
Två sårbarheter öppnade dörren
Verktygslådan på den exponerade servern stödde utnyttjande av 27 kända sårbarheter, men bara två av dem stod för merparten av intrången.
- WordPress: cache-tillägget Breeze, med omkring 400 000 aktiva installationer, innehöll sårbarheten CVE-2026-3844, åtgärdad i version 2.4.5. NVD (National Vulnerability Database) satte CVSS 3.1-poängen till 9,8. Hålet fungerar bara när en icke-standardinställning, "Host Files Locally - Gravatars", är påslagen, vilket begränsar exponeringen utan att göra den försumbar. Angriparna sköt mot över 45 000 mål och lyckades, enligt sin egen bokföring, plantera en bakdörr på fler än 17 000 av dem.
- Joomla: editorn JCE Editor hade sårbarheten CVE-2026-48907, åtgärdad i version 2.9.99.5. NVD sätter CVSS 3.1-poängen till 9,8, medan Joomlas säkerhetsgrupp med CVSS 4.0 landar på 10,0, det högsta värde skalan tillåter. Sårbarheten står upptagen på den amerikanska myndigheten CISA:s lista över aktivt utnyttjade sårbarheter (Known Exploited Vulnerabilities, KEV). Trots att angriparna riktade in sig på över 560 000 Joomla-mål lyckades de bara ta sig in på 77 sajter. Läs mer om att driva en Joomla-sajt.
Säkerhetsuppdateringen fanns långt innan någon upptäckte operationen
NVD publicerade CVE-2026-3844 (Breeze) den 23 april 2026, och felet var då redan åtgärdat i version 2.4.5. SOCRadar hittade angriparens exponerade server först den 11 juni. De drygt 17 000 WordPress-sajter som fick en bakdörr planterad hade alltså stått opatchade i nästan sju veckor efter att uppdateringen fanns att hämta. För Joomla var fönstret snävare, men mönstret detsamma. NVD publicerade CVE-2026-48907 den 5 juni, och CISA lade in den i KEV-katalogen redan den 16 juni, med tre dagars åtgärdsfrist för amerikanska federala myndigheter.
Jämför man träffsäkerheten syns en stor skillnad. Drygt 38 procent av WordPress-målen fick en bakdörr planterad, mot bara 0,014 procent på Joomla-sidan. Allvarlighetsgraden förklarar den inte, båda hålen ligger på 9,8 i CVSS 3.1. Vad som gör skillnaden går inte att läsa ut ur materialet, och det vore fel att gissa.
Webbskalet: down.php
Bakdörren som planterades på komprometterade sajter gick under filnamnet down.php och var kraftigt obfuskerad i fyra lager för att undvika upptäckt. Analysen visar att den härstammar från ett öppet kinesiskt webbskal känt som BestShell. När det väl kördes kunde angriparen hantera filer på servern, exekvera kommandon, öppna en reverse shell (en fjärrstyrd terminal med full kontroll), skanna det interna nätverket och kontrollera vilken säkerhetsmjukvara värden hade installerad.
En laddare vid namn SNOWLIGHT installerade fjärrstyrningsverktyget VShell (RAT, remote access tool), som tar sig namn likt Linux-kärnprocesser, till exempel [kworker/0:2], och därför inte sticker ut i en processlista för den som har skalåtkomst till sin server. Forskarna bedömer med medelhög till hög tillförlitlighet att operatörerna är kinesiska eller kinesisktalande, grundat på förenklad kinesiska i filerna, den kinesiska söktjänsten FOFA och valet av skadlig kod. Samtidigt betonar de att motivet bedöms vara ekonomiskt, inte statligt.
Från miljontals mål till tiotusentals faktiska offer
Den enskilt största av mållistorna innehöll 587 034 Joomla-mål. Men en mållista är inte samma sak som ett intrång. Det är en önskelista, ofta byggd på automatiserad skanning utan att någon sårbarhet faktiskt utnyttjats.
Ctrl-Alt-Intels genomgång, som filtrerade bort dubbletter och krävde faktisk verifiering, landade på cirka 25 195 komprometterade sajter. SOCRadar observerade i sin tur drygt 5 700 aktiva webbskal vid ett givet tillfälle. Det är fortfarande ett stort antal drabbade webbplatser, men en helt annan storleksordning än 1,4 miljoner. Skräckrubriker som stannar vid mållistans storlek ger en missvisande bild av hur många som faktiskt drabbats.
Din sajt är inte målet, den är råvaran
WP-SHELLSTORM bygger på vad säkerhetsbranschen kallar en access brokerage, ett åtkomstmäkleri. Modellen är enkel. En grupp bryter sig in i sajter i stor skala, planterar ett dolt webbskal, och paketerar åtkomsten för försäljning till andra aktörer, som i sin tur kan använda den för allt från spam och skräpmejl till ransomware eller vidare intrång.
Det är precis den logiken som gör frågan "vem skulle vilja hacka min lilla svenska sajt?" missriktad. Din sajt behöver inte vara värdefull i sig för att vara intressant. Den behöver bara vara nåbar. En liten klubbsajt, en enmansfirmas WordPress-blogg eller en förenings Joomla-portal är precis lika mycket råvara i det här systemet som en stor e-handelssajt, så länge den kör sårbar programvara. WordPress driver en mycket stor andel av alla svenska webbplatser, vilket i praktiken gör attackytan bred snarare än smal.
En dryg månad tidigare, i maj 2026, bröt samma operatör sig in i företags-Java-infrastruktur (Apache Nacos, XXL-Job, Spring Boot) via en fem år gammal sårbarhet som kringgår autentisering, CVE-2021-29441. På två dagar togs 613 konfigurationsfiler från 11 system hos nio organisationer, med inloggningsuppgifter för molntjänster, databaslösenord och nycklar till privata betalsystem. Både en industriell massskörd och ett kirurgiskt riktat intrång från samma aktör pekar mot en verksamhet, inte en slump.
Det intressanta för dig som driver WordPress är vad bytet bestod av. Det var konfigurationsfilerna. WordPress motsvarighet till en konfigurationsfil är wp-config.php, med databasanvändare, lösenord och säkerhetsnycklar. Har ett webbskal läst filer på servern räcker det inte med ett byte av adminlösenordet vid sanering, även databaslösenordet och nycklarna i wp-config.php måste bytas, samma slutsats som i genomgången av kärnsårbarheten wp2shell i WordPress.
Samma mekanik går igen bredare
Grundorsaken bakom WP-SHELLSTORM är dessutom ovanligt banal, ett opatchat tredjepartstillägg i kombination med en olämplig standardinställning. Samma underliggande mönster, att en filuppladdningsfunktion i förlängningen tillåter körbar PHP-kod i en mapp där den aldrig borde få köras, går igen i de fyra Joomla-tilläggssårbarheter som CISA lade in i KEV-katalogen under juli 2026, SP Page Builder och Joomlack Page Builder den 7 juli samt Balbooa Forms och iCagenda den 10 juli. Det är sällan de mest exotiska attackerna som orsakar flest intrång. Oftast är det ett tillägg som ingen kommit ihåg att uppdatera.
Så skyddar du dig
Om du driver WordPress med Breeze eller Joomla med JCE Editor är första steget enkelt att beskriva, om än inte alltid enkelt att komma ihåg att göra.
- Uppdatera Breeze till senaste versionen, 2.5.10 (släppt 22 juli 2026), inte bara till 2.4.5 som ursprungligen täppte hålet, och JCE Editor till 2.9.99.5 eller senare.
- Blockera PHP-exekvering i uppladdningsmappen (wp-content/uploads) via en regel i .htaccess eller motsvarande nginx-konfiguration. Det här är ett skydd som sällan lyfts fram i svenska guider om webbhotell, men det är effektivt. Om ett webbskal ändå tar sig in i uploads-mappen kan det inte köras, vilket stoppar attacken även efter att intrånget redan skett.
- Sätt upp filintegritetsövervakning som slår larm när okända filer dyker upp i systemet. Har du skalåtkomst, lita inte på processlistan ensam, eftersom VShell maskerar sig som en kärnprocess.
- Rotera admin-uppgifter, särskilt om du misstänker att någon redan haft åtkomst.
- Utnyttja värdens egen skanning som ett extra lager. En del svenska webbhotell erbjuder skanning efter skadlig kod på servernivå, och den typen av skydd fångar ofta kända webbskalsmönster, till exempel filer i stil med down.php.
En brandvägg för webbapplikationer (WAF) är ett ytterligare lager som filtrerar bort skadlig trafik innan den ens når din kod, och en fungerande backup är den återställningsväg du vill ha på plats om något ändå går snett. Misstänker du att din sajt redan är påverkad finns en genomgång av hur du går tillväga i vår guide om att sanera en hackad WordPress-sajt.
WP-SHELLSTORM är i grunden inget nytt hot. Uppdateringar och grundläggande serverhygien stoppar fortfarande de flesta intrången, långt innan det blir fråga om avancerad teknik.