Lokakuun lopulla 2026 WordPressin päivitysmekanismista löydettiin haavoittuvuus: CVE-2026-119977 . Se sallii hyökkääjän ilman käyttäjätunnusta tai salasanaa suorittaa mielivaltaista koodia palvelimella – mutta vain sivuston päivityksen aikana. Haavoittuvuutta käytetään jo oikeissa hyökkäyksissä.
Alla on kuvattu, miten se toimii, keitä se koskee ja mitä tehdä sivustosi suojaamiseksi.
Haavoittuvuus lyhyesti
- Mitä se on: kilpailuehto (TOCTOU-luokka) WordPressin koko ydinpäivityksen prosessissa.
- vakavuus: CVSS 8.1 (korkea).
- Vaikuttavat versiot: WordPress 4.7–7.1.3.
- Mitä hyökkääjä tarvitsee: Sivustolle pääsee vain HTTP-yhteyden kautta. Ei todennusta eikä järjestelmänvalvojan toimia vaadita.
- Operaatio: CISA lisäsi haavoittuvuuden tunnettujen hyödynnettyjen haavoittuvuuksien (KEV) luetteloonsa 3. marraskuuta 2026. Wordfence rekisteröi yli 18 500 pyyntöä haavoittuviin polkuihin ensimmäisten 21 tunnin aikana tietojen paljastamisen jälkeen.
Kuinka hyökkäys toimii
Täyden ydinpäivityksen aikana WordPress tekee seuraavat toimet:
- Lataa arkiston uudella versiolla.
- Purkaa sen väliaikaiseen kansioon sisällä
wp-content/upgrade/. - Kopioi tiedostot live-sivuston yli.
- Poistaa väliaikaisen kansion.
Ongelmana on, että väliaikainen kansio sijaitsee osoitteessa ennustettava polku ja se on saavutettavissa selaimestaSen sisällä on täydellinen kopio WordPressistä, mukaan lukien setup-config.php asentaja.
Päivityksen ollessa käynnissä hyökkääjä voi avata asennusohjelman ja suorittaa sen. Tämän seurauksena he voivat korvata live-asennuksen. wp-config.php ja ohjaavat sivuston omaan tyhjään tietokantaansa. WordPress tarjoaa sitten "asennusta" – hyökkääjä suorittaa sen loppuun, siirtyy järjestelmänvalvojaksi ja suorittaa omaa PHP-koodiaan palvelimella.
Hyökkäysikkuna tarkoittaa muutamaa sekuntia, jonka päivitys kestää. Tämä tekee hyökkäyksestä käytännössä vaikean toteuttaa, mutta massaskannerit luottavat haavoittuviin polkuihin jatkuvasti ja laskevat juuri tuon ajoituksen varaan ehtiäkseen hyökkäykseen.
Versio 7.1.4 satunnaistaa väliaikaisen kansion nimen, lisää suojauksen suoralta käytöltä ja estää määritysten siirtämisen väliaikaisesta kopiosta.
Aikajana
| Päivämäärä | Tapahtuma |
|---|---|
| Lokakuu 28, 2026 | WordPress 7.1.4 ja vanhempien haarojen korjatut versiot on julkaistu |
| Lokakuu 30, 2026 | Ensimmäiset hyväksikäyttöyritykset kirjataan |
| Lokakuu 31, 2026 | Haavoittuvuus on luokiteltu CVE-2026-119977:ksi. |
| Marraskuussa 3, 2026 | CISA lisää haavoittuvuuden KEV-luetteloon |
Kiinteät versiot
Korjaus on taaksepäin siirretty kaikkiin tuettuihin haaraihin versioon 4.7 asti. Suosittelemme päivittämistä uusimpaan versioon 7.1.4.
| Sivuliike | Kiinteä versio |
|---|---|
| 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 | Korjattu julkaisu jokaiselle haaralle, aina versioon 4.7.39 asti |
Versioihin 4.6 ja vanhempiin ei tehty korjausta. Nämä sivustot on päivitettävä nykyiseen versioon tai poistettava käytöstä.
Vaihe 1. Tarkista WordPress-versiosi
Hallintapaneelissa: Kojelauta → Päivitykset . Älä luota automaattisiin päivityksiin – ne eivät ehkä ole toimineet: ne voivat olla poistettu käytöstä, epäonnistua tiedosto-oikeuksien vuoksi tai jokin laajennus voi ohittaa ne.
WP-CLI:n kanssa:
wp core version
Jos palvelimella on useita sivustoja, löydät jokaisen WordPress-asennuksen ja sen version tältä:
find /var/www -path '*/wp-includes/version.php' -exec grep -H "wp_version =" {} \;
korvata /var/www hakemiston kanssa, jossa sivustosi sijaitsevat.
Vaihe 2. Estä pääsy wp-content/upgrade/-sivustolle (VPS:lle ja dedikoiduille palvelimille)
Tämä on tärkein toimenpide. Se sulkee hyökkäysikkunan riippumatta WordPress-versiostasi eikä häiritse päivityksiä: WordPress käsittelee tätä kansiota tiedostojärjestelmän kautta, ei verkon yli. Tee tämä ennen päivittämistä, koska hyökkäys tapahtuu juuri päivityksen aikana.
Nginx
Lisää tämä sivustoosi server lohko:
location ^~ /wp-content/upgrade/ {
deny all;
}
Testaa kokoonpano ja lataa nginx uudelleen:
nginx -t && systemctl reload nginx
Apache ja LiteSpeed
Lisää tämä kohtaan .htaccess tiedosto sivuston juuressa, edellä standardin # BEGIN WordPress lohko:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^wp-content/upgrade/ - [F,L]
</IfModule>
Jos sinulla on pääsy Apachen virtuaalipalvelimen määrityksiin, on luotettavampaa estää hakemisto siellä:
<Directory "/var/www/example.com/wp-content/upgrade">
Require all denied
</Directory>
Korvaa polku omalla polullasi ja lataa Apache uudelleen:
apachectl configtest && systemctl reload apache2
AlmaLinuxissa, Rockyssa ja muissa RHEL-pohjaisissa järjestelmissä palvelua kutsutaan nimellä httpd.
Tarkista, että lohko toimii
curl -I https://example.com/wp-content/upgrade/
Vastauksen pitäisi palauttaa koodi 403.
Vaihe 3. Tee varmuuskopio
Ennen päivittämistä, varmuuskopioi sivuston tiedostot ja tietokanta. WP-CLI:n avulla:
wp db export ~/backup-$(date +%F).sql
tar -czf ~/site-files-$(date +%F).tar.gz -C /var/www/example.com .
Jos sinulla on VPS, voit myös ottaa palvelimesta tilannevedoksen hallintapaneelissa.
Vaihe 4. Päivitä WordPress
Hallintapaneelin tai WP-CLI:n kautta
Jos olet estänyt pääsyn wp-content/upgrade/ (Vaihe 2), päivitä normaalisti — hallintapaneelista tai WP-CLI:n avulla:
wp core update
wp core update-db
wp core version
Viimeisen komennon pitäisi näyttää versio 7.1.4 tai haarasi korjattu versio.
Manuaalisesti, ilman hyökkäysikkunaa
Jos et voi estää pääsyä hakemistoon web-palvelintasolla (esimerkiksi jos sinulla ei ole pääsyä sen määrityksiin), on turvallisempaa päivittää se manuaalisesti. Arkisto puretaan sivuston juurihakemiston ulkopuolelle, ja tiedostot kopioidaan koskematta niihin. 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
Palauta sitten tiedoston omistajuus (verkkopalvelimen käyttäjä voi olla eri, esimerkiksi nginx or apache) ja päivitä tietokanta:
chown -R www-data:www-data /var/www/example.com
wp core update-db
Viimeisen komennon sijaan voit avata https://example.com/wp-admin/upgrade.php selaimessasi.
Älä unohda lisäosia ja teemoja
wp plugin update --all
wp theme update --all
Vaihe 5. Tarkista sivustosi vaarantumisen merkkien varalta
Jos sivustosi päivitettiin haavoittuvasta versiosta 28. lokakuuta jälkeen, varmista, ettei kukaan ole käyttänyt hyökkäystä hyväkseen.
Lokitiedostoissa olevat pyynnöt väliaikaisille asentajille:
# nginx
grep -E "wp-content/upgrade/.*\.php" /var/log/nginx/access.log*
# Apache
grep -E "wp-content/upgrade/.*\.php" /var/log/apache2/access.log*
Pyynnöt, joissa on 200 vastauskoodit ovat erityisen epäilyttäviä.
Korvattu wp-config.php: tarkista tiedoston muokkauspäivämäärä ja tietokannan yhteysasetukset.
ls -l /var/www/example.com/wp-config.php
grep -E "DB_(NAME|USER|HOST)" /var/www/example.com/wp-config.php
Ydintiedoston eheys:
wp core verify-checksums
Tuntemattomat PHP-tiedostot ja ylläpitäjät:
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
Jos löydät korvatun wp-config.php, tuntemattomia ylläpitäjiä tai odottamattomia PHP-tiedostoja, käsittele sivustoa vaarantuneena. Palauta se ennen 28. lokakuuta tehdystä varmuuskopiosta, päivitä WordPress ja vaihda kaikki salasanat: ylläpitäjän, tietokannan, FTP:n ja SSH:n.
Jos urakoitsija ylläpitää työmaatasi
Lähetä tämä artikkeli heille ja pyydä heitä vahvistamaan, että sivusto on päivitetty korjattuun versioon ja tarkistettu vaarantumisen merkkien varalta.
Tarvitsetko apua?
Etkö ole varma, pystytkö käsittelemään tätä itse, tai löysitkö epäilyttäviä tiedostoja? Ota yhteyttä tukitiimiimme – autamme sinua selvittämään asian.