Memory Corruption via TOCTOU Race in SharedArrayBuffer UTF-8 Decode (`StringBytes::Encode`)
业务逻辑 / TOCTOU 竞态条件 / #3752489
该报告还没有中文解读。
原文摘录
摘自原文(10966 字符中的一小部分)
I discovered a memory corruption vulnerability in Node.js's native UTF-8 string decoding path (`src/string_bytes.cc`). When `Buffer.prototype.toString('utf8')` is called on a Buffer backed by a `SharedArrayBuffer`, the underlying native code performs a validate-then-convert sequence **without …原文中的代码
if (buflen >= 32 && simdutf::validate_utf8(buf, buflen)) { // T1: validates shared data
size_t u16size = simdutf::utf16_length_from_utf8(buf, buflen); // T2: calculates size
return EncodeTwoByteString(
isolate, u16size, [buf, buflen, u16size](uint16_t* dst) {
size_t written …默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 Node.js 所有。
时间线
- 报告提交
- 公开披露
阅读 HackerOne 原文 ↗作者 @v1ct0rv0nd00m · 版权归作者与 Node.js 所有