2026 жылдың қазан айының соңында WordPress жаңарту механизмінде осалдық табылды: CVE-2026-119977 . Ол логин немесе құпия сөзсіз шабуылдаушыға серверде кездейсоқ кодты орындауға мүмкіндік береді — бірақ тек сайт жаңартылып жатқанда ғана. Осалдық қазірдің өзінде нақты шабуылдарда қолданылуда.
Төменде оның қалай жұмыс істейтіні, кімге әсер ететіні және сайтыңызды қорғау үшін не істеу керектігі көрсетілген.
Қысқаша айтқанда, осалдық
- Бұл не: WordPress негізгі жаңарту процесіндегі жарыс шарты (TOCTOU класы).
- Ауырлығы: CVSS 8.1 (Жоғары).
- Әсер етілген нұсқалар: WordPress 4.7-ден 7.1.3-ке дейінгі нұсқаларды қоса алғанда.
- Шабуылдаушыға не қажет: сайтқа тек HTTP арқылы кіру мүмкіндігі. Аутентификация және әкімші әрекеті қажет емес.
- Пайдалану: 2026 жылдың 3 қарашасында CISA осалдықты өзінің Белгілі Пайдаланылатын Осалдықтары (KEV) каталогына қосты. Wordfence мәліметтер жарияланғаннан кейінгі алғашқы 21 сағат ішінде осал жолдарға 18 500-ден астам сұранысты тіркеді.
Шабуыл қалай жұмыс істейді
Толық негізгі жаңарту кезінде WordPress келесі әрекеттерді орындайды:
- Мұрағатты жаңа нұсқасымен жүктейді.
- Оны ішіндегі уақытша қалтаға шығарады
wp-content/upgrade/. - Файлдарды тікелей сайтқа көшіреді.
- Уақытша қалтаны жояды.
Мәселе уақытша қалтаның орналасқан жерінде болжамды жол және бар браузерден қолжетімдіІшінде WordPress-тің толық көшірмесі, соның ішінде setup-config.php орнатушы.
Жаңарту жұмыс істеп тұрған кезде, шабуылдаушы осы орнатушыны ашып, онымен жұмыс істей алады. Нәтижесінде, олар тірі нұсқаны ауыстыра алады wp-config.php және сайтты өздерінің бос дерекқорына бағыттайды. Содан кейін WordPress «орнатуды» ұсынады — шабуылдаушы оны аяқтайды, әкімші болады және серверде өзінің PHP кодын іске қосады.
Шабуыл терезесі - жаңартуға кететін бірнеше секунд. Бұл шабуылды іс жүзінде жүзеге асыруды қиындатады, бірақ жаппай сканерлер осал жолдарды үнемі тексеріп, дәл сол уақытқа сәйкес келетініне сенеді.
7.1.4 нұсқасы уақытша қалта атауын кездейсоқ түрде таңдайды, тікелей кіруден қорғауды қосады және конфигурацияның уақытша көшірмеден көшірілуін блоктайды.
Timeline
| дата | оқиға |
|---|---|
| Қазан 28, 2026 | WordPress 7.1.4 және ескі тармақтарға арналған бекітілген нұсқалары жарияланды |
| Қазан 30, 2026 | Алғашқы пайдалану әрекеттері тіркелді |
| Қазан 31, 2026 | Осалдыққа CVE-2026-119977 тағайындалған |
| Қараша 3, 2026 | CISA KEV каталогына осалдық қосады |
Түзетілген нұсқалар
Түзету 4.7 нұсқасына дейінгі барлық қолдау көрсетілетін тармақтарға көшірілді. Біз ең соңғы нұсқасына, 7.1.4 нұсқасына жаңартуды ұсынамыз.
| филиал | Түзетілген нұсқасы |
|---|---|
| 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 | Әрбір тармақ үшін бекітілген босату, 4.7.39 дейін төмендейді |
4.6 және одан бұрынғы нұсқалары жөнделмеді. Бұл сайттарды ағымдағы нұсқаға жаңарту немесе пайдаланудан шығару қажет.
1-қадам. WordPress нұсқаңызды тексеріңіз
Басқару тақтасында: Басқару тақтасы → Жаңартулар . Автоматты жаңартуларға сенбеңіз — олар іске қосылмаған болуы мүмкін: олар өшірілуі, файл рұқсаттарына байланысты істен шығуы немесе плагинмен қайта анықталуы мүмкін.
WP-CLI көмегімен:
wp core version
Егер сізде серверде бірнеше сайт болса, әрбір WordPress орнатылымын және оның нұсқасын келесідей таба аласыз:
find /var/www -path '*/wp-includes/version.php' -exec grep -H "wp_version =" {} \;
ауыстырыңыз /var/www сайттарыңыз орналасқан каталогпен.
2-қадам. wp-content/upgrade/ (VPS және арнайы серверлер үшін) кіруді бұғаттау
Бұл ең маңызды шара. Ол сіздің WordPress нұсқаңызға қарамастан шабуыл терезесін жабады және жаңартуларға кедергі келтірмейді: WordPress бұл қалтамен веб арқылы емес, файлдық жүйе арқылы жұмыс істейді. Мұны жаңарту алдында орындаңыз , себебі шабуыл дәл жаңарту кезінде болады.
nginx
Мұны өз сайтыңызға қосыңыз server блок:
location ^~ /wp-content/upgrade/ {
deny all;
}
Конфигурацияны тексеріп, nginx қайта жүктеңіз:
nginx -t && systemctl reload nginx
Apache және LiteSpeed
Осыны қосыңыз .htaccess сайттың түбірлік файлында, Жоғарыда көрсетілген стандарт # BEGIN WordPress блок:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^wp-content/upgrade/ - [F,L]
</IfModule>
Егер сізде Apache виртуалды хост конфигурациясына кіру мүмкіндігі болса, онда каталогты бұғаттау сенімдірек болады:
<Directory "/var/www/example.com/wp-content/upgrade">
Require all denied
</Directory>
Жолды өзіңіздікімен ауыстырыңыз және Apache-ді қайта жүктеңіз:
apachectl configtest && systemctl reload apache2
AlmaLinux, Rocky және басқа RHEL негізіндегі жүйелерде қызмет деп аталады httpd.
Блоктың жұмыс істеп тұрғанын тексеріңіз
curl -I https://example.com/wp-content/upgrade/
Жауап кодты қайтаруы керек 403.
3-қадам. Сақтық көшірме жасаңыз
Жаңартпас бұрын, сайт файлдары мен дерекқорының сақтық көшірмесін жасаңыз. WP-CLI арқылы:
wp db export ~/backup-$(date +%F).sql
tar -czf ~/site-files-$(date +%F).tar.gz -C /var/www/example.com .
Егер сізде VPS болса, басқару панелінде сервердің суретін түсіруге де болады.
4-қадам. WordPress жаңарту
Әкімші панелі немесе WP-CLI арқылы
Егер сізде кіру мүмкіндігі бұғатталған болса wp-content/upgrade/ (2-қадам), әдеттегідей жаңартыңыз — әкімші панелінен немесе WP-CLI арқылы:
wp core update
wp core update-db
wp core version
Соңғы команда 7.1.4 немесе сіздің филиалыңыз үшін бекітілген нұсқаны көрсетуі керек.
Қолмен, шабуыл терезесі жоқ
Егер сіз веб-сервер деңгейінде каталогқа кіруді бұғаттай алмасаңыз (мысалы, оның конфигурациясына кіру мүмкіндігіңіз болмаса), қолмен жаңарту қауіпсізірек. Мұрағат сайттың түбірінен тыс шығарылады және файлдар тимей көшіріледі. 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
Содан кейін файлдың меншік құқығын қалпына келтіріңіз (мысалы, веб-сервер пайдаланушысы әртүрлі болуы мүмкін) nginx or apache) және дерекқорды жаңартыңыз:
chown -R www-data:www-data /var/www/example.com
wp core update-db
Соңғы команданың орнына сіз аша аласыз https://example.com/wp-admin/upgrade.php Сіздің браузеріңізде.
Плагиндер мен тақырыптарды ұмытпаңыз
wp plugin update --all
wp theme update --all
5-қадам. Сайтыңызды ымыраға келу белгілеріне тексеріңіз
Егер сіздің сайтыңыз 28 қазаннан кейін осал нұсқадан жаңартылған болса, ешкімнің шабуылды пайдаланбағанына көз жеткізіңіз.
Журналдардағы уақытша орнатушыларға арналған сұраулар:
# nginx
grep -E "wp-content/upgrade/.*\.php" /var/log/nginx/access.log*
# Apache
grep -E "wp-content/upgrade/.*\.php" /var/log/apache2/access.log*
Сұраныстары бар 200 жауап коды әсіресе күдікті.
wp-config.php файлын ауыстырыңыз: файлдың өзгертілген күнін және дерекқорға қосылу параметрлерін тексеріңіз.
ls -l /var/www/example.com/wp-config.php
grep -E "DB_(NAME|USER|HOST)" /var/www/example.com/wp-config.php
Негізгі файл тұтастығы:
wp core verify-checksums
Таныс емес PHP файлдары мен әкімшілері:
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
Егер сіз ауыстыратынын тапсаңыз wp-config.php, таныс емес әкімшілер немесе күтпеген PHP файлдары, сайт бұзылған деп қарастырады. Оны 28 қазанға дейін жасалған сақтық көшірмеден қалпына келтіріңіз, WordPress-ті жаңартыңыз және барлық құпия сөздерді өзгертіңіз: әкімші, дерекқор, FTP және SSH.
Егер мердігер сіздің учаскеңізді күтіп ұстаса
Бұл мақаланы оларға жіберіп, сайттың түзетілген нұсқасына жаңартылғанын және бұзылу белгілері бар-жоғы тексерілгенін растауды сұраңыз.
Көмек қажет?
Мұны өзіңіз шеше алатыныңызға сенімді емессіз бе немесе күдікті файлдарды таптыңыз ба? Біздің қолдау көрсету тобына хабарласыңыз — біз сізге мәселені шешуге көмектесеміз.