此脚本是 CVE-2022-30114 的概念验证(PoC),可导致 Fastweb FastGate 家用路由器(GPON 和 VDSL2 版本)重启。
CVE-2022-30114 是 'cmproxy' 可执行文件中的一个 基于堆的缓冲区溢出漏洞,该程序通过监听 TCP 端口 8888 的 Lighttpd FastCGI Web 服务器处理 HTTP 请求。特制的 HTTP 请求可让远程攻击者使该可执行文件崩溃并重启设备,从而造成拒绝服务。
这些设备容易受到基于堆的缓冲区溢出攻击,原因在于暴露在 TCP 端口 8888 上的 Web 服务未对 'Authorization' HTTP 头值的长度进行验证。该服务暴露在设备的 WAN 和 LAN 接口上1。
远程、未认证的攻击者在 'Authorization' HTTP 头中发送长度超过 100 字节的字符串,会导致名为 'cmproxy' 的可执行文件中 '.bss' 内存段的预分配缓冲区发生溢出。该可执行文件通过 FastCGI 协议处理上述服务上收到的 HTTP 请求。
这会允许覆盖进程的堆内存,导致进程损坏并在首次内存分配时崩溃。值得注意的是,所使用的 C 库版本(GNU C Library - glibc v2.24)包含检测堆损坏的保护措施,但也不排除通过深入分析,有可能覆盖堆结构并实现代码执行。
详情请参阅博客文章。
在首次向 Fastweb 披露后,WAN 访问已作为补偿性控制措施被禁用。截至撰写本文时,该服务仍暴露在内部 LAN 中。 ↩