Koncom októbra 2026 bola v mechanizme aktualizácie WordPressu nájdená zraniteľnosť: CVE-2026-119977 . Umožňuje útočníkovi bez prihlasovacieho mena alebo hesla spustiť ľubovoľný kód na serveri – ale iba počas aktualizácie stránky. Táto zraniteľnosť sa už používa pri reálnych útokoch.
Nižšie je uvedené, ako to funguje, koho sa to týka a čo robiť na ochranu vašej stránky.
Zraniteľnosť v skratke
- Čo to je: stav pretekania (trieda TOCTOU) v procese úplnej aktualizácie jadra WordPressu.
- Závažnosť: CVSS 8.1 (vysoký).
- Dotknuté verzie: WordPress 4.7 až 7.1.3 vrátane.
- Čo útočník potrebuje: iba HTTP prístup k stránke. Nie je potrebné žiadne overenie ani zásah správcu.
- Využitie: 3. novembra 2026 spoločnosť CISA pridala túto zraniteľnosť do svojho katalógu známych zneužitých zraniteľností (KEV). Wordfence zaznamenal v prvých 21 hodinách po zverejnení podrobností viac ako 18 500 požiadaviek na zraniteľné cesty.
Ako útok funguje
Počas úplnej aktualizácie jadra WordPress vykoná nasledovné:
- Stiahne archív s novou verziou.
- Rozbalí ho do dočasného priečinka vo vnútri
wp-content/upgrade/. - Skopíruje súbory cez aktívnu stránku.
- Odstráni dočasný priečinok.
Problém je v tom, že dočasný priečinok sa nachádza na predvídateľná cesta a je dostupné z prehliadačaVnútri sa nachádza kompletná kópia WordPressu vrátane setup-config.php Inštalačný program.
Počas behu aktualizácie môže útočník otvoriť tento inštalátor a prejsť si ho. Vďaka tomu môže nahradiť aktívny wp-config.php a nasmerujú stránku na ich vlastnú prázdnu databázu. WordPress potom ponúkne „inštaláciu“ – útočník ju dokončí, stane sa administrátorom a spustí na serveri vlastný PHP kód.
Okno útoku je niekoľko sekúnd, ktoré aktualizácia trvá. To sťažuje vykonanie útoku v praxi, ale hromadné skenery neustále skúmajú zraniteľné cesty a počítajú s presným načasovaním, aby sa zoradili.
Verzia 7.1.4 náhodne upravuje názov dočasného priečinka, pridáva ochranu pred priamym prístupom a blokuje prenos konfigurácie z dočasnej kópie.
časová os
| dátum | udalosť |
|---|---|
| Októbra 28, 2026 | Publikované sú WordPress 7.1.4 a opravené verzie pre staršie vetvy |
| Októbra 30, 2026 | Zaznamenané sú prvé pokusy o zneužitie |
| Októbra 31, 2026 | Zraniteľnosť je označená ako CVE-2026-119977 |
| Novembra 3, 2026 | CISA pridáva zraniteľnosť do katalógu KEV |
Pevné verzie
Oprava bola spätne portovaná do všetkých podporovaných vetví až po verziu 4.7. Odporúčame aktualizovať na najnovšiu verziu 7.1.4.
| Vetva | Pevná verzia |
|---|---|
| 7.1 | 7.1.4 |
| 7.0 | 7.0.8 |
| 6.9 | 6.9.11 |
| 6.8 | 6.8.12 |
| 6.7 | 6.7.11 |
| 6.6 | 6.6.11 |
| 6.5 | 6.5.14 |
| 6.4 | 6.4.14 |
| 6.3 | 6.3.14 |
| 6.2 | 6.2.15 |
| 6.1 | 6.1.16 |
| 6.0 | 6.0.18 |
| 5.x, 4.7–4.9 | Opravená verzia pre každú vetvu až do verzie 4.7.39 |
Verzie 4.6 a staršie nedostali opravu. Tieto stránky je potrebné aktualizovať na aktuálnu verziu alebo ich vyradiť z prevádzky.
Krok 1. Skontrolujte si verziu WordPressu
V administrátorskom paneli: Ovládací panel → Aktualizácie . Nespoliehajte sa na automatické aktualizácie – nemusia sa spustiť: môžu byť vypnuté, zlyhať kvôli oprávneniam súboru alebo byť prepísané doplnkom.
S WP-CLI:
wp core version
Ak máte na serveri viacero stránok, každú inštaláciu WordPressu a jej verziu nájdete takto:
find /var/www -path '*/wp-includes/version.php' -exec grep -H "wp_version =" {} \;
vymeniť /var/www s adresárom, kde sa nachádzajú vaše stránky.
Krok 2. Zablokujte prístup k wp-content/upgrade/ (pre VPS a dedikované servery)
Toto je najdôležitejšie opatrenie. Zatvorí okno útoku bez ohľadu na vašu verziu WordPressu a nezasahuje do aktualizácií: WordPress pracuje s týmto priečinkom prostredníctvom súborového systému, nie cez web. Urobte to pred aktualizáciou, pretože k útoku dochádza práve počas aktualizácie.
nginx
Pridajte toto na svoju stránku server blok:
location ^~ /wp-content/upgrade/ {
deny all;
}
Otestujte konfiguráciu a znova načítajte nginx:
nginx -t && systemctl reload nginx
Apache a LiteSpeed
Pridajte toto k .htaccess súbor v koreňovom adresári stránky, vyššie štandardné # BEGIN WordPress blok:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^wp-content/upgrade/ - [F,L]
</IfModule>
Ak máte prístup ku konfigurácii virtuálneho hostiteľa Apache, je spoľahlivejšie zablokovať adresár tam:
<Directory "/var/www/example.com/wp-content/upgrade">
Require all denied
</Directory>
Nahraďte cestu vlastnou a znova načítajte Apache:
apachectl configtest && systemctl reload apache2
Na systémoch AlmaLinux, Rocky a iných systémoch založených na RHEL sa táto služba nazýva httpd.
Skontrolujte, či blok funguje
curl -I https://example.com/wp-content/upgrade/
Odpoveď by mala vrátiť kód 403.
Krok 3. Vytvorte zálohu
Pred aktualizáciou si zálohujte súbory a databázu lokality. Pomocou WP-CLI:
wp db export ~/backup-$(date +%F).sql
tar -czf ~/site-files-$(date +%F).tar.gz -C /var/www/example.com .
Ak máte VPS, môžete si tiež vytvoriť snímku servera v ovládacom paneli.
Krok 4. Aktualizujte WordPress
Prostredníctvom administrátorského panela alebo WP-CLI
Ak ste zablokovali prístup k wp-content/upgrade/ (Krok 2), aktualizujte ako obvykle – z administrátorského panela alebo pomocou WP-CLI:
wp core update
wp core update-db
wp core version
Posledný príkaz by mal zobraziť verziu 7.1.4 alebo opravenú verziu pre vašu vetvu.
Manuálne, bez útočného okna
Ak nemôžete zablokovať prístup k adresáru na úrovni webového servera (napríklad nemáte prístup k jeho konfigurácii), je bezpečnejšie aktualizovať manuálne. Archív sa extrahuje mimo koreňového adresára lokality a súbory sa skopírujú bez toho, aby sa ich niekto dotkol. wp-config.php or wp-content:
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
rsync -a --exclude 'wp-content' --exclude 'wp-config.php' /tmp/wordpress/ /var/www/example.com/
rm -rf /tmp/wordpress /tmp/latest.tar.gz
Potom obnovte vlastníctvo súboru (používateľ webového servera sa môže líšiť, napríklad nginx or apache) a aktualizujte databázu:
chown -R www-data:www-data /var/www/example.com
wp core update-db
Namiesto posledného príkazu môžete otvoriť https://example.com/wp-admin/upgrade.php vo vašom prehliadači.
Nezabudnite na pluginy a témy
wp plugin update --all
wp theme update --all
Krok 5. Skontrolujte svoju stránku, či neobsahuje známky kompromitácie
Ak bola vaša stránka aktualizovaná zo zraniteľnej verzie po 28. októbri, uistite sa, že nikto nezneužil útok.
Požiadavky pre dočasných inštalatérov v protokoloch:
# nginx
grep -E "wp-content/upgrade/.*\.php" /var/log/nginx/access.log*
# Apache
grep -E "wp-content/upgrade/.*\.php" /var/log/apache2/access.log*
Žiadosti s 200 kód odpovede je obzvlášť podozrivý.
Nahradený súbor wp-config.php: skontrolujte dátum úpravy súboru a nastavenia pripojenia k databáze.
ls -l /var/www/example.com/wp-config.php
grep -E "DB_(NAME|USER|HOST)" /var/www/example.com/wp-config.php
Integrita jadra súboru:
wp core verify-checksums
Neznáme PHP súbory a administrátori:
find /var/www/example.com/wp-content/upgrade /var/www/example.com/wp-content/uploads -name "*.php"
find /var/www/example.com -name "*.php" -mtime -10
wp user list --role=administrator
Ak nájdete náhradu wp-config.php, neznámych administrátorov alebo neočakávané súbory PHP, považujte stránku za napadnutú. Obnovte ju zo zálohy vytvorenej pred 28. októbrom, aktualizujte WordPress a zmeňte všetky heslá: administrátorské, databázové, FTP a SSH.
Ak vašu stránku udržiava dodávateľ
Prepošlite im tento článok a požiadajte ich o potvrdenie, že stránka bola aktualizovaná na opravenú verziu a skontrolovaná na známky napadnutia.
Potrebujete pomôcť?
Nie ste si istí, či si s tým poradíte sami, alebo ste našli podozrivé súbory? Kontaktujte náš tím podpory – pomôžeme vám to vyriešiť.