首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

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

安全公司 JFrog 发现,包含Hyper的项目(如 Axum、Salvo 和 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/

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/UiyjZqRp8Kpc2lW14WcN
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券