Наскоро разкрита уязвимост в Home Assistant разкрива как неправилното обработване на входни данни във FFmpeg може да бъде експлоатирано за кражба на чувствителни файлове и в крайна сметка да позволи изпълнение на команди с root права върху засегнатите системи.
Този проблем, открит от изследователи по сигурността от „elttam“, подчертава опасностите от интегрирането на мощни мултимедийни инструменти като FFmpeg в приложения без строга валидация на входните данни.
Home Assistant е широко използвана платформа с отворен код за умен дом, която поддържа огромна екосистема от устройства и услуги. Неговата гъвкавост и ориентирана към локално управление архитектура го правят популярен избор за потребители, които държат на поверителността си.
Въпреки това, неговото внедряване в рамките на доверени домашни мрежи го прави привлекателна цел за атакуващи, търсещи странично движение или пълно компрометиране на системата.
Уязвимостта се намира в интеграцията „Wyoming“, по-специално във функцията „announce“, използвана за възпроизвеждане на аудио. Тази функционалност разчита на FFmpeg за обработка на мултимедийни потоци, като подава предоставените от потребителя входни данни директно като аргумент на команда. Въпреки че това не е класически дефект за инжектиране на команди, то позволява инжектиране на аргументи, което позволява на атакуващите да манипулират начина, по който FFmpeg интерпретира входните източници.
Изследователите установиха, че макар някои протоколи като HTTP и HTTPS да са били ограничени с цел предотвратяване на фалшифициране на заявки от страна на сървъра (SSRF), няколко псевдопротокола на FFmpeg са останали разрешени. Те включват „file:“, „concat:“ и „subfile:“, които могат да бъдат верижно свързани за създаване на сложни входни потоци. Чрез използването на тези протоколи атакуващите биха могли да заобиколят контролите за валидация и да укажат на FFmpeg да чете произволни локални файлове.
Едно от ключовите предизвикателства при експлоатацията беше изискването на FFmpeg за валиден аудио вход. Директното четене на чувствителни файлове като „/proc/self/environ“ би пропаднало, тъй като те не съдържат правилни аудио заглавки. За да преодолеят това ограничение, изследователите от „elttam“ разработиха техника, която конструира синтетична аудио заглавка чрез повторно използване на конкретни диапазони от байтове, извлечени от съществуващ двоичен файл на целевата система. Тези фрагменти са комбинирани с помощта на псевдопротоколите на FFmpeg за създаване на валиден поток, което позволява съдържанието на целевия файл да бъде обработено и извлечено.
Чрез използването на този метод атакуващите биха могли да извлекат променливи на средата, включително изключително чувствителния „SUPERVISOR_TOKEN“. Този токен осигурява привилегирован достъп до API на супервайзора на Home Assistant, което може да бъде експлоатирано за изпълнение на команди с root права на хост системата. Резултатът е пълно компрометиране на инстанцията на Home Assistant и потенциално на основната операционна система.
Успешната експлоатация изисква специфични условия. Атакуващият трябва да контролира сателит „Wyoming Assist“, който е сдвоен с целевата инстанция, което обикновено изисква достъп до локалната мрежа по време на конфигурирането. Освен това е необходим валиден API токен на Home Assistant за задействане на уязвимата крайна точка за анонсиране. Въпреки тези ограничения, атаката може да има значително въздействие в реални сценарии, особено в среди, където атакуващите вече са придобили ограничен достъп.
Проблемът е коригиран в Home Assistant Core версия 2026.6.2. Корекцията за сигурност въвежда строг списък с разрешени протоколи за FFmpeg, ограничавайки разрешените входни източници до безопасни опции като HTTP, HTTPS, file, TCP и TLS. Важно е да се отбележи, че обновяването гарантира, че списъкът с разрешени адреси се прилага преди аргумента за въвеждане, предотвратявайки заобикаляния поради поведението на FFmpeg при анализиране на аргументи.
Тази уязвимост подчертава по-широк урок по сигурност: дори утвърдени инструменти като FFmpeg могат да станат опасни, когато се интегрират без внимателно обработване на входните данни. Тъй като платформите за умни домове продължават да разширяват възможностите си, осигуряването на сигурни взаимодействия между компонентите остава от решаващо значение за предотвратяването на сложни вериги от атаки.