НОВИНА
Checkout Files Upload за WooCommerce приема файлове от всеки. Вижте дали Вашият е засегнат
Сигурност

Rank Math SEO поправя пробив до изпълнение на код на сървъра

# ЕтикетиСигурностWordPressSEO
Екипът на WPhost10 мин четене

На 27 октомври 2026 г. Wordfence разкри уязвимост в безплатния плъгин Rank Math SEO, която може да завърши с изпълнение на чужд код на сървъра (CVE-2026-1928). Засегнати са всички версии до 1.0.276 включително. Поправката е във версия 1.0.277 от 26 август, така че сайт, който обновява плъгините си редовно, вероятно вече я има. Wordfence оценява уязвимостта с 8.8 по CVSS, „висока“. Според wordpress.org плъгинът има над 4 милиона активни инсталации.

За атаката е нужен акаунт в сайта с роля „сътрудник“ (Contributor) или по-висока. Това е отделен проблем от задната врата в Rank Math PRO 3.0.123, за която писахме през октомври. Тогава зловреден код беше попаднал в част от копията на платения плъгин. Сега става дума за грешка в кода на безплатния Rank Math SEO от каталога на wordpress.org.

Как работи уязвимостта

Rank Math пази част от SEO настройките на всяка публикация в базата данни, включително структурираните данни (schema), по които Google разбира какво има на страницата. Когато някой запише публикацията в редактора, плъгинът праща промените към собствения си адрес updateMeta в REST API на WordPress. През същия адрес се трие и schema от публикацията.

Част от данните в WordPress се пазят в сериализиран вид, тоест като текст, от който PHP сглобява обратно масиви и обекти. Когато WordPress чете такава стойност от базата, той сам я сглобява. Във версия 1.0.276 при изтриване на schema Rank Math взема вече сглобената стойност и я пуска през maybe_unserialize() още веднъж. Ако в базата е записан текст, който сам прилича на сериализиран обект, при второто минаване от него се сглобява истински PHP обект, при това от клас по избор на нападателя. Това се нарича PHP Object Injection.

Самият обект още не е пробив. Нападателят има нужда и от така наречената POP верига, поредица от вече съществуващ код, която обектът задейства. Според записа в CVE с такава верига той записва уеб шел в папката за качени файлове wp-content/uploads. Уеб шелът е PHP файл, през който се пускат команди на сървъра направо от браузъра. С него нападателят има пълен контрол над сайта.

Сравнихме кода на 1.0.276 и 1.0.277. Новата версия маха второто сглобяване и ползва стойността така, както я връща WordPress. В същия файл е добавена и проверка, че schema записът, който се променя, принадлежи на публикацията, която се редактира. В списъка с промени на 1.0.277 има само общ ред за подобрена сигурност, без номер на уязвимост.

Според записа в CVE Wordfence е уведомил Rank Math на 4 февруари 2026 г. Към 29 октомври CISA отбелязва в записа, че няма данни за атаки и че атаката не може да се автоматизира, а техническото въздействие оценява като пълно. Записът сочи и точните редове в кода, което улеснява всеки, който иска да използва уязвимостта. Какво значи оценка 8.8, е обяснено в ръководството за CVSS.

Кои сайтове са изложени

Сътрудникът може да пише и да редактира своите публикации, но не може да ги публикува. Затова тази роля се дава лесно, на хора, на които никога не бихте дали администрацията. За тази уязвимост обаче толкова стига. Стига и всяка по-висока роля, като автор, редактор или мениджър на магазина в WooCommerce.

  • Сайтове с няколко автора. Фирмен блог, в който пишат няколко души, или новинарски сайт с екип от редактори.
  • Гост автори. Акаунт, отворен за една статия на външен автор, често остава активен години след това.
  • Магазини, в които служителите имат акаунти. Ролята Shop manager на WooCommerce има всички права на сътрудника и много повече. Акаунтите на служители, които вече не работят при Вас, са същият риск.
  • Сайтове с отворена регистрация. Ако в Settings > General е отметнато „Anyone can register“, а „New User Default Role“ е Contributor, всеки може да си направи нужния акаунт. По подразбиране ролята е Subscriber, която не стига за атаката.

Клиентите на WooCommerce получават роля Customer, която може само да чете, като абоната. Тя е под сътрудника, така че обикновен клиентски профил не стига. Нападателят обаче не е задължително човек от екипа. Стига му паролата на такъв акаунт, изтекла от друг сайт или налучкана.

Засегнат ли е Вашият сайт?

Версията се вижда в Plugins > Installed Plugins. В Terminal на cPanel командата по-долу показва плъгините на Rank Math и версиите им. Как се работи с WP-CLI, е описано в ръководството за WP-CLI.

Bash
# cPanel > Terminal, в папката на сайта
# Само чете. Показва плъгините на Rank Math и версиите им.
wp plugin list --fields=name,status,version \
  --skip-plugins --skip-themes | grep -i rank

Безплатният плъгин е на реда seo-by-rank-math. Ако версията му е 1.0.277 или по-нова, тази уязвимост е затворена. Rank Math PRO работи само заедно с безплатния плъгин, така че сайт с PRO също има уязвимия код, ако безплатният не е обновен.

Следващата команда показва кои потребители имат роля от сътрудник нагоре и дали регистрацията е отворена. Тя също нищо не променя.

Bash
# cPanel > Terminal, в папката на сайта
# Само чете. Потребители с роли от сътрудник нагоре.
for r in contributor author editor shop_manager; do
  echo "== $r"
  wp user list --role="$r" \
    --fields=ID,user_login,user_email,user_registered \
    --skip-plugins --skip-themes
