devalue: `stringify`/`uneval`によるシリアライズ、共有メモリ

### 影響

`stringify`と`uneval`は、型付き配列をシリアライズする際に、配列の基盤となる`ArrayBuffer`全体を送信します。Nodeの`Buffer`オブジェクトの場合、基盤となるバッファはプロセス全体で共有されるプールであり、関連性のないメモリがシリアライズされ、その結果がクライアントに送信される可能性があります。Nodeの`Buffer`の基盤となるのは、Nodeの**プロセス全体で共有されるプール**であるため、小さな`Buffer`をシリアライズすると、最大64KBの関連性のないプロセスメモリが、他の処理中のリクエストからのデータを含む形で出力にコピーされます。SSRフレームワーク(SvelteKit、Nuxtなど)において、`load()`関数が2バイトの`Buffer`を返す公開ページ、または`readFileSync`で読み込まれた小さなファイルの場合、別のユーザーのリクエストボディや`Authorization`ヘッダーがHTMLに含まれる可能性があります。認証なしで、気づかれずに、約43,000倍という増幅効果が生じます。

これはシリアライズ側の問題であるため、`parse`/`unflatten`におけるプロトタイプ汚染やDoS対策は適用されません。この問題は、信頼できない入力を解析する時だけでなく、SSRのレンダリングのたびに発生します。

### 対策

Nodeの`Buffer`オブジェクトを`Uint8Array`に変換する:

```diff
payload = {
- buffer
+ buffer: new Uint8Array(buffer)
}
```

影響を受けるパッケージ:
- npm (JavaScript) devalue: 影響範囲はバージョン5.1.0以上、5.9.2以下。5.9.3で修正済み。