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

npmのaxios侵害:悪意あるVersionがRemote Access… — 2026年 第15週 JavaScript

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

calendar_todaysummarizeWeek 15-2026bolt1 CRITICAL
サプライチェーン

npmのaxios侵害:悪意あるVersionがRemote Access Trojanを投下

2026年3月30日、StepSecurityはnpmに公開された悪意のあるaxiosバージョン2件axios@1.14.1axios@0.30.4)を検出しました。攻撃者がメンテナーアカウントを乗っ取りメールをProtonMailのアドレスに変更した後、これらが公開されました。両リリースはphantom依存関係plain-crypto-js@4.2.1を注入します。このパッケージはaxiosのソースコードでは一切importされておらず、postinstallフックを通じてmacOS、Windows、Linux向けのクロスプラットフォームRAT dropperを実行します。npm install2秒以内sfrclak.com:8000のC2サーバーへ接続し、プラットフォーム別の第2段階payloadを配信した後、自己削除してpackage.jsonをバージョン4.2.0のクリーンなスタブに置き換え、フォレンジック検出を回避します。週間ダウンロード数1億以上のaxiosを標的としたこの事件は、npm史上最大規模の単一パッケージ侵害です。axios@1.14.0またはaxios@0.30.3へのダウングレードと、npm ci --ignore-scriptsの実行を直ちに行ってください。

npmのaxios侵害:悪意あるVersionがRemote Access Trojanを投下
Read Articlearrow_forward
Video · React

なぜ誰も正しいReact Hookを使わないのか

Web Dev SimplifiedのKyleは、ブラウザ外部の状態をReactに同期する正しいフックとしてuseSyncExternalStoreを紹介し、一般的なuseEffect + useStateパターンを置き換える方法を説明します。navigator.onLineのステータス追跡と、dialog要素のopen状態の同期(useEffectが見逃すescapeキーによるクローズを含む)という2つの具体的な例を通じて説明します。続いて、Setによるリスナーを持つsubscribe関数、現在の配列を返すgetSnapshot関数、リスナーに通知するミューテーション関数を使い、todoStore.tsで軽量なグローバルストアをゼロから構築する方法を紹介し、contextやZustandの代替として提示します。このフックのオプションの第3引数はサーバーセーフなデフォルトスナップショットを提供してSSRに対応しますが、これはuseEffectには全くない機能です。

AI_INFOGRAPHIC
なぜ誰も正しいReact Hookを使わないのか — infographicWATCH_VIDEOarrow_forward
Article · ランタイムREAD TIME: 17m

Bun v1.3.12

Bun v1.3.12ではBun.WebViewが追加されました。WebKit(macOS、外部依存なし)またはChrome DevTools Protocolをバックエンドとする組み込みのヘッドレスブラウザ自動化APIで、OSレベルのイベントを発行するため、実際のユーザー操作と区別できません。また、bun ./file.mdによるターミナルMarkdownレンダリング、重複実行なしでDisposableをサポートするBun.cron()のインプロセススケジューリング、bunfig.tomlminimumReleaseAgeによるパッケージリリース年齢ゲーティングも追加されています。JavaScriptCoreエンジンは1,650件以上のアップストリームコミットでアップグレードされ、using/await usingのネイティブサポート、高速なPromise処理、WASM SIMD改善が含まれます。さらにLinux上のBun.serve()へのTCP_DEFER_ACCEPT対応、HTTPSプロキシCONNECTトンネルの再利用、URLPatternが最大2.3倍高速化、大規模UTF-16入力でBun.stripANSIが最大11倍高速化といった改善も含まれています。

READ_FULL_LOGarrow_forward
Article · サプライチェーンREAD TIME: 12m

舞台裏:StepSecurityが史上最大のnpm Supply Chain Attackを検知し復旧を支援した方法

StepSecurityのAI Package Analystaxios@1.14.1が公開された直後にクリティカルとして検出し、未文書のplain-crypto-js依存関係やOIDCプロベナンス証明の欠落など6つの不審なシグナルを特定しました。共同創業者のAshish KurmiがGitHubに警告issueを投稿すると、乗っ取られたjasonsaayanアカウントを使った脅威アクターがそれを削除するという応酬が約20回繰り返されました。攻撃者はGoogle Threat Intelligence GroupとMicrosoftによって北朝鮮のグループUNC1069(Sapphire Sleet)と帰属付けられており、偽のSlackワークスペースとMicrosoft Teamsの通話でメンテナーを騙し、RATをインストールさせて長期有効なnpmトークンを窃取していました。StepSecurity Harden-Runnerは監視対象の12,000以上の公開リポジトリsfrclak.comへのC2コールバックを独自に確認し、発表から24時間以内にコミュニティウェビナーには472名が登録、200名がライブで参加しました。

READ_FULL_LOGarrow_forward
Article · フレームワークREAD TIME: 2m

TanStack Router・Start・QueryがSolid 2.0 Betaに対応

TanStack Router、TanStack Start、TanStack QueryがSolid 2.0のベータサポートを提供し、開発者が孤立したデモではなく実際のアプリケーションで新しいフレームワークを試せるようになりました。アップグレードには@tanstack/solid-router@^2.0.0-beta.11@tanstack/solid-start@^2.0.0-beta.12solid-js@^2.0.0-beta.5vite-plugin-solid@^3.0.0-next.4のインストールが必要で、データフェッチング用に@tanstack/solid-query@^6.0.0-beta.3をオプションで追加できます。Solid 2.0は非同期レンダリング、派生状態、SSRに大きな変更をもたらし、ルーティングとサーバーレンダリングが重要な大規模アプリケーションで特に効果的です。TanStackチームはベータからRCを経て安定版まで、Solidコアを緊密に追跡し、2.0のロールアウト全体を通じて3パッケージすべての整合性を維持する計画です。

