POJIA破甲
地图 / Memory Corruption via TOCTOU Race in SharedArrayBuffer UTF-8 Decode (`StringBytes::Encode`)

Memory Corruption via TOCTOU Race in SharedArrayBuffer UTF-8 Decode (`StringBytes::Encode`)

业务逻辑 / TOCTOU 竞态条件 / #3752489

厂商
Node.js
严重程度
中危 · CVSS 7
赏金
—
弱点
TOCTOU 竞态条件
研究员
@v1ct0rv0nd00m
披露日期
2026-05-23
资产
https://github.com/nodejs/node
CVE
—

该报告还没有中文解读。

原文摘录

摘自原文(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 所有

同类报告

Ability to bypass partner email confirmation to take over any store given an employee emailShopify · 2018-02-07 · $15,250Race Condition leads to undeletable group memberHackerOne · 2020-03-20Race condition in activating email resulting in infinite amount of diamonds receivedInnoGames · — · $2,000Race condition in joining CTF groupHackerOne · 2023-01-08 · $500[pandao.ru] Возможность списания несуществующих бонусных балловMail.ru · —Promotion code can be used more than redemption limit.Stripe · 2023-02-13