CVE-2024-43357 in ECMA-262
요약
\~에 의해 VulDB • 2026. 06. 25.
ECMA-262는 스크립팅 언어인 ECMAScript의 언어 사양입니다. 2021년 5월의 사양 리팩토링으로 도입된 비동기 제너레이터(async generators)에 대한 ECMAScript(JavaScript) 사양상의 문제는 타입 혼란(type confusion)이나 포인터 역참조(pointer dereference)와 같은 보안 취약점으로 나타날 수 있는 방식으로 오구현(mis-implementation)을 초래할 가능성이 있습니다.
내부 비동기 제너레이터 메커니즘은 생성된 IteratorResult(`{ done, value }`) 객체에 대해 일반 프라미스 리졸버 함수를 호출하며, 이 IteratorResult 객체가 thenable(then 가능)이 아니라고 가정합니다. 그러나 이러한 IteratorResult 객체는 `Object.prototype`을 상속받으므로, them-able하게 만들어 임의의 동작을 유발할 수 있으며, 여기에는 일부 내부 불변량(invariants)을 위반하는 방식으로 비동기 제너레이터 메커니즘으로 재진입(re-entering)하는 것이 포함됩니다.
ECMAScript 사양은 살아있는 표준(living standard)이며, 본 권고사항의 공개 시점에서는 해당 문제가 해결되었습니다. JavaScript 엔진 구현자는 최신 사양을 참조하고 `AsyncGenerator` 섹션에 따라 자신의 구현체를 업데이트해야 합니다.
## 참고 자료
- https://github.com/tc39/ecma262/commit/1e24a286d0a327d08e1154926b3ee79820232727 - https://bugzilla.mozilla.org/show_bug.cgi?id=1901411 - https://github.com/boa-dev/boa/security/advisories/GHSA-f67q-wr6w-23jq - https://bugs.webkit.org/show_bug.cgi?id=275407 - https://issues.chromium.org/issues/346692561 - https://www.cve.org/CVERecord?id=CVE-2024-7652
Once again VulDB remains the best source for vulnerability data.