WordPress opravuje kritickú chybu v jadre, ktorá mohla umožniť neautentizované spustenie kódu

WordPress vydal urgentnú bezpečnostnú aktualizáciu pre kritickú zraniteľnosť, ktorá umožňuje útočníkom načítať PHP súbory mimo adresárov šablóny (theme) webu a za určitých podmienok spustiť škodlivý kód bez prihlásenia.

Oprava prišla vo verzii WordPress 7.1.2 dňa 22. septembra 2026. Vo svojom oznámení projekt naliehavo vyzval administrátorov na okamžitú aktualizáciu a pripísal zásluhu za súkromné nahlásenie problému bezpečnostnému výskumníkovi Robertovi Resslovi.

Zraniteľnosť, evidovaná ako CVE-2026-87902, dosahuje kritické skóre CVSS 4.0: 9,2. Oficiálny bezpečnostný advisory popisuje neautentizovanú slabinu typu path traversal (prechod adresárovou štruktúrou) pri rozpoznávaní šablón stránok. Zneužitie nevyžaduje existujúci účet ani interakciu s legitímnym používateľom, hoci najzávažnejší dopad závisí od štruktúry šablóny webu a hostingového prostredia.

Toto obmedzenie je kľúčové pre pochopenie hrozby. Chyba sama osebe neznamená, že každá zraniteľná inštalácia WordPressu môže byť okamžite prevzatá útočníkom. Vytvára však nebezpečnú cestu, cez ktorú sa anonymná požiadavka môže dostať k lokálnemu PHP kódu, ktorý by WordPress nemal načítavať ako šablónu stránky.

Technický mechanizmus

Postihnutá funkcionalita určuje, ktorá šablóna sa vykreslí pre požadovanú stránku. Podľa technickej analýzy spoločnosti Patchstack WordPress zostavoval názov kandidátskeho súboru pomocou názvu stránky odvodeného z požiadavky, bez aplikovania validácie proti path traversal, ktorá sa už používa v susednej časti kódu.

Výsledný názov súboru má pevnú predponu page- a príponu .php. Tieto obmedzenia formujú spôsob zneužitia: aktívna šablóna potrebuje vhodný adresár najvyššej úrovne začínajúci na „page-“ a cieľom musí byť čitateľný PHP súbor. Za splnenia týchto podmienok umožňuje path traversal, aby výber šablóny „unikol“ zo svojej zamýšľanej lokácie.

Patchstack uvádza, že aktualizácia pridáva validáciu pri spracovaní dekódovaného názvu stránky a zavádza dodatočné kontroly ciest k šablónam obsahujúcich prvky path traversal. Tieto zmeny riešia základný problém so spracovaním ciest. Kontrola konfigurácie servera môže pomôcť zistiť mieru expozície, no nenahrádza inštaláciu opravného kódu.

Úloha šablón (themes)

Úloha šablón je obzvlášť významná, pretože bežná, legitímna adresárová štruktúra môže splniť časť požiadaviek na útok. Dokumentácia WordPressu pre vývojárov šablón popisuje, ako vlastné šablóny stránok riadia zobrazenie jednotlivých stránok a ako ich vývojári môžu organizovať do podadresárov.

Priečinok používaný na organizáciu šablón sa tak môže stať relevantným pre zraniteľnosť inde v platforme. Jeho existencia neznamená, že vývojár šablóny zaviedol chybu v jadre, ani sama osebe nedokazuje, že je k dispozícii kompletný reťazec na spustenie kódu.

Oficiálny advisory menuje ako príklady s relevantným rozložením staršie šablóny Twenty Twelve a Twenty Fourteen, ako aj šablóny tretích strán vrátane Neve, Hestia a Sydney. Relevantné sú pritom aktívne nadradené (parent) aj podradené (child) šablóny. Advisory tiež identifikuje ako relevantné prostredia oficiálne Docker obrazy PHP a predvolené konfigurácie cPanel s verziou PHP staršou ako 8.5.

Od načítania súboru k spusteniu kódu

Prechod od lokálneho zahrnutia súboru (local file inclusion) k spusteniu ľubovoľného kódu vyžaduje ďalšiu súčasť. Načítanie existujúceho PHP súboru spustí logiku tohto súboru; to samo osebe nedáva útočníkovi kontrolu nad tým, čo táto logika robí.

Vo svojom výskumnom zverejnení Ressl demonštroval postup zahŕňajúci komponenty PEAR, ktoré boli už prítomné v jeho testovacom prostredí. PEAR nie je závislosťou WordPressu. Reťazec vyžadoval čitateľný vstupný bod PEAR, povolené nastavenie register_argc_argv vo webovom PHP runtime a zapisovateľný cieľ.

Ressl testoval WordPress 7.0.2 v izolovaných laboratóriách a publikoval proof of concept spolu s oznámením o oprave. K spusteniu došlo s oprávneniami účtu PHP/webového servera. Výsledky nepreukázali prístup na úrovni root, únik z hostiteľského systému (host escape) ani zneužitie na produkčnom webe. Nezmeral tiež, ako rozšírená je kompletná sada predpokladov naprieč reálnymi inštaláciami.

