Последен ъпдейт на 4 май 2020 в 11:58 ч.
Критична уязвимост в популярният проект с отворен код OpenWrt позволява отдалечено изпълнение на код (RCE). Linux-базираната операционна система е широко използвана за рутери, защитни стени и други мрежови устройства.
CVE-2020-7982 уязвимостта се корени в мениджъра за обработка на пакети OPKG и именно в това, как той проверява интегритета на свалените файлове използвайки контролни суми, базирани на хеш алгоритъма SHA-256, вградени в подписания индекс на хранилището. За нея вече има и proof-of-concept.
Как работи уязвимостта
Когато бъде изпълнена командата за инсталация „opkg install’ върху уязвимото устройство, това ще доведе до възможността на отдалечен нападател да се постави в ролята на човек в средата (man-in-the-middle). По този начин може да инжектира и да изпълни производен код като се възползва от уязвимостта, като крайният резултат е инсталиране на зловреден пакет или софтуерен пач, без той да бъде проверен и удостоверен за автентичност.
Ако уязвимостта бъде експлоатирана успешно, нападателят ще си осигури пълен контрол върху мрежовото устройство с OpenWrt, което автоматично означава, че ще има пълен контрол и върху мрежовия трафик, преминаващ през него.
3-годишната уязвимост е била открита по-рано тази година от Guido Vranken, служител в софтуерната компания ForAllSecure, който след откриването ѝ се е обърнал към разработчиците на OpenWrt.
В публикувания пост от Vranken той обяснява, че когато контролна сума съдържа водещи празни знаци („any leading spaces“), OPKG мениджъра в уязвимите версии на OpenWrt пропуска проверката за интегритета на свалените пакети и директно подхожда към тяхното инсталиране.
“Базирайки се на факта, че OPKG в OpenWrt се изпълнява под контекста на root потребителя и по този начин има права за писане върху цялата файлова система, произволен код може да се инжектира в смисъла на подменени .ipk пакети със зловредно съдържание”, споделят от OpenWrt.
Отдалеченото експлоатиране на тази уязвимост е възможно поради факта, че в Linux ОС механизъма за инсталация на пакети , които са свалени през несигурна HTTP връзка, се основава на подписването на тези файлове чрез цифров подпис (digital signature).
Освен това, за да използват уязвимостта, нападателите също трябва да изпратят злонамерен пакет с размер, равен на посочения в списъка с пакети размери на downloads.openwrt.org.
Засегнати версии
Според екипа на OpenWrt са засегнати версии 18.06.0 до 18.06.6 и 19.07.0, както и LEDE 17.01.0 до 17.01.7.
„Като решение на проблема, OpenWRT премахна празните разстояния в SHA256 сумите от списъка с пакети, малко след като съобщих за грешката“, споделя Vranken.
„Това обаче не е адекватно дългосрочно решение, тъй като атакуващият може просто да предостави по-стар списък с пакети, подписан от разработчиците на OpenWRT,“ добавя той.
За да отстранят тази уязвимост, засегнатите потребители се съветват да ъпдейтнат фърмуера на своето устройство до най-новите версии на OpenWrt 18.06.7 и 19.07.1, които бяха пуснати миналия месец.