聚焦源代码安全,网罗国内外最新资讯!
编译:360代码卫士团队
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日发布。
领取专属 10元无门槛券
私享最新 技术干货