terminal
Weekly Digest // JS_FRAMEWORKS — Week 10-2026
codeWeekly Report

StorybookのWebSocketを利用した永続型XSS/RCE(CVE-2026… — 2026年 第10週 JavaScript

JS frameworks, React/Vue/Svelte, and runtime updates

calendar_todaysummarizeWeek 10-2026bolt1 CRITICAL
セキュリティ

StorybookのWebSocketを利用した永続型XSS/RCE(CVE-2026-27148)

CVE-2026-27148CVSS 8.9)はStorybook 8.1.0以上10.2.10未満に影響し、v8.1で導入されたブラウザベースのstoryエディタのWebSocketエンドポイントws://localhost:6006/storybook-server-channel)に認証が一切ないことが原因です。createNewStoryfileRequestおよびsaveStoryRequestハンドラがユーザー指定のcomponentFilePathをサニタイズせず生成されたstoryソースファイルに直接埋め込むため、文字列コンテキストの脱出によるJavaScript注入が可能です。dev serverが公開されている場合はユーザー操作なしに悪用でき、ローカル環境では悪意あるページを訪問するだけで攻撃が成立します。payloadがディスクに書き込まれてversion controlにコミットされる恐れがあるため、VitestJSDOMを使用する環境ではNode.jsコンテキストでRCEにエスカレーションします。7.6.23、8.6.17、9.1.19、10.2.10のいずれかへ直ちにアップデートしてください。

StorybookのWebSocketを利用した永続型XSS/RCE(CVE-2026-27148)
Read Articlearrow_forward
Video · チュートリアル12:12

TypeScriptコードをこんなふうに書くのはやめよう

Web Dev SimplifiedのKyleは、TypeScriptにおける明示的なreturn typeが一律に推奨されるわけではなく、特定のシナリオでのみコード品質を実質的に向上させる点を解説します。必須となるケースは再帰関数で、TypeScriptがreturn typeを推論できずanyにデフォルトされます。それ以外ではライブラリレベルのコードや広く使われるヘルパー関数においてreturn typeが契約の役割を果たします。例えばundefinedではなくnullを返すよう誤って変更した場合、アノテーションがないと呼び出し側が静かに壊れます。さらにas constの代わりにtuple return typeを使ったより柔軟な型付けと、TypeScriptの推論型が混乱するundefinedの重複を生むdiscriminated union返却のケースも取り上げています。全体的な推奨はreturn typeをデフォルトで省略し、再帰関数・ライブラリや共有ユーティリティ・複雑なdiscriminated unionでのみ選択的に追加することです。

AI_INFOGRAPHIC
TypeScriptコードをこんなふうに書くのはやめよう — infographicWATCH_VIDEOarrow_forward
Article · リリースREAD TIME: 18m

Node.js 22.22.1(LTS)

Node.js 22.22.1 'Jod'(LTS)は2026-03-05にリリースされた大規模メンテナンスリリースで、300以上のコミットを含みます。主な変更点として、--heapsnapshot-near-heap-limitフラグのstable昇格、NSS 3.119へのroot certificate更新、OpenSSL 3.5.5ソースへのアップグレード、SQLite 3.51.2への更新が挙げられます。パフォーマンス改善ではTypedArray#setを使ったBuffer.concatの高速化、consoleの単一文字列ログの最適化、URLデコーダへのfast path追加が行われました。バグ修正ではfs.cperrorOnExist動作、HTTPのrawHeadersmaxHeadersCountを超える問題、HTTP/2initialWindowSize検証、WritableStreamisErrored/isWritableの不具合が解消されています。vm.Module.evaluate()には条件付き同期実行モードが追加されました。

READ_FULL_LOGarrow_forward
Article · リリースREAD TIME: 5m

TanStack Intentを発表:npm Packageと一緒にAgent Skillを配布

TanStack Intent(@tanstack/intent)は、ライブラリメンテナーがバージョン管理されたAgent Skillsをnpmパッケージ内に直接バンドル・検証・配布できる新しいCLIです。VS Code・GitHub Copilot・OpenAI Codex・Cursor・Claude Code・Goose・Ampがすでに採用するオープンなAgent Skills仕様をベースにしています。問題の本質はAIエージェントのライブラリ知識がトレーニング時点で凍結されており、破壊的変更のたびにバージョン混乱が起きる点です。skillはYAMLヘッダ付きのMarkdownドキュメントで、正しい使用パターン・よくある間違い・参照元ドキュメントを記述し、npx @tanstack/intent staleでCIの乖離を検出できます。開発者はnpx @tanstack/intent installを一度実行するだけで、intent対応パッケージをCLAUDE.mdや.cursorrulesなどに自動接続でき、npx @tanstack/intent feedbackで失敗報告をメンテナーに送れます。

READ_FULL_LOGarrow_forward
Article · リリースREAD TIME: 3m

ViteLandの最新情報:2026年2月振り返り

