19 червня команда Threat Intelligence виявила вразливість у плагіні wpDiscuz . Це плагін WordPress, що встановлено на понад 80 000 сайтів. Цей недолік дав можливість неавторизованим зловмисникам завантажувати довільні файли, включаючи файли PHP, та отримати доступ до ураженого сайту.
19 липня 2020 року було випущено швидке виправлення, а 23 липня 2020 року – повне оновлення.
Це вважається критичною проблемою безпеки, яка може призвести до віддаленого виконання коду на сервері вразливого сайту. Якщо ви користуєтесь будь-якою версією від 7.0.0 до 7.0.4 цього плагіна, ми рекомендуємо негайно оновити до версії 7.0.5 чи вище.
wpDiscuz – плагін, призначений для додавання розширеного функціоналу коментарів на сайти WordPress. Це дозволяє користувачам обговорювати різні теми та легко додавати коментарі за допомогою візуального текстового редактора. Під час останнього апдейту плагіна версії 7.xx розробники додали можливість завантажувати зображення у коментарі. На жаль, для реалізації цієї функції не було використано достатню кількість засобів захисту, що створювало критичну вразливість.
Через використання функції визначення типу файлу mime, перевірку типу файлів можна було легко обійти, що дозволяє неавторизованим користувачам можливість завантажувати будь-який тип файлів, включаючи файли PHP.
Отримання типу mime
Функція ‘ getMimeType‘ використовувала три різні методи для визначення типу mime файлу. Перша використана перевірка mime_content_type, яка визначає тип файлу на основі вмісту файлу. Якщо ця функція PHP була недоступною, то буде використовуватись finfo_file, що також визначає тип mime файлу на основі вмісту файлу. Нарешті, якщо ця функція була недоступна, то використовується wp_check_filetype, що є специфічною функцією для WordPress, яка визначає тип mime файлу на основі імені файлу та перевіряє на співпадіння з списком дозволених типів файлів.
Більшість файлів починаються з декількох так званих “магічних байтів”, які можна використовувати для визначення їх типу Mime. На жаль, через те, як PHP обробляє файли, можна легко підробляти їх, що ті виглядати як дозволені файли зображень, просто додаючи магічні байти, характерні для зображення. Наприклад, користувач може вставити магічні байти для .png-файлу 89 50 4E 47 0D 0A 1A 0A, на початку файлу PHP і обдурити перші дві функції.
Можливості експлуатації
Це дало можливість зловмисникам створити будь-який тип файлу та додати функції ідентифікації зображень до файлів, щоб пройти перевірку вмісту файлу. Файл PHP, який намагається обійти цю перевірку, може виглядати приблизно так у запиті:
------WebKitFormBoundaryXPeRFAXCS9qPc2sB
Content-Disposition: form-data; name="wmu_files[0]"; filename="myphpfile.php"
Content-Type: application/php
‰PNG
Розташування шляху до файлу буде повернуто як частина відповіді на запит завантаження, що дозволяє користувачеві легко знаходити його місцезнаходження та отримувати доступ до файлу, який він завантажив на сервер. Це значить, що зловмисники можуть завантажувати довільні файли PHP, а потім отримувати доступ до цих файлів для запуску їх виконання на сервері, використавши їх для віддаленого виконання коду.
Ця вразливість може дозволити зловмиснику виконувати команди на вашому сервері , це фактично надасть зловмиснику повний контроль над кожним сайтом вашого сервера.
Спосіб залишатися захищеним.
Ось досить дієвий спосіб не тільки для цієї, а й для інших подібних вразливостей, через які можна завантажити файли у вашу папку із зображеннями – створіть в папці /catalog/images/ файл .htaccess з наступним вмістом:
<Files *.php>
deny from all
</Files>
<IfModule mod_php5.c>
php_flag engine 0
</IfModule>
<IfModule mod_php7.c>
php_flag engine 0
</IfModule>
AddHandler cgi-script .php .phtml .php3 .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI
Якщо цей файл додано – зловмисники не зможуть виконувати файли PHP, завантажені в каталог uploads, що забезпечить додатковий рівень безпеки та допоможе у запобіганні атакам на кшталт цієї.
Висновок
У сьогоднішньому дописі ми детально розповіли про вразливість у wpDiscuz, яка надавала неавторизованим користувачам можливість завантажувати довільні файли, включаючи файли PHP, та виконувати ці файли на сервері. Ця проблема була повністю виправлена у версії 7.0.5. Ми рекомендуємо користувачам негайно оновити до останньої доступної версії.
Нагадуємо також про НЕЙМОВІРНУ акційну пропозицію на послуги хостингу, яка скоро завершиться. Ви отримаєте 50% знижку при замовленні послуг на перший платіж, незалежно від обраного періоду, безкоштовний SSL-сертифікат та інші переваги. Детально за цим посиланням
Акція на хостинг, -50%
Ще цікаве:

Безкоштовні шаблони для WordPress
Ви придбали хостинг або тільки вирішили розпочати створення сайту для себе чи своєї справи? Ми спробуємо дещо полегшити вам задачу. Наша пропозиція З кожним замовленням хостингу, що оплачено на рік чи оплачувалось більше року, ви отримаєте невеличкий корисний сюрприз – встановлення шаблону для вордпрес на ваш новий сайт за усіма налаштуваннями, що ви побачите на демо цього шаблону. Таким чином, […]
Детальніше
Хакери масово атакують сайти WooCommerce через уразливість у плагіні Wholesale Lead Capture
Злочинці активно експлуатують критичну уразливість у популярному плагіні Wholesale Lead Capture для WooCommerce (WordPress). Проблема дозволяє зловмисникам завантажувати довільні файли на сервер без необхідності проходження автентифікації. У чому суть уразливості (CVE-2026-27540)? Вразливість отримала ідентифікатор CVE-2026-27540 та високий рейтинг небезпеки — 9.8 із 10 за шкалою CVSS. Головна причина проблеми — відсутність належної перевірки типів файлів під час обробки завантажень через […]
Детальніше
Критична вразливість All-in-One WP Migration: під загрозою понад 5 млн сайтів WordPress
Ця стаття має на меті попередити вас про CVE-2026-19949 — критичну вразливість типу SQL Injection у популярному плагіні All-in-One WP Migration and Backup для WordPress. Проблема зачіпає версії 7.109 і нижче та може бути використана неавторизованим зловмисником через функцію відновлення сайту з архіву. Розробник уже випустив виправлення. Користувачам плагіна рекомендується якнайшвидше оновити All-in-One WP Migration до версії 7.110 або новішої. […]
Детальніше