Chromeの脆弱性CVE-2026-102322への対応確認:Playwright同梱Chromiumの更新とワークツリー、メモリの棚卸し

開発mdx-playground

Chromeの脆弱性CVE-2026-102322への対応確認:Playwrightの古いChromiumを掃除し、ワークツリーとメモリも棚卸しした

朝、Chrome に High 級の脆弱性(CVE-2026-102322)があると知った。 悪意ある Web ページを開くだけで任意コード実行につながる可能性があり、古い Chrome や Playwright の環境は早めの更新が勧められている、という内容だった。 自分の環境が対応できているのか、Claude Code に調べてもらった。

Chrome 本体は、すでに修正版になっていた。 ところが Playwright が使う Chromium は、ローカルに残っていたものが全部未対応だった。 普段開いているブラウザが新しくなっても、テスト用に置いてある Chromium は1つも新しくなっていなかったことになる。

「必要な対応を全部」の中身

そこで「必要な対応を全部やっといてください」と頼んだ。 対応の範囲には、Edge の更新と各リポジトリの Playwright の更新が入った。 まず対象を棚卸ししてもらうと、依存ファイルはどのリポジトリも未変更だった。 最初は mdx-playground で、Playwright を 1.64 に上げてもらった。

pnpm のストア不一致で一度止まる

その mdx-playground で、pnpm のストア不一致に当たって止まった。 ルールどおり issue を作ってから、続けてもらった。

ロックファイルは v9.0 形式だった。 今の node_modules に合わせて pnpm 11.9.0 で更新し、ロックファイルの差分が Playwright の部分だけに収まっているかを確かめてもらった。

tokyo-onkei は node_modules の作り直しで止まる

tokyo-onkei では、古い node_modules を作り直すかどうかの確認で止まった。 その確認には作り直しで応じる形で、入れ直してもらった。

dev サーバーの起動を待つあいだに、Chromium 156 本体もダウンロードしてもらった。

古い Chromium を引き留めていたのは npx のキャッシュ

更新のあと、Playwright は参照の切れた古い版(1208 と 1223、それに WebKit)を自動で消した。 それでも 149 系(1228)だけは残っていた。

何がまだ参照しているのかを調べてもらうと、参照元は7月に npx playwright を実行したときの npx キャッシュ(1.61.1)だけだった。 一度コマンドを叩いただけのキャッシュが、古い Chromium を手元に引き留めていたわけだ。 キャッシュなので、それと 149 系のブラウザを削除してもらった。

Edge だけは更新を取得できなかった

Edge 155.0.4283.45 は 10/8 に配信が始まっていた。 段階配信でまだ届いていない可能性があるので、winget で取りにいかせた。 winget にはまだ来ていなかった。

次に、Edge の「設定 > バージョン情報」を開かせた。 この画面を開くと、その場で更新確認が走るからだ。 それでも更新は取得できなかった。

結果として、Chrome と Playwright は対応を終え、Edge だけが未対応のまま残った。

途中で落ちた dev サーバー

作業の途中で、再起動した dev サーバーが落ちたという通知が来た。 Claude Code が起動した分は、7:27:08 に終了していた。 エラーは出ておらず、正常に再ビルドした直後に終了コード 1 で止まっていた。

同じ頃、別の Claude セッションがシェルを動かしていた。 Claude Code の見立てでは、そちらがポート 3000 のプロセスを止めた可能性が高い。 ただ、止めたのがどのセッションかまでは特定できていない。

1分待っても誰も起動し直さず、mdx-playground ではビルドも何も動いていなかった。 node プロセスも1つも動いていなかったので、dev サーバーを起動し直してもらった。 http://localhost:3000/ は、また 200 を返すようになった。

ワークツリー13個の再調査

作業中のワークツリーは、たぶんもう残っていない。 そう思いながら、13個あるワークツリーをもう一度調べてもらった。

調べ直した結果、Git_repo 配下の worktree で作業中のものは残っていなかった。 13個とも main / master に取り込み済みか、2か月前に止まった実験だった。

ただし、数には訂正が入った。 以前 Claude Code が出した「Worktree 13 個」は数え違いだった。 Git_repo 配下の worktree が13個、そのほかに git 管理外の複製が1個(eurekapu-nuxt4-buildcheck)あり、計14フォルダだった。 さらに Git_repo の外にも worktree が6個見つかったので、合わせて確認してもらった。 今これらを使っているプロセスはない。

この報告の時点で、mdx-playground の dev サーバーはまた止まっていた。 PC のメモリが極端に足りなくなり、Claude Code が自動で止めたものだった。 dev サーバー自体の不具合ではない。 メモリがまだ足りない可能性があるため、dev サーバーは止めたままになっている(必要になったら頼めば起動してもらえる)。

メモリ83%で、余計なプロセスは動いていないか

別のセッションで、メモリ使用率が83%になっていた。 余計なプロセスが動いていないか、Claude Code に調べてもらった。

いちばん大きいのは Node で、23個で7GB を使っていた。 中身を見ていくと、mdx-playground の dev サーバーが2台重複して動いていた。 この2台を止めてもらった。

メモリ使用率は 79% から 65% に下がり、空きは 6.5GB から 11.1GB に増えた。 79% は、自分が見た 83% から少し下がった時点で測り始めた値である。

Node は23個あったが、止めたのは重複していた dev サーバー2台だけだった。 Claude Code 自身も Node で動いているので、Node を名前でまとめて落とすわけにはいかない、という普段の運用とも合っている。

学びメモ

  • Chrome 本体が修正版になっていても、Playwright が使う Chromium は別に残っている。今回はローカルの Chromium が全部未対応だった
  • 古いブラウザが消えないときは、参照元を探す。今回は7月の npx playwright が残した npx キャッシュ(1.61.1)が、149 系の Chromium を引き留めていた
  • Edge 155.0.4283.45 は 10/8 に配信が始まっていたが、winget にも「バージョン情報」の更新確認にもまだ来ていなかった(段階配信でまだ届いていない可能性がある)
  • 「13個」のような数は、フォルダの実数と突き合わせると変わる。今回は Git_repo 配下に13個、git 管理外の複製が1個、Git_repo の外に6個だった

残っていること

  • Edge 155.0.4283.45 への更新(届いたら更新して、CVE-2026-102322 への対応を終える)
  • 7:27:08 に dev サーバーを止めたのがどのセッションか(未特定)
#Chrome#Playwright#セキュリティ#pnpm#git worktree#メモリ