done
wp option get users_can_register --skip-plugins --skip-themes
wp option get default_role --skip-plugins --skip-themes

Прегледайте всяко име в списъка и се запитайте дали този човек още пише за сайта или работи с него. Ако предпоследната команда върне 1, регистрацията е отворена, а последната показва с каква роля влизат новите потребители. Администраторите не са в списъка, но и те стигат за атаката, затова ги проверете отделно с wp user list --role=administrator.

Какво да направите

  1. Направете бекъп на файловете и базата данни, както е описано в ръководството за бекъп. После обновете Rank Math SEO от Dashboard > Updates до 1.0.277 или по-нова версия, най-добре до последната, 1.0.281 от 3 ноември. Ако ползвате и PRO, обновете първо безплатния плъгин. Как да обновявате без изненади, е описано в ръководството за обновяване на плъгини.
  2. Изтрийте акаунтите, които никой не ползва, и сменете на Subscriber ролята на хората, които вече не пишат. Ако не знаете дали паролите на останалите са силни, помолете ги да ги сменят.
  3. Ако регистрацията е отворена с роля Contributor, затворете я или сменете „New User Default Role“ на Subscriber в Settings > General.
  4. Потърсете PHP файлове в папката за качени файлове. Там би трябвало да има само снимки и документи.

Командата по-долу изброява PHP файловете в wp-content/uploads с датата и размера им. Тя само чете.

Bash
# cPanel > Terminal, в папката на сайта
# Само чете. PHP файлове в папката с качените файлове.
find wp-content/uploads -type f \
  \( -name "*.php" -o -name "*.phtml" \) -ls

Някои плъгини слагат там празен index.php, за да не се вижда съдържанието на папката, и това е нормално. Всеки друг PHP файл е повод за тревога. В такъв случай следвайте ръководството за хакнат сайт или се обърнете към спешната помощ. Празен отговор е добър знак, но не доказва, че сайтът е чист.

Какво правим ние

При наблюдението на уязвимостите следим какво е инсталирано на сайта Ви и всеки ден го сверяваме с базите данни с уязвимости (CVE). Щом се появи уязвимост в нещо, което използвате, изпращаме Ви сигнал и обновяваме, като първо пробваме обновлението на копие в staging. Сайтът може да е хостнат където и да е. Ако искате да включим и Вашия сайт, пишете ни през формата за запитване.

Често задавани въпроси

Какво е CVE-2026-1928 в Rank Math SEO?

Уязвимост от типа PHP Object Injection в безплатния плъгин Rank Math SEO, разкрита от Wordfence на 27 октомври 2026 г. Потребител с роля сътрудник или по-висока може през адреса updateMeta в REST API да накара плъгина да сглоби PHP обект по негов избор и така да запише уеб шел в wp-content/uploads. Оценката е 8.8 по CVSS, „висока“.

Коя версия на Rank Math SEO поправя уязвимостта?

Версия 1.0.277 от 26 август 2026 г. Засегнати са всички версии до 1.0.276 включително. Последната версия към 9 ноември 2026 г. е 1.0.281 от 3 ноември.

Свързана ли е CVE-2026-1928 със задната врата в Rank Math PRO?

Не. Задната врата от октомври 2026 г. беше зловреден код в част от копията на платения Rank Math PRO 3.0.123. CVE-2026-1928 е грешка в кода на безплатния Rank Math SEO до 1.0.276. Сайт с PRO обаче винаги има и безплатния плъгин, затова трябва да е обновен и той.

Могат ли клиентите на WooCommerce магазин да използват уязвимостта в Rank Math SEO?

С обикновен клиентски профил не могат. WooCommerce дава на клиентите роля Customer, която може само да чете, а за CVE-2026-1928 е нужна роля сътрудник или по-висока. Ролята Shop manager на служителите в магазина обаче стига.

Атакува ли се вече уязвимостта в Rank Math SEO?

Към 29 октомври 2026 г. CISA отбелязва в записа на CVE-2026-1928, че няма данни за атаки и че атаката не може да се автоматизира. Записът сочи точните редове в кода, така че това може да се промени, и обновлението до 1.0.277 или по-нова версия не бива да чака.

Как да видя кои потребители имат роля сътрудник или по-висока?

В администрацията отворете Users и филтрирайте по роля. В Terminal на cPanel командата wp user list --role=contributor --fields=ID,user_login,user_email показва сътрудниците, а със author, editor, shop_manager и administrator вместо contributor виждате и останалите роли. Командата само чете.

Какво да направя, ако не мога да обновя Rank Math SEO веднага?

Сменете временно на Subscriber сътрудниците и авторите, които не Ви трябват точно сега, и затворете регистрацията в Settings > General. Друга възможност е да деактивирате Rank Math SEO, без да го изтривате. Настройките остават, но докато е изключен, страниците губят заглавията и описанията, които той добавя.

Как да разбера дали някой е използвал уязвимостта в Rank Math SEO?

Според записа на CVE-2026-1928 атаката завършва с уеб шел, PHP файл в wp-content/uploads. Потърсете PHP файлове там с find wp-content/uploads -type f -name "*.php" -ls, като празен index.php от плъгин е нормален. Проверете и списъка с администратори за непознати акаунти. Ако не намерите нищо, това е добър знак, но не доказва, че сайтът е чист.

Източници

# ЕтикетиСигурностWordPressSEO
СподелетеFacebookXLinkedIn