READ_FULL_LOGarrow_forward
Article · TypeScriptREAD TIME: 8m

ArkType:必要だと気づかなかったParse-Don't-Validateの続編

Christian EkremはTypeScriptでbranded parserを手書きする代替手段としてArkTypeを検討しています。ArkTypeの文字列DSLはtype({ email: "string.email", age: "0 <= number.integer <= 150" })と書くだけで、コンパイル時の型とランタイムバリデーターを一つの定義から生成し、オブジェクト検証のベンチマークではZodの281nsに対して14ナノ秒を記録します。Morph("string.numeric.parse"のような変換)は入力型を別の出力型に単一の式で変換し、コンパイル・ランタイム間のギャップを縮めます。ユニオンの判別も自動化されており、ZodのdiscriminatedUnionで必要な明示的な判別フィールドが不要です。正直なトレードオフ:ArkTypeのバンドルサイズは約42KB(Zodは約13KB)、エコシステム統合は約5件(Zodは50件以上)、instanceofベースのエラーチェックはneverthrowEffectのようなResultベースのFPライブラリとの組み合わせに摩擦を生じます。

READ_FULL_LOGarrow_forward
Article · バンドラーREAD TIME: 8m

Webpack 5.106

Webpack 5.106では5つの注目すべき変更が加えられています。新しいcompiler.hooks.validateフックにより、プラグイン作成者はグローバルなvalidate: falseフラグに従ったスキーマ検証ロジックを登録できます。CSS ModulesはexportType: "style"のサポートにより、style-loaderなしでHTMLStyleElementを介したランタイムスタイル注入が可能になりました。CommonJSの分割代入(const { add } = require('./math'))が静的解析され、参照されたexportのみがtree shakingを経て残るようになります。TC39 Stage 3のSource Phase ImportsがWebAssemblyモジュールの実験的機能experiments.sourceImport)として追加されました。また、より高速なJavaScriptパース評価のために開発・ベンチマーク環境向けの実験的なoxc-parser統合も利用可能です。webpack-cliエコシステムでもNode.js 20.9.0を必須とし、dynamic import()経由でネイティブTypeScript設定をサポートするメジャーv7リリースがありました。

READ_FULL_LOGarrow_forward
summarizeDigest_Summary

今週最大のニュースはnpmのサプライチェーン攻撃で、プラットフォーム最多ダウンロードのHTTPクライアントaxiosが標的となりました。乗っ取られたメンテナーアカウントを経由して悪意のあるaxios@1.14.1axios@0.30.4が公開され、インストール後2秒以内にクロスプラットフォームのリモートアクセストロイの木馬を実行するphantom依存関係plain-crypto-js@4.2.1が含まれていました。この攻撃は北朝鮮グループUNC1069(Sapphire Sleet)によるものと帰属付けられ、npm史上最大規模の単一パッケージ侵害となります。即座の対応としてaxios@1.14.0またはaxios@0.30.3へのダウングレードとnpm ci --ignore-scriptsの実行が必要です。

ランタイムとツールの面では、Bun v1.3.12が組み込みのヘッドレスブラウザ自動化のためのBun.WebView、インプロセススケジューリングのためのBun.cron()、そしてusing/await usingのネイティブサポートを含む1,650件以上のアップストリームコミットでアップグレードされたJavaScriptCoreエンジンをリリースしました。Webpack 5.106はCommonJSの分割代入のtree shaking、CSS ModulesのexportType: "style"サポート、WebAssembly向けの実験的なTC39 Stage 3 Source Phase Importsを追加しました。webpack-cliNode.js 20.9.0を必須とするネイティブTypeScript設定をサポートするメジャーv7リリースを行いました。

フレームワーク分野では、TanStack Router・Start・QueryがSolid 2.0のベータサポートを追加し、solid-js@^2.0.0-beta.5vite-plugin-solid@^3.0.0-next.4が必要です。ArkTypeはZodの281 nsに対してオブジェクト検証14 nsを記録する有力なZod代替として注目されていますが、42 KBのバンドルサイズと限られたエコシステム統合がトレードオフです。useSyncExternalStoreの深掘り解説では、navigator.onLineやdialogのopen状態など、useEffectが全く対応できないSSRサポートも含むブラウザ外部状態の正確な処理が示されました。

Key Takeaways
  • すぐにaxios@1.14.0またはaxios@0.30.3にダウングレードしてください。バージョン1.14.10.30.4には北朝鮮グループUNC1069によるサプライチェーンRATが含まれており、必ずnpm ci --ignore-scriptsを実行してください。
  • Bun v1.3.12はmacOSで外部依存なしにヘッドレスブラウザを自動化するBun.WebViewと、重複実行なしのインプロセススケジューリングを実現するBun.cron()を提供します。
  • ArkTypeは単一の文字列DSL定義でZodの281 nsに対してオブジェクト検証14 nsを達成しますが、42 KBのバンドルと約5件のエコシステム統合(Zodは50件以上)があるため、多くのプロジェクトではZodが引き続き安全なデフォルトです。