Злонамерено HEIC изображение може да се превърне в вектор за отдалечено изпълнение на код (RCE) на WordPress сървър. Изследователи са демострирали верига от атаки, която превръща стандартно качване в Медийната библиотека в изпълнение на код в PHP-FPM процеса, управляващ сайта.

Рискът произтича от libheif — широко използван компонент, който чете HEIC, HEIF и AVIF файлове. Когато WordPress изпрати качено изображение към ImageMagick за промяна на размера, специално изработен файл може да достигне до уязвимия декодер и да компрометира паметта, вместо да генерира изображение.

Изследователи от Fortbridge са идентифицирали повторим път, който комбинира грешката при обработката на изображения с изтичане на данни от паметта през създадените от WordPress JPEG производни файлове.

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

Трите потвърдени системни стека (Източник - Fortbridge)
Двата потвърдени системни стека (Източник – Fortbridge)

Демонстрираният сценарий изисква влязъл в системата WordPress потребител с правото upload_files, обикновено с роля Автор или по-висока. Fortbridge не са тествали качване от неавтентифицирани гости и не са документирали активна кампания с зловреден софтуер.

Констатациите демонстрират лабораторна експлоатация, а не потвърдена епидемия, засягаща WordPress сайтове по целия свят. В доклад, споделен с Cyber Security News (CSN), Fortbridge посочват, че веригата е валидирана върху два конкретни Linux софтуерни стека.

Злонамерени HEIC изображения могат да предизвикат отдалечено изпълнение на код

Основната грешка, проследявана като GHSA-x8r2-mggj-j6wr, засяга декодера за некомпресирани изображения в libheif. Злонамерен файл може да декларира два цветни канала с различна байтова ширина.

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

Това препълване може да промени близки данни на програмата. В тестваната верига то променя референция към C++ обект и по-късно пренасочва виртуално извикване на функция по време на почистването на декодера.

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

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

Специално изработеното изображение контролира vptr на декодера (Източник - Fortbridge)
Специално изработеното изображение контролира vptr на декодера (Източник – Fortbridge)

Fortbridge са изградили веригата от атаки, докато Alex Thomas и Wordfence са открили препълването. Това не е универсален експлойт за всяка инсталация на WordPress.

Валидираните профили са Ubuntu 26.04 с WordPress 7.1.1, PHP-FPM 8.5.4, ImageMagick 7.1.2.18 и libheif 1.21.2, както и Debian 13 с WordPress 7.0, PHP-FPM 8.4.24, ImageMagick 7.1.1.43 и libheif 1.19.8.

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

Мерки за защита

Fortbridge съобщават за успешно изпълнение на код в шест от осем чисти родителски процеса на Ubuntu PHP-FPM и в 22 от 24 родителски процеса на Debian при контролираните профили.

Зловредният код се изпълнява с акаунта на PHP-FPM (който в лабораторната среда е www-data), демонстрирайки изпълнение с правата на уеб услугата. Сривът на работен процес сам по себе си не е зачетен като доказателство за успешна експлоатация.

Администраторите трябва незабавно да обновят libheif. GHSA-x8r2-mggj-j6wr засяга версии от 1.18.0 до 1.23.2 и е отстранена в 1.23.3.

Свързан проблем с изтичане на информация, GHSA-2jg2-4ch7-h545, е коригиран в версия 1.23.2. Екипите трябва да инсталират актуализациите за сигурност от съответната дистрибуция и да потвърдят коя библиотека действително се зарежда от стека за изображения.

Сайтове, които нямат нужда от качване на HEIC или AVIF файлове, трябва да ги блокират преди системното декодиране. Операторите могат също така да премахнат некомпресирания кодек от персонализирани състави на libheif, да обработват ненадеждни медийни файлове в изолирана среда с ниски права, да ограничат изходящия мрежов достъп и да съхраняват тайните на приложението извън работните процеси за изображения.

Тези предпазни мерки съответстват на поуките от уязвимост при качване в WordPress Imagick и скорошно доказателство за RCE в ImageMagick, където конвертирането на сървъра създава опасна граница.

Екипите за защита трябва да разследват многократни неочаквани спирания на работните процеси на PHP-FPM и грешки HTTP 503, следващи качване на HEIC файлове, особено такива, съдържащи референции към unci, iden, crop, overlay или grid.

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

Индикатори за компрометиране (IoCs):-

ТипИндикаторОписание
Име на файлrce-proof.txtПът за потвърждение в Debian, използван от веригата за валидация на Fortbridge за потвърждаване на изпълнението на код.

Забележка: IP адресите и домейните са нарочно неутрализирани (напр. [.]), за да се предотврати случайно разрешаване или отваряне на връзки. Възстановете оригиналния им вид само в рамките на контролирани платформи за разузнаване на заплахи като MISP, VirusTotal или вашия SIEM.

Спрете заплахите преди да нанесете щети с 21 минути по-бързо MTTR. Интегрирайте изолираната среда (Sandbox) на ANYRUN във вашия SOC