Commit 093494c
fix(GHSA-248r-7h7q-cr24): close async generator yield*-return thenable exception capture
Wrap %AsyncGeneratorPrototype%.next/.return/.throw to sanitise both
iterator-result values/rejections and the thenable arguments V8 awaits
in yield*-return abrupt completion. The non-thenable branch of the
thenable wrapper always resolves with a sandbox-realm shadow (own
descriptors copied except .then) so V8's [[Get]] in
PromiseResolveThenableJob cannot re-detect a thenable on the user's
value via getter or descriptor TOCTOU.
Restores Defense Invariant #2 for the implicit-catch case in V8's
async generator state machine.
Bumps version to 3.11.3.
ATTACKS.md gains Category 29 with the full mitigation rationale and
trade-off discussion. CHANGELOG.md updated.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 7a552e8 commit 093494c
5 files changed
Lines changed: 1462 additions & 1 deletion
File tree
- docs
- lib
- test/ghsa/GHSA-248r-7h7q-cr24
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
3 | 11 | | |
4 | 12 | | |
5 | 13 | | |
| |||
0 commit comments