目次(5)

CVE-2026-119193
PHP のテストフレームワーク PHPUnit に、2026 年 10 月 30 日(UTC)に脆弱性 CVE-2026-119193 が公開されました。GitHub Advisory の深刻度は Medium、CVSS v4.0 は 5.4(CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N)、CWE-379 です。GitHub の勧告に CVSS v3 の値は付いていません。CISA の KEV には載っていません。EPSS は 0.11%(10/30 時点)です。
何が起きるか
- PHPUnit 13.4.0 以降は、PHPT テストをコードカバレッジ付きで実行するとき、OS の一時ファイル用パス(Linux なら
/tmp)の下の固定名のディレクトリphpunit-phptに、テストのコード(.php)とカバレッジのデータ(.coverage)を書き出して実行します。 - このディレクトリが他のユーザーによってすでに作られていても、所有者や権限を確かめずにそのまま使います。新しく作る場合の権限は
0777(umask 適用前)で、sticky ビットもありません。 - 同じマシンのほかのローカルユーザーが先にこのディレクトリを作っておくと、開発者が PHPUnit を動かしたときにテストのコードを自分のコードに差し替えられ、開発者の権限で任意のコードを実行できます。元のコードも実行させられるため、テストは成功し、カバレッジのレポートも欠けません。気づきにくい攻撃です。
.coverageファイルも差し替えられますが、こちらは PHPUnit 自身のクラスのオブジェクトしか復元しないため、カバレッジ値の改ざんにとどまります。
悪用の条件
勧告が挙げる条件は次の 4 つで、すべて満たす場合に限られます。
- PHPT テストを、PCOV や Xdebug などのカバレッジ取得ドライバー付きで実行している。
- 一時ファイル用パスがユーザー間で共有されている。Linux などで
/tmpを共有している場合が該当します。systemd のPrivateTmp、pam_namespace、ユーザーごとのTMPDIRを使っていれば当てはまりません。macOS と Windows は、既定ではユーザーごとの一時ディレクトリなので対象外です。 - 攻撃者が同じマシンのアカウントを持つか、別アカウントで動くプロセス(サービスなど)を操作できる。
- 一時ファイル用パスを最後に掃除してから、開発者が初めてカバレッジ付きで PHPT テストを動かすより前に、攻撃者がディレクトリを作る。
1 人のユーザーしか使わないコンテナや使い捨ての CI 実行環境のように、ほかのユーザー(サービス用アカウントを含む)が一時ファイル用パスに書き込めない環境は対象外です。勧告は可能性を低いと評価しています。成功した場合の影響は大きく、開発者がアクセスできるソースコード、認証情報、SSH 鍵などに及びます。
影響を受ける版と修正
- 勧告の影響範囲は 13.4.0 以上 13.4.4 未満、修正版は 13.4.4 です。PHPUnit 12.5 以前は、一時ファイルを PHPT テストファイルの隣に書くため影響を受けません。
- 13.4.4 では、一時ファイル用のディレクトリを予測できない名前で、現在のユーザーだけがアクセスできる権限で作ります。すでに存在するディレクトリは使いません。
- 修正のコミットは 10 月 27 日 02:54(UTC)、13.4.4 のリリースは同日 03:17(UTC)で、修正はリリースの前に入っています。リリースノートにも同じ内容が書かれています。12.5 系にも同日にリリースがありますが、この問題の影響は受けません。
- 13.4.4 のリリースノートには、静的解析キャッシュ用ディレクトリが他のユーザーによって作られていても使われる問題の修正も含まれています。
対応
composer show phpunit/phpunitで、使っている版を確認します。- 13.4.0〜13.4.3 なら、13.4.4 以降へ更新します(10 月 27 日には 13.4.5 も出ています)。
- すぐ更新できない場合は、PHPT テストをカバレッジ付きで動かす環境で、ユーザーごとの
TMPDIRやPrivateTmpを使う、または/tmp/phpunit-phptが自分の所有であることを確かめてから実行します。 - 共有サーバーで該当する構成を使っていた場合は、
/tmp/phpunit-phptの所有者を確かめます。
未確認の点
- NVD の記載は確認できていません(公開直後)。
- 悪用の報告は見つかっていません(KEV 掲載なし、EPSS は低い水準)。
この記事について
- 執筆・編集
- World Security 編集部
出典
- GitHub Advisory GHSA-9vw2-f4vp-x7gf(GitHub)
- PHPUnit 13.4.4 リリースノート(PHPUnit)
- PHPUnit 修正コミット ae31c78a(PHPUnit)
- NVD CVE-2026-119193(NIST NVD)
- FIRST EPSS API(FIRST)
- CISA Known Exploited Vulnerabilities Catalog(JSON)(CISA)




