Уязвимост с максимална степен на сериозност в плъгина GiveWP за WordPress позволява на неаутентикиран атакуващ да изпълнява произволни команди на хостващия сървър.

Проблемът със сигурността е идентифициран като CVE-2026-82222 и засяга GiveWP до версия 4.16.7.1 включително. Той беше докладван от изследователя на софтуерни грешки Удин Чан на 28 юли чрез платформата за разкриване на уязвимости Patchstack.

Плъгинът GiveWP има над 100 000 инсталации и позволява събирането на дарения и управлението на кампании за набиране на средства.

Изследователите от Patchstack обясняват, че експлоатирането на уязвимостта е възможно чрез верижно свързване на три отделни проблема:

  • Несигурна помощна функция за десериализация на PHP данни
  • Процес за обработка на дарения, който съхранява контролирани от атакуващия сериализирани обекти
  • Верига от джаджи (gadget chain) в библиотеките, пакетирани с плъгина, която може да задейства произволни системни команди

Успешното експлоатиране зависи от това дали атакуващият има акаунт в целевия сайт. Въпреки това от Patchstack посочват, че налична неаутентикирана процедура за регистрация позволява създаването на акаунт, дори ако регистрацията е деактивирана.

„GiveWP излага на показ неаутентикирано действие за регистрация (give_action=user_register), което никога не проверява опцията users_can_register на WordPress“, обясняват от Patchstack.

„Дори на сайт с деактивирана регистрация, атакуващият може да създаде акаунт и да получи бисквитка за автентикация, след което да извърши останалата част от атаката в същата последователност.“

След автентикация киберпрестъпниците могат да съхранят злонамерен сериализиран обект в профила си и да го инжектират в базата данни за сесии на плъгина чрез изпращане на специално изготвено дарение.

„Сървърът записва обекта на джаджата в wp_give_sessions, преди да върне HTTP грешка 500“, казва Джордж Джонстоун, изследовател по киберсигурност в Patchstack.

При заявка към която и да е публична страница с бисквитката за автентикация, сървърът десериализира джаджата и изпълнява командата от атакуващия.

Версиите от 4.16.6 до 4.16.7.1 остават уязвими, въпреки че експлоатацията изисква сайтът да съдържа наследствена форма за дарения без „formBuilderSettings“.

От Patchstack коментират, че такива условия могат да съществуват при надградени инсталации, сайтове, използващи редактора на форми на плъгина, базиран на опции, или при импортиране или възстановяване на по-стари форми.

Разработчиците на GiveWP коригираха уязвимостта във версия 4.16.7.2, пусната на 27 август, като блокираха сериализираните данни по време на обработката на дарения и ограничиха създаването на обекти в няколко точки на десериализация.

Освен това обновяването за сигурност премахва злонамерения код под формата на сериализирани обекти, които вече са записани в засегнатите бази данни.

Patchstack обаче отбелязва, че действието за регистрация на GiveWP все още не зачита настройките за регистрация на потребители в WordPress, но този проблем вече не може да се експлоатира за изпълнение на код.

Администраторите на уебсайтове, които използват GiveWP, се призовават да инсталират корекциите за сигурност възможно най-скоро, за да предотвратят злонамерено експлоатиране на CVE-2026-82222.

Миналата година киберпрестъпници се прицелиха в GiveWP, за да компрометират непряко Pi-hole – популярен софтуер за блокиране на реклами на мрежово ниво, разкривайки имената и имейл адресите на 30 000 дарители.