В проекта OpenWrt, в инструменте ASU (Attended SysUpgrade), бяха открити критични уязвимости (CVE-2024-54143), които позволяват компрометиране на сглобените артефакти, разпространявани чрез услугата sysupgrade.openwrt.org или трети ASU-сървъри, и инсталиране на модифицирани от злонамерени лица образи на фърмуера на системи на потребители, които използват режима «attended upgrade» чрез уеб интерфейса selector.openwrt.org или командния инструмент attended.sysupgrade.
За успешното провеждане на атака, на злонамерения агресор достатъчно е да изпрати заявка за генериране на сборка на ASU сървъра (такива заявки всеки потребител може да изпрати без удостоверяване). Чрез манипулации с подготвен списък с пакети, атакуващият може да организира изпращането на предварително генерирани злонамерени образи в отговор на легитимни сборни заявки от други потребители.
ASU услугата се използва в OpenWrt за генериране и инсталиране на обновления на фърмуера без загуба на съществуващите настройки и инсталирани пакети от потребителя. Чрез уеб интерфейса или командния инструмент, потребителят изпраща заявка за генериране на обновен образ на фърмуера, посочвайки инсталираните пакети в системата си. След определено време, ASU сървърът генерира образ, съответстващ на заявеното съдържание, след което потребителят го изтегля и инсталира на своята устройство. Допълнително се предоставя опция, позволяваща запазване на съществуващите настройки в обновената версия на фърмуера.
ASU сървърът отговаря за обработката на потребителските заявки, стартирайки автоматично генериране на образи на фърмуера чрез инструмента ImageBuilder, както и поддържайки кеш от предишни сглобки. В случай, че потребителят поиска образ, който вече е бил сглобен преди сървър и е актуален, системата веднага предоставя наличния образ от кеша без да стартира процеса на сглобяване.
Поведението на атаката стана възможно благодарение на две уязвимости:
- Уязвимост в обработчика на заявки build_reques.py, който е част от инструмента Imagebuilder, позволяваща да се подменят собствените команди в процеса на сглобяване чрез предаване на специално подготвени имена на пакети от потребителя. Уязвимостта е причинена от липсата на адекватна проверка на специални символи в имената на пакетите, преди да бъдат използвани като аргументи на утилитата make. Използвайки тази уязвимост, атакуващият може да генерира на сървъра злонамерени образи на фърмуера, подписани с валиден ключ за сглобка.
- Уязвимост в библиотеката util.py, причинена от факта, че SHA-256 хешовете, използвани за проверка наличието в кеша на вече готови образи на фърмуера, са били скъсени до 12 символа, което значително намалило нивото на ентропия и позволява на нападателя да изготви злонамерен образ, чийто хеш съвпада с легитимния образ чрез подбор на колизии. В комбинация с уязвимост в Imagebuilder, проблемът с хешовете можеше да бъде използван от нападателя за „замърсяване“ на кеша на ASU Server и разпространение на злонамерени образи, предоставяни на запитвания от обикновени потребители.
Промяната, след която стана възможно извършването на атака, беше направена на 8 юли. Проблемът беше отстранен на 4 декември. За осигуряване на работата на услугата ASU бяха използвани отделни сървъри, несвързани с основните системи за сборка на проекта, отделени от OpenWrt Buildbot и без достъп до конфиденциални ресурси, като SSH-ключове и сертификати за генериране на цифрови подписи.
Твърди се, че разработчиците на OpenWrt не са намерили следи от компрометиране на инфрасруктурата на проекта, но за да се застраховат, те изцяло преинсталираха системите, на които са изпълнявани уязвимите компоненти. Проблемът не е засегнал официалните образи, разпространявани през сайта downloads.openwrt.org, а при анализа на логовете за сборки не бяха открити следи от изпращане на злонамерени заявки. В същото време, тъй като на сереверите на ASU се извършва автоматично почистване на сборките на възраст над 7 дни, проведението на одит на старите сборки се оказа невъзможно.
Вероятността за използване на откритите уязвимости на практика за разпространение на злонамерени образи чрез инфраструктурата на OpenWrt се оценява от представителите на OpenWrt като близка до нулата, все пак на потребителите на ASU се препоръчва да заменят фърмуера на OpenWrt на своите устройства с една и съща версия.
Източник: opennet.ru
