Boa 在转换 `AsyncGenerator` 对象的状态时出现未捕获的异常(CVE-2024-43367)
CVE编号
CVE-2024-43367利用情况
暂无补丁情况
N/A披露时间
2024-08-16漏洞描述
Boa是一个用Rust编写的嵌入式和实验性Javascript引擎。在版本0.16至版本0.19.0之前,处理ECMAScript的`AsyncGenerator`操作时的一个错误假设会导致某些脚本上出现未捕获的异常。Boa的`AsyncGenerator`实现假设`AsyncGenerator`对象的状态在解决由`AsyncGenerator`的方法(如`%AsyncGeneratorPrototype%.next`,`%AsyncGeneratorPrototype%.return`或`%AsyncGeneratorPrototype%.throw`)创建的承诺时不会改变。然而,精心构造的代码可能会触发承诺的`then`属性的getter方法的状态转换,这将导致引擎对此假设的断言失败,从而产生未捕获的异常。这可能会被用于在外部用户提供的任意ECMAScript代码运行的应用程序中创建拒绝服务攻击。版本0.19.0已修复了这个问题。无法升级到修补版本的用户应该使用`std::panic::catch_unwind`来确保引擎引起的任何异常都不会影响主应用程序的可用性。解决建议
"将组件 boa_engine 升级至 0.19.0 及以上版本"- 攻击路径 N/A
- 攻击复杂度 N/A
- 权限要求 N/A
- 影响范围 N/A
- 用户交互 N/A
- 可用性 N/A
- 保密性 N/A
- 完整性 N/A
CWE-ID | 漏洞类型 |
Exp相关链接

版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论