Baza znanja Preprosta navodila za delo s storitvijo Profitserver
Glavne Baza znanja Ranljivost WordPressa CVE-2026-119977: Spletna mesta, ki so bila vdrta med posodobitvami, in kako zaščititi svoja

Ranljivost WordPressa CVE-2026-119977: Spletna mesta, ki so bila vdrta med posodobitvami, in kako zaščititi svoja


Konec oktobra 2026 je bila v mehanizmu posodabljanja WordPressa najdena ranljivost: CVE-2026-119977 . Napadalcu brez uporabniškega imena ali gesla omogoča izvajanje poljubne kode na strežniku – vendar le med posodabljanjem spletnega mesta. Ranljivost se že uporablja v resničnih napadih.

Spodaj je opisano, kako deluje, kdo je prizadet in kaj storiti za zaščito svojega spletnega mesta.

Ranljivost na kratko

  • Kaj je to: pogoj tekmovanja (razred TOCTOU) v celotnem postopku posodobitve jedra WordPressa.
  • Resnost: CVSS 8.1 (visoko).
  • Prizadete različice: WordPress od različice 4.7 do vključno 7.1.3.
  • Kaj napadalec potrebuje: Do spletnega mesta je dovoljen samo dostop prek HTTP. Ni potrebno preverjanje pristnosti in nobeno skrbniško dejanje.
  • izkoriščanje: 3. novembra 2026 je CISA dodala ranljivost v svoj katalog znanih izkoriščenih ranljivosti (KEV). Wordfence je v prvih 21 urah po razkritju podrobnosti zabeležil več kot 18,500 zahtev do ranljivih poti.

Kako deluje napad

Med popolno posodobitvijo jedra WordPress naredi naslednje:

  1. Prenese arhiv z novo različico.
  2. Razširi ga v začasno mapo znotraj wp-content/upgrade/.
  3. Kopira datoteke čez aktivno spletno mesto.
  4. Izbriše začasno mapo.

Težava je v tem, da se začasna mapa nahaja na predvidljiva pot in dosegljivo iz brskalnikaV notranjosti je popolna kopija WordPressa, vključno z setup-config.php monterja.

Med izvajanjem posodobitve lahko napadalec odpre ta namestitveni program in ga pregleda. Posledično lahko zamenja aktivno različico wp-config.php in spletno mesto usmerijo na svojo prazno bazo podatkov. WordPress nato ponudi »namestitev« – napadalec jo dokonča, postane skrbnik in na strežniku zažene svojo kodo PHP.

Okno napada je nekaj sekund, ki jih posodobitev traja. Zaradi tega je napad v praksi težko izvedljiv, vendar množični skenerji nenehno preiskujejo ranljive poti in računajo na točno ta čas, da se poravnajo.

Različica 7.1.4 naključno izbere ime začasne mape, doda zaščito pred neposrednim dostopom in prepreči prenos konfiguracije iz začasne kopije.

Timeline

DatumEvent
Oktober 28, 2026Objavljene so WordPress 7.1.4 in popravljene izdaje za starejše veje
Oktober 30, 2026Zabeleženi so prvi poskusi izkoriščanja
Oktober 31, 2026Ranljivost je dodeljena CVE-2026-119977
November 3, 2026CISA dodaja ranljivost v katalog KEV

Fiksne različice

Popravek je bil prenesen nazaj v vse podprte veje do različice 4.7. Priporočamo posodobitev na najnovejšo različico, 7.1.4.

BranchFiksna različica
7.17.1.4
7.07.0.8
6.96.9.11
6.86.8.12
6.76.7.11
6.66.6.11
6.56.5.14
6.46.4.14
6.36.3.14
6.26.2.15
6.16.1.16
6.06.0.18
5.x, 4.7–4.9Fiksna izdaja za vsako vejo, vse do različice 4.7.39

Različice 4.6 in starejše niso prejele popravka. Ta spletna mesta je treba posodobiti na trenutno različico ali pa jih ukiniti.

1. korak. Preverite svojo različico WordPressa

V skrbniški plošči: Nadzorna plošča → Posodobitve . Ne zanašajte se na samodejne posodobitve – morda se niso zagnale: morda so onemogočene, ne uspejo zaradi dovoljenj za datoteke ali pa jih preglasi vtičnik.

Z WP-CLI:

wp core version

Če imate na strežniku več spletnih mest, lahko vse namestitve WordPressa in njihove različice najdete takole:

find /var/www -path '*/wp-includes/version.php' -exec grep -H "wp_version =" {} \;

Zamenjaj /var/www z imenikom, kjer se nahajajo vaša spletna mesta.

Korak 2. Blokirajte dostop do wp-content/upgrade/ (za VPS in namenske strežnike)

