DD-WRT UPNP缓冲区溢出漏洞 CVE-2021-27137
Last updated
Was this helpful?
Last updated
Was this helpful?
默认情况下,DD-WRT中的UPNP处于禁用状态,并且仅在内部网络接口上侦听。
UPNP本质上是未经身份验证的UDP形式的协议–由于无法对协议强制执行身份验证,因此它既易于使用又具有不安全性。
如果DD-WRT启用了UPNP服务,则坐在存在DD-WRT设备的LAN上的远程攻击者可以通过发送一个过长的uuid
值来触发缓冲区溢出。
根据部署DD-WRT的平台的不同,可能存在缓解措施,也可能没有缓解措施,例如ASLR等,这使得可利用性取决于安装DD-WRT的平台。
Note
DD-WRT < 45723 版本
通过查看源代码,ssdp.c
可以很容易地发现有问题的代码:
用户提供的数据的未绑定副本被复制到缓冲区中,该缓冲区的大小限制为128个字节。
由于默认情况下未启用UPNP服务,因此重新创建漏洞的第一步是启用将自动启动该服务的服务
启动PoC脚本将触发upnp服务崩溃,这可以在启动以下python脚本几秒钟后看到