Icecast 流媒体服务器中存在漏洞,可被攻击者用于终止在线电台播报。
该漏洞足以触发服务器进程中的一个分段错误即引发崩溃的访问冲突条件,存在远程代码执行的理论风险。攻击者可通过长度足够长的特殊构造的 HTTP 头部信息实现这一目的。
Icecast 由 Xiph.org 基金会委会,支持音频和视频数据。由于它受免费的软件许可证支持,且支持开放的通信标准,因此 Icecast 是创建在线电台的一个热门选择。
最新版本中已包含补丁,变更日志中将该问题描述为缓冲溢出漏洞,影响 Icecast 版本 2.4.0、2.4.1、2.4.2 或2.4.3“如果存在启用 URL 认证的 ‘mount’ 定义”的话。
这个漏洞源自选择 ‘snprintf’ 函数将数据通过 ‘sprintf’ 将数据输出重定向到缓冲区,通过在缓冲区不够大时截断输出的方法避免缓冲区溢出问题。
当满足某个具体条件时,这种做法不一定更安全。Semmle 安全研究团队的成员 Nick Rolfe 表示,’snprintf’ 函数并未提供防御缓冲区溢出的问题,“如果你提供的 size 参数大于缓冲区的实际大小的话”。
Rolfe 通过 LGTM 发现了这个漏洞。LGTM 是一款软件工具,它能基于特定的搜索模式自动发现代码中的漏洞问题。在这个案例中,当 ‘snprintf’ 函数在未经过正确检查就使用时,某个标准查询触发了警告。
Rolfe 在一份技术博客文章中解释称,这个 size 参数是“从先前调用 snprintf 的返回值中得出的”。
该漏洞的编号是 CVE-2018-18820Xiph 在10月16日收到了关于漏洞的详情报告和 PoC 利用代码并在同一天证实该问题的存在。Icecast 2.4.4 包含了修复方案,并于11月1日发布。
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/122415.html