技術
約2分で読めます
【Next】npmが壊れたのでpnpmに切り替えた【React2Shell脆弱性】
背景
前回の記事でReact2Shell脆弱性(CVE-2025-55182 / CVE-2025-66478)について長々と対策メモを残していたが、まあアップデートすりゃいいだろ、ということで安易に進めた結果がこれである。
以下のアップデートを実行しようとした:
- Next.js 16.0.3 → 16.0.7
- React 19.2.0 → 19.2.1
- react-dom 19.2.0 → 19.2.1
発生した問題
npm install が以下のエラーで繰り返しクラッシュ:
npm error Cannot read properties of null (reading 'matches')
試した対策(全て失敗)
npm install→ 失敗npm install --force→ 失敗node_modulesとpackage-lock.jsonを削除してクリーンインストール → 失敗
いずれも同じ内部エラーで失敗。npm自体のバグまたはキャッシュ破損の可能性が高い。
解決策:pnpmへの切り替え
pnpm install
結果:20秒で正常完了
dependencies:
- next 16.0.3
+ next 16.0.7
- react 19.2.0
+ react 19.2.1
- react-dom 19.2.0
+ react-dom 19.2.1
Done in 20s
ビルドも成功:
✓ Next.js 16.0.7 (Turbopack)
✓ Compiled successfully in 2.9s
✓ Generating static pages (8/8)
まとめ
| 項目 | 結果 |
|---|---|
| 脆弱性対策 | 完了(CVE-2025-55182 / CVE-2025-66478) |
| パッケージマネージャー | npm → pnpm に変更 |
| ビルド | 正常動作 |
原因は正直わからない。うちの環境固有の問題かもしれない。
ただ、npmは最近サプライチェーン攻撃やら何やらで汚染がひどいし、pnpmの方がまだマシな気がする。他のプロジェクトでもpnpm使ってるので、この機会に統一した。
まあGitのリポジトリを汚染されたわけでもないので、アプデで済むならアプデしてプッシュし直した方が早い。