Znanja Jednostavne upute za rad s uslugom Profitserver
Glavni Znanja Ranjivost WordPressa CVE-2026-119977: Stranice hakirane tijekom ažuriranja i kako zaštititi svoju

Ranjivost WordPressa CVE-2026-119977: Stranice hakirane tijekom ažuriranja i kako zaštititi svoju


Krajem listopada 2026. pronađena je ranjivost u mehanizmu ažuriranja WordPressa: CVE-2026-119977 . Omogućuje napadaču bez korisničkog imena ili lozinke izvršavanje proizvoljnog koda na poslužitelju - ali samo dok se stranica ažurira. Ranjivost se već koristi u stvarnim napadima.

U nastavku je opisano kako to funkcionira, tko je pogođen i što učiniti kako biste zaštitili svoju web-lokaciju.

Ranjivost ukratko

  • Što je to: uvjet utrke (klasa TOCTOU) u procesu potpunog ažuriranja jezgre WordPressa.
  • Ozbiljnost: CVSS 8.1 (visoki).
  • Pogođene verzije: WordPress od verzije 4.7 do 7.1.3 uključivo.
  • Što napadaču treba: samo HTTP pristup web-mjestu. Nije potrebna autentifikacija niti administratorska akcija.
  • eksploatacija: Dana 3. studenog 2026. CISA je dodala ranjivost u svoj katalog poznatih iskorištenih ranjivosti (KEV). Wordfence je zabilježio više od 18 500 zahtjeva prema ranjivim putovima u prvih 21 sat nakon što su detalji otkriveni.

Kako napad funkcionira

Tijekom potpunog ažuriranja jezgre, WordPress radi sljedeće:

  1. Preuzima arhivu s novom verzijom.
  2. Izdvaja ga u privremenu mapu unutar wp-content/upgrade/.
  3. Kopira datoteke preko aktivne web-lokacije.
  4. Briše privremenu mapu.

Problem je u tome što se privremena mapa nalazi na predvidljiv put i dostupno iz preglednikaUnutra se nalazi potpuna kopija WordPressa, uključujući setup-config.php instalater.

Dok se ažuriranje izvršava, napadač može otvoriti ovaj instalacijski program i proći kroz njega. Kao rezultat toga, mogu zamijeniti aktivni wp-config.php i usmjere stranicu na vlastitu praznu bazu podataka. WordPress zatim nudi "instalaciju" - napadač je dovršava, postaje administrator i pokreće vlastiti PHP kod na poslužitelju.

Prozor za napad je nekoliko sekundi koliko traje ažuriranje. Zbog toga je napad teško izvesti u praksi, ali masovni skeneri neprestano ispituju ranjive puteve, računajući na točno to vrijeme kako bi se poklopili.

Verzija 7.1.4 nasumično bira naziv privremene mape, dodaje zaštitu od izravnog pristupa i blokira prijenos konfiguracije iz privremene kopije.

Timeline

Datumdogađaj
28. listopada 2026.Objavljeni su WordPress 7.1.4 i ispravljena izdanja za starije grane
30. listopada 2026.Zabilježeni su prvi pokušaji iskorištavanja
31. listopada 2026.Ranjivost je označena kao CVE-2026-119977.
3. studenog 2026.CISA dodaje ranjivost u KEV katalog

Fiksne verzije

Ispravak je prenesen na sve podržane grane do verzije 4.7. Preporučujemo ažuriranje na najnoviju verziju, 7.1.4.

GranaFiksna verzija
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.9Fiksno izdanje za svaku granu, sve do verzije 4.7.39

Verzije 4.6 i starije nisu dobile ispravak. Ove stranice potrebno je ažurirati na trenutnu verziju ili ih ukinuti.

Korak 1. Provjerite svoju verziju WordPressa

U administratorskoj ploči: Nadzorna ploča → Ažuriranja . Nemojte se oslanjati na automatska ažuriranja — možda se nisu pokrenula: mogu biti onemogućena, neuspješna zbog dozvola datoteke ili ih je nadjačao dodatak.

S WP-CLI-jem:

wp core version

Ako imate nekoliko web-mjesta na poslužitelju, svaku WordPress instalaciju i njihovu verziju možete pronaći ovako:

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