To je najpomembnejši ukrep. Zapre okno napada ne glede na vašo različico WordPressa in ne moti posodobitev: WordPress deluje s to mapo prek datotečnega sistema, ne prek spleta. To storite pred posodobitvijo, saj se napad zgodi ravno med posodobitvijo.

nginx

Dodajte to na svojo spletno stran server blok:

location ^~ /wp-content/upgrade/ {
    deny all;
}

Preizkusite konfiguracijo in ponovno naložite nginx:

nginx -t && systemctl reload nginx

Apache in LiteSpeed

Dodajte to v .htaccess datoteka v korenu spletnega mesta, nad standard # BEGIN WordPress blok:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^wp-content/upgrade/ - [F,L]
</IfModule>

Če imate dostop do konfiguracije virtualnega gostitelja Apache, je zanesljiveje blokirati imenik tam:

<Directory "/var/www/example.com/wp-content/upgrade">
    Require all denied
</Directory>

Zamenjajte pot s svojo in znova naložite Apache:

apachectl configtest && systemctl reload apache2

V sistemih AlmaLinux, Rocky in drugih sistemih, ki temeljijo na RHEL, se storitev imenuje httpd.

Preverite, ali blok deluje

curl -I https://example.com/wp-content/upgrade/

Odgovor naj vrne kodo 403.

3. korak. Naredite varnostno kopijo

Pred posodabljanjem varnostno kopirajte datoteke spletnega mesta in bazo podatkov. Z WP-CLI:

wp db export ~/backup-$(date +%F).sql
tar -czf ~/site-files-$(date +%F).tar.gz -C /var/www/example.com .

Če imate VPS, lahko v nadzorni plošči naredite tudi posnetek strežnika.

4. korak. Posodobite WordPress

Preko skrbniške plošče ali WP-CLI

Če ste blokirali dostop do wp-content/upgrade/ (2. korak), posodobite kot običajno – iz skrbniške plošče ali z WP-CLI:

wp core update
wp core update-db
wp core version

Zadnji ukaz bi moral prikazati 7.1.4 ali fiksno različico za vašo vejo.

Ročno, brez okna za napad

Če ne morete blokirati dostopa do imenika na ravni spletnega strežnika (na primer nimate dostopa do njegove konfiguracije), je varneje posodobiti ročno. Arhiv se razpakira izven korenske mape spletnega mesta in datoteke se prekopirajo brez dotikanja. 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

Nato obnovite lastništvo datoteke (uporabnik spletnega strežnika se lahko razlikuje, na primer nginx or apache) in posodobite bazo podatkov:

chown -R www-data:www-data /var/www/example.com
wp core update-db

Namesto zadnjega ukaza lahko odprete https://example.com/wp-admin/upgrade.php v vašem brskalniku.

Ne pozabite na vtičnike in teme

wp plugin update --all
wp theme update --all

5. korak. Preverite svoje spletno mesto za znake ogrožanja

Če je bilo vaše spletno mesto posodobljeno z ranljive različice po 28. oktobru, se prepričajte, da nihče ni izkoristil napada.

Zahteve za začasne monterje v dnevnikih:

# nginx
grep -E "wp-content/upgrade/.*\.php" /var/log/nginx/access.log*

# Apache
grep -E "wp-content/upgrade/.*\.php" /var/log/apache2/access.log*

Zahteve z 200 odzivna koda je še posebej sumljiva.

Zamenjana datoteka wp-config.php: preverite datum spremembe datoteke in nastavitve povezave z bazo podatkov.

ls -l /var/www/example.com/wp-config.php
grep -E "DB_(NAME|USER|HOST)" /var/www/example.com/wp-config.php

Celovitost osrednje datoteke:

wp core verify-checksums

Neznane PHP datoteke in skrbniki:

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

Če najdete nadomestnega wp-config.php, neznane skrbnike ali nepričakovane datoteke PHP, spletno mesto obravnavajte kot ogroženo. Obnovite ga iz varnostne kopije, narejene pred 28. oktobrom, posodobite WordPress in spremenite vsa gesla: skrbniško, podatkovno bazo, FTP in SSH.

Če vaše spletno mesto vzdržuje izvajalec

Posredujte jim ta članek in jih prosite, naj potrdijo, da je bilo spletno mesto posodobljeno na fiksno različico in preverjeno glede znakov ogrožanja.

Potrebujete pomoč?

Niste prepričani, ali lahko to rešite sami, ali ste našli sumljive datoteke? Obrnite se na našo ekipo za podporo – pomagali vam bomo.


Vprašajte nas o VPS

Vedno smo pripravljeni odgovoriti na vaša vprašanja kadarkoli podnevi ali ponoči.