内容简介:曲速未来:Icecast流媒体服务器发现了一个远程代码执行漏洞。本文为作者“区块链安全档案”,原创文章,转载时请保留本声明及附带文章链接。 内容仅供读者参考,并非投资建议,本网站将保留所有法律权益。
2018-11-06 22:11 区块链 技术 124 收藏
曲速未来:Icecast流媒体服务器发现了一个远程代码执行漏洞。
区块链安全咨询公司 曲速未来 消息:有安全人员发现了由Xiph.org基金会维护的开源流媒体服务器Icecast中的一个漏洞。攻击者可以制作HTTP标头,覆盖服务器的堆栈内容,从而导致远程代码执行。由于Icecast通常用于托管互联网广播电台,因此有动力的攻击者可能会将电台停播。已为此漏洞分配标识符CVE-2018-18820。
snprintf:一个更安全的sprintf版本
在这一点上,众所周知,它sprintf是不安全的,因为它不提供缓冲区溢出保护。这是不寻常地看到,用户指向的文件snprintf作为一个更安全的版本,因为如果缓冲区太小,它将截断输出。但人们通常没有意识到的是,当它截断时,snprintf不会返回它写入的字节数。实际上,如果输出缓冲区足够大,它将返回它将写入的字节数。更糟糕的是,如果提供的大小参数大于缓冲区的实际大小,它无法阻止缓冲区溢出。
这是来自Icecast的易受攻击的代码,它从用户请求循环HTTP头并将它们复制到缓冲区,构建POST请求的主体以发送到身份验证服务器:
这段代码的略微简化版本:
如果考虑一个sizeof(post)10的情况,并且已经写入了8个字节(即,post_offset是8)。当要复制的下一个标题是什么时会发生什么"baz"?
输出被截断,但post_offset增加超出缓冲区的末尾:
现在如果假设有另一个要复制的标题,包含内容"AAAAA..."。就会处于一个有趣的位置:大小参数snprintf是sizeof(post) - post_offset,它将下溢成为一个非常大的数字。结果是后续调用snprintf可以有效地写入他们想要的数据。该数据将被写入缓冲区post post_offset末尾的某个地方post,并将覆盖堆栈的其他内容。
这意味着是可以发送一个将被截断的长HTTP标头,但其长度将允许post_offset在选择的堆栈中的任何位置。然后就可以发送第二个HTTP标头,其内容将被写入该位置。
攻击者的一个难点是在复制之前执行标题的一些清理snprintf,因此它们在可以写入堆栈的数据方面受到一定限制。这个概念验证漏洞只会导致服务器进程中的段错误 - 实际上是拒绝服务攻击 - 但是有怀疑一个充满动力和聪明的攻击者能够升级此攻击以实现全面的远程代码执行。
修复
区块链安全咨询公司 曲速未来 表示:Xiph的安全人员很快修补了这个bug,虽然修复非常简单。它只是检查来自的返回值snprintf,如果它导致post_offset超出缓冲区的末尾,它会记录一个错误并退出循环。
本文内容由 曲速未来 (WarpFuture.com) 安全咨询公司整理编译,转载请注明。 曲速未来提供包括主链安全、交易所安全、交易所钱包安全、DAPP开发安全、智能合约开发安全等相关区块链安全咨询服务。
本文为作者“区块链安全档案”,原创文章,转载时请保留本声明及附带文章链接。 内容仅供读者参考,并非投资建议,本网站将保留所有法律权益。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 最重要的漏洞披露渠道:社交媒体
- 看看英国GCHQ的漏洞披露策略
- 宜家PDF下载过程本地文件包含漏洞披露
- Google 安全团队披露苹果 macOS “严重”漏洞
- 研究人员披露可绕过 Gatekeeper 的 macOS 漏洞
- 黑客披露了未修复的Windows 0-day漏洞
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。