Абнаўленне OpenWrt 19.07.1 з ухіленнем уразлівасці, якая дапускае падмену пакетаў

Апублікаваны карэкціруючыя выпускі дыстрыбутыва OpenWrt 18.06.7 и 19.07.1, у якіх ухілена небяспечная ўразлівасць (CVE-2020-7982) у пакетным мэнэджэры опкг, Якая дазваляе ажыццявіць MITM-напад і падмяніць змесціва загружанага з рэпазітара пакета. З-за памылкі ў кодзе праверкі кантрольных сум, атакавалы можа стварыць умовы, пры якіх кантрольныя сумы SHA-256, якія прысутнічаюць у завераным лічбавым подпісам індэксе пакетаў, будуць ігнараваныя, што дае магчымасць абыйсці механізмы праверкі цэласнасці загружаных ipk-рэсурсаў.

Праблема праяўляецца з лютага 2017 года, пасля дадання кода для ігнаравання пачатковых прабелаў, якія ідуць перад кантрольнай сумай. З-за памылкі пры пропуску прабелаў не зрушваўся паказальнік на пазіцыю ў радку і цыкл дэкадавання шаснаццатковай паслядоўнасці SHA-256 адразу вяртаў кіраванне і аддаваў кантрольную суму нулявой даўжыні.

Бо пакетны мэнэджар opkg у OpenWrt запускаецца з правамі root, то ў выпадку арганізацыі MITM напады зламыснік мае магчымасць неўзаметку занесці змены ў ipk-пакет, загружаны з рэпазітара падчас выкананні карыстачом каманды «opkg install», і арганізаваць выкананне свайго кода з правамі root праз даданні ў пакет уласных скрыптоў-апрацоўшчыкаў, якія выклікаюцца пры ўсталёўцы. Для эксплуатацыі ўразлівасці атакавалы таксама павінен арганізаваць падмену карэктнага і падпісанага азначніка пакетаў (напрыклад, які аддаецца з downloads.openwrt.org). Памер змененага пакета павінен адпавядаць зыходнаму памеру, вызначанаму ў індэксе.

У сітуацыі, калі неабходна абыйсціся без абнаўлення ўсёй прашыўкі, можна абнавіць толькі пакетны мэнэджар opkg, выканаўшы наступныя каманды:

кд / TMP
абнаўленне opkg
opkg download opkg
zcat ./opkg-lists/openwrt_base | grep -A10 "Package: opkg" | grep SHA256sum
sha256sum ./opkg_2020-01-25-c09fe209-1_*.ipk

Далей варта параўнаць паказаныя кантрольныя сумы і калі яны супадаюць выканаць:

opkg install ./opkg_2020-01-25-c09fe209-1_*.ipk

У новых версіях таксама ўхілена яшчэ адна уразлівасць у бібліятэцы libubox, якая можа прывесці да перапаўнення буфера пры апрацоўцы ў функцыі blobmsg_format_json спецыяльна аформленых серыялізаваных бінарных дадзеных або даных у фармаце JSON. Бібліятэка выкарыстоўваецца ў такіх кампанентах дыстрыбутыва, як netifd, procd, ubus, rpcd і uhttpd, а таксама ў пакеце аўкцыён (Attended sysUpgrade CLI). Перапаўненне буфера ўзнікае пры перадачы ў blob-блоках вялікіх лікавых атрыбутаў з тыпам "double". Праверыць схільнасць сістэмы ўразлівасці можна выканаўшы каманду:

$ ubus call luci getFeatures \
'{ «banik»: 00192200197600198000198100200400.1922 }'

Акрамя ўхілення ўразлівасцяў і выпраўленні назапашаных памылак у выпуску OpenWrt 19.07.1 таксама абноўленая версія ядра Linux (з 4.14.162 да 4.14.167), вырашаныя праблемы з прадукцыйнасцю пры выкарыстанні частот 5GHz, наладжана падтрымка прылад Ubiqui.
Zyxel NSA325, Netgear WNR3500 V2, Archer C6 v2, Ubiquiti Edge Router-X, Archer C20 v4, Archer C50 v4 Archer MR200, TL-WA801ND v5, HiWiFi HC5962, Xiaomi Mi Router 3 Pro і.

Крыніца: opennet.ru

Дадаць каментар