Tieto obmedzenia však nerobia potenciálny dopad zanedbateľným. Ressl vysvetľuje, že oprávnenia na úrovni servisného účtu môžu stále umožniť prístup ku konfigurácii a prihlasovacím údajom do databázy, zmeny dát webu, úpravu zapisovateľných aplikačných zdrojov alebo narušenie chodu. Pre organizácie tak praktická miera expozície závisí od zraniteľnej aplikácie aj od oprávnení udelených procesu, ktorý ju spúšťa.

Konfigurácia PHP

Konfigurácii PHP treba pri hodnotení expozície venovať osobitnú pozornosť. Manuál PHP vysvetľuje, že register_argc_argv riadi, či sú deklarované premenné argumentov, a dokumentuje, že vo verzii PHP 8.5 je zavrhnuté (deprecated) odvodzovanie týchto hodnôt z query stringov mimo prostredia príkazového riadku.

Administrátori by mali overiť skutočnú konfiguráciu použitú pri obsluhe webových požiadaviek. Kontrola cez príkazový riadok PHP môže popisovať inú runtime konfiguráciu. Samotné číslo verzie by sa nemalo považovať za dôkaz, že konkrétne nastavenie je vypnuté.

Ressl odporúča ako doplnkové opatrenie vypnúť nepotrebnú registráciu argumentov pre webové požiadavky a odstrániť nepoužívané, webovo čitateľné vstupné body PEAR. Tieto kroky môžu prerušiť demonštrovaný reťazec spustenia, no ponechávajú samotnú chybu WordPressu v zahŕňaní súborov neopravenú.

Postihnuté verzie

Aktualizácia si vyžaduje pozornosť aj od organizácií, ktoré aktualizovali nedávno. WordPress 7.1.1, vydaný v predchádzajúcom týždennom bezpečnostnom update, je týmto samostatným problémom naďalej postihnutý. Nedávny dátum údržby teda sám osebe nie je dôkazom nápravy.

Oficiálny advisory uvádza opravené verzie vrátane 7.1.2, 7.0.6, 6.9.9, 6.8.10, 6.7.9 a 6.6.9, s ďalšími spätnými portami siahajúcimi až po 4.7.37. Administrátori spravujúci staršie vetvy by si mali overiť úplný zoznam verzií namiesto predpokladu, že akékoľvek novšie minor vydanie opravu obsahuje.

WordPress uvádza, že tieto spätné porty boli poskytnuté ako gesto a zdôrazňuje, že aktívne podporovaná je len najnovšia verzia. Poskytujú spôsob, ako riešiť bezprostrednú zraniteľnosť na starších inštaláciách, kým prebieha dlhodobejšia migrácia.

Odporúčania a zmierňujúce opatrenia

Weby nakonfigurované na automatické aktualizácie na pozadí by sa mali začať aktualizovať automaticky. Ostatní administrátori môžu použiť obrazovku Aktualizácie v paneli WordPressu alebo získať vydanie priamo z WordPress.org. Z operatívneho hľadiska by organizácie mali overiť dokončenie aktualizácie naprieč celým svojím portfóliom vrátane vedľajších webov a externe spravovaných inštalácií, namiesto spoliehania sa výlučne na zapnutú politiku aktualizácií.

Dostupnosť verejného exploit materiálu zvyšuje dôležitosť promptnej nápravy, no laboratórna demonštrácia je niečo iné než dôkaz prebiehajúcich útokov. Server The Hacker News informoval, že k 22. septembru nebolo zaznamenané žiadne známe zneužitie. Toto časovo ohraničené hodnotenie by sa nemalo považovať za záruku, že skenovanie alebo útoky nemôžu vzniknúť neskôr.

Pre obrancov je vhodnou reakciou kombinácia patchovania a primeranej kontroly. Príručka WordPressu na spevnenie zabezpečenia (hardening) zdôrazňuje hodnotu prístupových a chybových logov, sledovania zmien súborov, reštriktívnych oprávnení a spoľahlivých záloh.

Aplikované na tento prípad tieto postupy podporujú kontrolu podozrivých požiadaviek súvisiacich so spracovaním ciest a neočakávaných zmien PHP súborov, pri zachovaní dôkazov pre prípadné vyšetrovanie. Tieto kontroly sú obranné odporúčania založené na zverejnenom mechanizme, nie indikátory potvrdenej kampane. Bežné logy navyše nemusia obsahovať dostatok detailov na rekonštrukciu každého pokusu.

Pre firmy využívajúce hostingových poskytovateľov alebo agentúry by náprava mala mať menovaného vlastníka (owner) a overený výsledok. Overenie nainštalovanej verzie, kontrola základných funkcií webu po aktualizácii a zdokumentovanie nevyriešených výnimiek sú užitočnejšie než všeobecné uistenie, že bezpečnostné aktualizácie sú „spravované“.

Záver

Širšie ponaučenie je, že mieru expozície nemožno vždy posúdiť len na základe samotného redakčného systému (CMS). Chyba v jadre softvéru, legitímna štruktúra šablóny a serverový nástroj tretej strany sa môžu skombinovať do závažnejšej cesty kompromitácie. Aktualizácia WordPressu uzatvára zverejnený vstupný bod; obmedzenie zbytočných runtime funkcií a oprávnení v súborovom systéme pomáha znížiť dopad budúcich chýb.


Viac informácii:

https://www.linkedin.com/pulse/wordpress-patches-critical-core-flaw-could-allow-nriae

https://thehackernews.com/2026/09/wordpress-issues-patch-for-critical.html