OPENWRT/LEDE远程代码执行漏洞风险通告

发布时间 2020-03-25

漏洞编号和级别


CVE编号:CVE-2020-7982,危险级别:高危,CVSS分值:8.1


影响版本


OPENWRT 18.06.0到18.06.6版本以及OPENWRT 19.07.0版本

基于OPENWRT固件制作的LEDE固件 17.01.0到17.01.7 版本

比较老的已经不受支持的版本例如OPENWRT 15.05 以及LEDE 17.01 受漏洞影响且不受支持无法修复


漏洞概述


OpenWrt是一套针对嵌入式设备的Linux操作系统。


OPENWRT固件使用的包解析管理器OPKG FORK存在逻辑错误,管理器忽略了签名库中包含的SHA-256校验值。这意味着直接通过管理器安装 IPK离线安装包时是不经过校验的,而攻击者则可以利用这个漏洞安装危险的内容。由于包解析管理器本身是以ROOT权限运行的因此权限非常高,其权限可以针对整个文件系统不会受到权限管理。攻击者如果通过伪造的方式安装具有恶意代码的 .IPK安装包则可以获得ROOT权限,进而也可以控制整个路由器。


为了利用此漏洞,攻击者需要发动中间人攻击 (MITM),提供有效且已签名的包索引(例如,从downloads.openwrt.or g获得的索引)和一个或多个具有与存储库索引中指定的相同大小的伪造.ipk包,同时在受害系统上调用“opkg install”命令。


漏洞验证


暂无PoC/EXP。


修复建议


目前厂商已发布OpenWrt新版本,链接:https://openwrt.org/advisory/2020-01-31-1。

或者,要在不升级整个固件的情况下更新opkg包本身,可以在更新所有存储库后使用以下命令:

cd /tmp

opkg update

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


参考链接


https://openwrt.org/advisory/2020-01-31-1