VoidZeroの2026年2月エコシステムまとめです。RustベースのフォーマッターであるOxfmtがPrettierのJavaScriptおよびTypeScript適合テストを100%パスし、最大36倍高速なbetaに到達しました。importソート・Tailwind CSSクラスソート・埋め込み言語フォーマットが安定化し、Turborepo・Hugging Face・Lichessなどで早期導入が進んでいます。Vite 8 betaではmodule graphやHMRタイムラインをブラウザ上で確認できる実験的devtoolsが利用可能になりました。Vitest 4.1 betaはaroundEacharoundAllフックを追加し、Rolldownは内部ファイルパス最適化で9.6%の速度向上を達成。Oxcのセマンティック分析は識別子ハッシュの事前計算で4-6%高速化し、OxlinttsgolintでTypescript-eslintの61ルール中59をサポートします。

READ_FULL_LOGarrow_forward
Article · ガイドREAD TIME: 5m

React Compiler:useMemoとuseCallbackにさようなら | Alex Cloudstar

2025年10月にリリースされたReact Compiler v1.0は、BabelまたはSWCプラグインとして動作するビルドタイムツールで、useMemo・useCallback・React.memoを必要な箇所に自動挿入し、手動メモ化のボイラープレートを排除します。コンパイラはコンポーネント全体を一度に解析して依存関係を正確に把握します。Next.jsではnext.config.jsにreactCompiler: trueを1行追加するだけで有効化でき、Viteではbabel-plugin-react-compilerをインストールして@vitejs/plugin-reactのbabel pluginsリストに追加します。コンパイラは純粋関数コンポーネント・条件付きフック禁止・状態の直接変更禁止などReactのルールを厳格に適用し、違反コードは最適化をスキップします。段階的な導入には"use no memo"ディレクティブで個別コンポーネントを除外できます。

READ_FULL_LOGarrow_forward
Article · ガイドREAD TIME: 9m

Composables vs. Provide/Inject vs. Pinia — いつ何を使うべきか

Daniel Kellyが執筆したVue Schoolのこのガイドは、Vueの3つの状態共有メカニズムをいつ使うべきかを明確に整理しています。Composable(refcomputedwatchを使う関数)は呼び出しごとに独立した状態を提供し、マウス追跡やフォームバリデーションなど再利用可能なロジックに最適です。モジュールスコープにrefを持ち上げれば状態共有も可能ですが、devtoolsサポートを失いSSRで状態リークのリスクがあります。provide/injectはコンポーネントサブツリー内のprop drilling回避に適しており、Tabs/TabForm/FormFieldのような密結合コンポーネントペアで特に効果的です。InjectionKey<T>シンボルを使えば文字列キーの脆弱性を排除できます。Piniaはdevtoolsのタイムトラベル・SSR安全性・組み込みgetterとactionが必要なグローバルアプリ状態(認証・カート・機能フラグ)に適しています。

READ_FULL_LOGarrow_forward
summarizeDigest_Summary

今週最も緊急性の高いニュースはCVE-2026-27148です。CVSS 8.9のXSS/RCE脆弱性で、Storybook 8.1.0以上10.2.9以下のバージョンに影響し、ブラウザベースのstoryエディタで導入された認証なしのWebSocketエンドポイントを悪用します。攻撃者のpayloadがディスクに書き込まれてversion controlにコミットされる恐れがあるため、Vitest/JSDOM環境ではリモートコード実行(RCE)に直結します。7.6.238.6.179.1.1910.2.10のいずれかへ直ちにアップデートしてください。

セキュリティ以外にも、VoidZeroエコシステムから注目すべき動きがありました。OxfmtがPrettierのJavaScript・TypeScript適合テストを100%パスし、最大36倍高速なbetaに到達しました。Vite 8 betaにはmodule graph検査用の実験的devtoolsが追加され、Node.js 22.22.1 LTSは300以上のコミットとともにOpenSSL 3.5.5アップグレードとBuffer.concat高速化を含んでリリースされました。TanStack Intentも登場し、npmライブラリ作者がパッケージ内にバージョン管理されたAgent Skillsをバンドルできるようになります。

フレームワーク面ではReact Compiler v1.0がビルド時にuseMemouseCallbackのボイラープレートを自動化し、VueガイドはComposable・Pinia・provide/injectをいつ使うべきかを明確に整理します。TypeScript動画は明示的なreturn typeが実際に有効な状況を冷静に分析します。

Key Takeaways
  • Storybookを直ちに7.6.23 / 8.6.17 / 9.1.19 / 10.2.10へアップデートしてください — CVE-2026-27148は公開またはVitest環境のdev serverで、認証なしWebSocket経由のRCEを可能にします。
  • Oxfmt betaとVite 8 devtoolsはVoidZeroツールチェーンが急速に成熟していることを示しており、ビルドパイプラインのアップグレード候補として評価する価値があります。
  • React Compiler v1.0はReactのルールに準拠したコードベースで本番利用可能ですが、仮想化リスト・imperativeなref・非標準サードパーティライブラリには引き続き手動メモ化が必要です。