zamijeniti /var/www s direktorijem u kojem se nalaze vaše web-lokacije.

Korak 2. Blokirajte pristup wp-content/upgrade/ (za VPS i dedicirane servere)

Ovo je najvažnija mjera. Zatvara prozor za napad bez obzira na vašu verziju WordPressa i ne ometa ažuriranja: WordPress radi s ovom mapom putem datotečnog sustava, a ne putem weba. Učinite to prije ažuriranja, budući da se napad događa upravo tijekom ažuriranja.

Nginx

Dodajte ovo na svoju stranicu server blok:

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

Testirajte konfiguraciju i ponovno učitajte nginx:

nginx -t && systemctl reload nginx

Apache i LiteSpeed

Dodajte ovo u .htaccess datoteka u korijenu web-mjesta, iznad standardni # BEGIN WordPress blok:

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

Ako imate pristup konfiguraciji virtualnog hosta Apache, pouzdanije je blokirati direktorij tamo:

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

Zamijenite putanju svojom i ponovno učitajte Apache:

apachectl configtest && systemctl reload apache2

Na AlmaLinuxu, Rockyju i drugim RHEL-baziranim sustavima, usluga se zove httpd.

Provjerite radi li blok

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

Odgovor bi trebao vratiti kod 403.

Korak 3. Napravite sigurnosnu kopiju

Prije ažuriranja, napravite sigurnosnu kopiju datoteka i baze podataka web-mjesta. Pomoću WP-CLI-ja:

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

Ako imate VPS, možete napraviti i snimku servera u kontrolnoj ploči.

Korak 4. Ažurirajte WordPress

Putem administratorske ploče ili WP-CLI-ja

Ako ste blokirali pristup wp-content/upgrade/ (Korak 2), ažurirajte kao i obično — iz administratorske ploče ili putem WP-CLI-ja:

wp core update
wp core update-db
wp core version

Posljednja naredba trebala bi prikazati 7.1.4 ili fiksnu verziju za vašu granu.

Ručno, bez prozora za napad

Ako ne možete blokirati pristup direktoriju na razini web poslužitelja (na primjer, nemate pristup njegovoj konfiguraciji), sigurnije je ažurirati ručno. Arhiva se raspakira izvan korijenske mape web-mjesta, a datoteke se kopiraju bez dodirivanja. 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

Zatim vratite vlasništvo nad datotekom (korisnik web poslužitelja može se razlikovati, na primjer nginx or apache) i ažurirajte bazu podataka:

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

Umjesto posljednje naredbe, možete otvoriti https://example.com/wp-admin/upgrade.php u pregledniku.

Ne zaboravite na dodatke i teme

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

Korak 5. Provjerite svoju web-lokaciju na znakove kompromitiranja

Ako je vaša web-lokacija ažurirana s ranjive verzije nakon 28. listopada, provjerite je li netko iskoristio napad.

Zahtjevi privremenim instalaterima u zapisnicima:

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

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

Zahtjevi s 200 kod odgovora je posebno sumnjiv.

Zamijenjena wp-config.php: provjerite datum izmjene datoteke i postavke veze s bazom podataka.

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

Integritet osnovne datoteke:

wp core verify-checksums

Nepoznate PHP datoteke i administratori:

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

Ako pronađete zamjenu wp-config.php, nepoznati administratori ili neočekivane PHP datoteke, tretirajte stranicu kao kompromitiranu. Vratite je iz sigurnosne kopije napravljene prije 28. listopada, ažurirajte WordPress i promijenite sve lozinke: administratorsku, bazu podataka, FTP i SSH.

Ako izvođač radova održava vašu lokaciju

Proslijedite im ovaj članak i zamolite ih da potvrde da je stranica ažurirana na fiksnu verziju i provjerena na znakove kompromitiranja.

Trebate li pomoć?

Niste sigurni možete li se sami nositi s ovim ili ste pronašli sumnjive datoteke? Obratite se našem timu za podršku — pomoći ćemo vam da to riješite.


Pitajte nas o VPS-u

Uvijek smo spremni odgovoriti na vaša pitanja u bilo koje doba dana i noći.