Rust 修复隐秘的ReDoS 漏洞
聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
Rust 安全团队修复了位于 Regex crate 中的一个漏洞,可导致应用程序遭拒绝服务攻击。如正则表达式字符串太复杂而不易解析,则会消耗资源并拖慢应用服务器。攻击者利用这一特征在应用特性如搜索页面和API中发动正则表达式拒绝服务 (ReDoS) 攻击。
正则表达式编译的复杂度
ReDoS 攻击为人熟知。
多数计算机语言包括Rust在内都具有防御措施来限制正则表达式字符串的复杂度并阻止 ReDoS 攻击。但Rust 正则表达式库中的漏洞耗尽了服务器资源,而耗尽方式并未在默认防御措施中提供。
安全研究员 Addison Crump 报告了该漏洞并指出,“多数 ReDoS 攻击发生在攻击者控制了正则表达式输入时且能够加载填充内存或耗费长时间执行/编译的时候。Rust_lang/regex 具有缓解措施,因此开发人员可允许不受信任的正则表达式并能保证线性时间复杂度以阻止拒绝服务和最大化的内存开销。”
Crump 还指出,“我发现的输入可使正则表达式编译过程增加复杂度,从而违反了crate的安全保证。”
从补丁来看,空的正则表达式子表达式具有大量重复,从而避免触发任何和内存使用而非编译时间相关的现有缓解措施。因此,仔细构造正则表达式可导致正则表达式编译器尝试生成呈指数增长的空子表达式数量。
从受影响库的 Git 历史来看,该漏洞至少存在于2018年,当时regex-syntax 被重写。Crump 指出,“当’regex’ crate 用于解析不可信的正则表达式时,该漏洞的严重程度为‘高危’。”
结构fuzzing
Crump 是在模糊测试 cargo-fuzz crate 时发现了该漏洞。
Crump 指出,“我所做的是使用 Arbitrary 生成结构性输入,仅生成有效的正则表达式(至少仅生成正则表达式ASTs),之后在执行时转向字符串形式。”该方法不同于传统的模糊测试方法,后者会生成很多随即输出,其中大部分是无用的噪音。
Crump 表示,“我开始注意到执行时间中的奇怪差异前,运行了大约20秒钟的模糊测试器。我在每次测试案例中都会设置时间,并弹出可用于执行拒绝服务攻击的其中一个正则表达式变体。”
Crump 建议Rust 开发人员使用结构模糊测试发现代码中的潜在内存损坏和逻辑漏洞。他表示,“仅仅因为你使用的语言是内存安全,并不意味着不会发生因为未思考所有可能的案例而造成的崩溃或数据损坏,而模糊测试就是找到这类情况的好方法。结构模糊测试将使你识别出代码中的深层问题,以便让你找到作为人类从未思考到的极端案例。”
代码卫士试用地址:https://codesafe.qianxin.com
开源卫士试用地址:https://oss.qianxin.com
推荐阅读
Rust 编程语言曝高危漏洞,可导致文件和目录遭删除
因严重缺陷,Rust 撤销所有 Crates 包的 API 令牌
Apache Strusts2出现高危反序列化漏洞 攻击者可控制web服务器
原文链接
https://portswigger.net/daily-swig/rust-patches-sneaky-redos-bug
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~
Rust 修复隐秘的ReDoS 漏洞相关推荐
- Puma遭遇勒索攻击致数据泄漏、微软修复48个安全漏洞|2月9日全球网络安全热点
安全资讯报告 Puma在Kronos勒索软件攻击后遭受数据泄露 运动服装制造商Puma在2021年12月对其北美劳动力管理服务提供商之一Kronos发起勒索软件攻击后,遭到数据泄露. 本月早些时候向几 ...
- 360修复高危漏洞可以修复吗_360代码卫士助D-LINK修复多个高危漏洞
近期,360企业安全集团代码卫士团队安全研究人员发现友讯(D-LINK)公司旗下产品系列 DIR-619.DIR-605 系列路由器的两个高危安全漏洞(CVE-2018-20056和CVE-2018- ...
- Apache Shiro 1.6.0 发布!修复绕过授权高危漏洞
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 冷冷zz 来源 | https://www.o ...
- 苹果发布iOS 15.3正式版 修复了Safari浏览器漏洞
1月27日消息,苹果公司今天向用户推送了正式版iOS 15.3和iPadOS 15.3.据介绍,本次更新修复了Safari浏览器漏洞. 更新页面显示,iOS 15.3包含针对iPhone的错误修复和安 ...
- .NET Core 2.1.12 与 2.2.6 发布,修复 URL 重定向欺骗漏洞
.NET Core 2.1.12 与 2.2.6 发布了,两个版本都包含了相应版本的 .NET Core.ASP.NET Core 与 .NET Core SDK 更新,其中最重要的是都修复了一个安全 ...
- 横河电机修复多个工控产品漏洞,可用于破坏和操纵物理进程
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 日本自动化巨头横河电机 (Yokogawa) 最新修复了位于控制系统产品中的多个漏洞,它们可被用于破坏或操纵物理进程. 工业网络安全公司 Dra ...
- 工控2月补丁星期二:西门子、施耐德电气修复近50个漏洞
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 本周二,工业巨头西门子和施耐德电气公司共发布了15份安全公告,修复了近50个漏洞. 西门子 西门子发布了9份安全公告,修复了27个漏洞.从CVS ...
- 奇安信代码安全实验室帮助微软修复远程内核级漏洞,获官方致谢
聚焦源代码安全,网罗国内外最新资讯! 奇安信代码安全实验室研究员为微软发现三个漏洞(CVE-2021-28445.CVE-2021-28328 和 CVE-2021-28323),其中CVE-202 ...
- Python 紧急修复远程代码执行漏洞
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 Python 软件基金会 (PSF) 紧急推出 Python 3.9.2 和 3.8.8 稳定版,解决两个严重的安全缺陷,其中一个从理 ...
最新文章
- 极光 php 自定义消息,laravel框架使用极光推送消息操作示例
- java soap封装_Java SOAPMessage.writeTo方法代码示例
- Random方法:生成指定长度的随机数字
- Java Bean验证基础
- Web之间跳转和信息共享、Servlet的三大作用域对象、动态网页JSP
- javascript中对象的运用
- 被国人误传了几千年的八句俗语
- 怎么在wps里做计算机,解决方案:如何在wps中制作电子小报
- c语言必背代码成绩判断,c语言初学必背代码
- 编程环境和软件工具安装手册
- 头条视频消重软件 免费批量修改视频md5
- 生命探测仪能穿墙能探废墟 但不能穿透金属(图)
- 桌面增加了IE图标无法删除
- 操作系统课程设计——时间片轮转算法模拟
- CentOS SVN使用
- IAR for ARM 无法烧写
- 简化是解决复杂性问题的首要前提---真正的管理者是把复杂的问题变得简单化
- STC15单片机-串口打印printf重定向
- 新咪咕Mg100、M101-强刷固件-刷机包
- substance-Substance_Designer记录