漏洞标题
当异步生成器(`AsyncGenerator`)对象的状态发生变化时,Boa 捕获不到异常。
漏洞描述信息
N/A
CVSS信息
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
漏洞类别
对异常条件的处理不恰当
漏洞标题
Boa has an uncaught exception when transitioning the state of `AsyncGenerator` objects
漏洞描述信息
Boa is an embeddable and experimental Javascript engine written in Rust. Starting in version 0.16 and prior to version 0.19.0, a wrong assumption made when handling ECMAScript's `AsyncGenerator` operations can cause an uncaught exception on certain scripts. Boa's implementation of `AsyncGenerator` makes the assumption that the state of an `AsyncGenerator` object cannot change while resolving a promise created by methods of `AsyncGenerator` such as `%AsyncGeneratorPrototype%.next`, `%AsyncGeneratorPrototype%.return`, or `%AsyncGeneratorPrototype%.throw`. However, a carefully constructed code could trigger a state transition from a getter method for the promise's `then` property, which causes the engine to fail an assertion of this assumption, causing an uncaught exception. This could be used to create a Denial Of Service attack in applications that run arbitrary ECMAScript code provided by an external user. Version 0.19.0 is patched to correctly handle this case. Users unable to upgrade to the patched version would want to use `std::panic::catch_unwind` to ensure any exceptions caused by the engine don't impact the availability of the main application.
CVSS信息
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
漏洞类别
未捕获的异常
漏洞标题
Boa 安全漏洞
漏洞描述信息
Boa是Boa开源的一种适用于嵌入式应用程序的开放源代码。 Boa 0.16至0.19.0之前版本存在安全漏洞,该漏洞源于允许攻击者通过精心构造的代码触发AsyncGenerator对象的状态转换,从而造成未捕获的异常,进而可能发起拒绝服务攻击。
CVSS信息
N/A
漏洞类别
其他