速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

Hyper 存在漏洞,Rust 项目易受拒绝服务攻击

  • 2023-01-10
    北京
  • 本文字数:757 字

    阅读完需:约 2 分钟

Hyper 存在漏洞,Rust 项目易受拒绝服务攻击

近日,安全研究人员最近发现并披露了流行的 Rust 项目(例如AxumSalvoconduit-hyper )中的多个漏洞,产生这些漏洞的根源是没有在使用 Hyper 库时对 HTTP 请求设置适当的限制。

 

Hyper是一个非常流行的低级 HTTP 库,用 Rust 编写。该库不是功能齐全的 HTTP 服务器或客户端,但它包含了用于响应请求、解析请求主体和生成正确 HTTP 响应的方法,因此可以用作实现这些功能的“构建块”,是 Rust 最流行的 HTTP 库之一。

 

安全公司 JFrog 发现,包含Hyper的项目(如 AxumSalvo conduit-hyper)容易受到为利用这些漏洞而精心设计的 HTTP 请求引起的拒绝服务 (DoS) 攻击。

 

研究人员发现的问题在于body::to_bytes,这是一个将请求或响应主体复制到单个字节缓冲区的函数。该函数读取数据块,并可以创建一个具有足够空间的 Vector 来满足请求正文的预期长度。但是 Vector 的大小来自直接传递给 Rust 内存分配器的“Content-Length”标头,因此如果它太大,分配器就会崩溃进而使进程崩溃。

 

据 JFrog 称,上面三个项目已经修复了他们的代码,但还有数量不详的、其他易受攻击的项目尚未做出回应。目前,Rust 的包存储库 crates.io 中列出的 2,579 个项目依赖于 Hyper,下载量已超过 6700 万次。

 

JFrog 安全研究高级主管 Shachar Menashe 表示:使用 Hyper 时缺乏大小限制是一个非常严重的问题,攻击者可以很容易地利用它让 HTTP 客户端和服务器崩溃。

 

这个问题实际上之前也出现过。在 2014 年2015 年,Hyper 的开发人员修复了因接收到过大请求标头而导致的 DoS 漏洞。去年,在 GitHub 上的相关问题的帖子中,Rust 开发人员 Michal Varner 建议采用合并警告机制。


参考链接:

https://jfrog.com/blog/watch-out-for-dos-when-using-rusts-popular-hyper-package/

https://www.theregister.com/2023/01/06/flaws_rust_projects_ddos/

2023-01-10 10:394012

评论

发布
暂无评论
发现更多内容
Hyper 存在漏洞,Rust 项目易受拒绝服务攻击_文化 & 方法_褚杏娟_InfoQ精选文章