書籍「Laravelの教科書」Laravel13対応サポートガイド公開中 → ダウンロードはこちら

PHP・Node.jsに深刻な脆弱性:Laravelで必要な対応をわかりやすく解説

Laravel

2026年10月21日、PHPに深刻な脆弱性が見つかりました。さらに同じ日に、Node.jsの脆弱性も修正されています。

Laravelではどういった対応が必要か、まとめていきます。

※2026年10月23日時点の情報です。

PHPの脆弱性の内容

ざっくり言うと、次のとおりです。

  • PHP本体に、深刻な脆弱性が2件見つかった(深刻度は10段階で9.2)
  • メモリの扱いの不具合を悪用して、ログインしなくても、外からサーバー上でプログラムを動かされるおそれがある
  • Webで動いているPHPなら、ほぼすべてが対象

このように外からプログラムを動かされる攻撃を、RCE(リモートコード実行)と呼びます。タイミングとしては、Laravelプロジェクトが実行される前に、攻撃が行われます。

つまり、Laravel側のコードでは防げません。

PHPのバージョン

修正版は下記のとおりです。8.2以降に修正版が出ています。

PHP 修正版
8.5 8.5.12
8.4 8.4.27
8.3 8.3.36
8.2 8.2.35
8.1以前 通常の修正版はなし

8.1以前は、すでにサポートが終わっています。

ただし今回は深刻なため、例外的に、7.4・8.0・8.1向けにも修正コードが公開されました。自分でPHPをビルドする人向けです。

レンタルサーバー等の対応

レンタルサーバーでは、PHPの更新はサーバー会社が行います。

今回は、修正版が出ていない古いPHP(7.4.33など)にも、独自に修正を入れている会社が多いです。

サーバー 対応(10/22時点)
エックスサーバー 8.2〜8.5は修正版に更新。古いバージョンにも独自に修正
「PHP 5.6〜8.5 対象となるすべてのサーバーへの修正パッチ適用完了」
さくらのレンタルサーバ 選べるすべてのPHPバージョンで対応完了
「当社コントロールパネルから選択いただける全てのPHPバージョンに対して脆弱性への対応を完了」
ロリポップ! 修正版を適用。古いバージョンにも独自に修正
「PHP 7.4 / 8.0 / 8.1:PHPの開発元が提供した修正(サポートが終了したバージョン向けの修正コード)を適用」
ConoHa WING 提供中のすべてのPHPバージョンで対応完了

各社、夜通し作業もあったかと思います。旧バージョンへも対応してくれて、ありがたいですね。詳細は各社のページ・設定をご覧ください。

*なおVPSなどでUbuntuを使っている場合も、Ubuntu側で修正版が出ています。

LaravelとPHPのバージョン対応

LaravelとPHPのバージョン対応表は下記のとおりです。

Laravel 対応PHP セキュリティ修正
9 8.0〜8.2 終了(2024/2/6)
10 8.1〜8.3 終了(2025/2/4)
11 8.2〜8.4 終了(2026/3/12)
12 8.2〜8.5 2027/2/24まで
13 8.3〜8.5 2028/3/17まで

Laravel公式:サポートポリシー(Laravel 9・10はこちら)

Laravel 8以前は、PHP 8.2に対応していません。

ご利用のレンタルサーバーが古いPHPにも修正を入れているなら、古いバージョンのまま使うことも可能です。難しいようなら、バージョンアップが必要になります。

Node.jsの脆弱性

泣きっ面に鉢といいますか…Node.jsも、同じ10月21日に10件の脆弱性を修正しました。

ただ、一気に修正がすすめられて良いかもしれませんね。

  • 修正版:26.12.1 / 24.22.1 / 22.23.4
  • 証明書の検証不備やDNS処理の問題など
  • Node 20と25はサポート終了のため、修正は出ません

Node.js公式:脆弱性のお知らせ(英語)

Laravelでは、Node.jsは画面のビルド(Vite)に使われます。

わたしは、開発環境でのみつかい、npm run buildしたファイルを本番にあげています。こういった使い方であれば、開発環境のみ更新すれば大丈夫です。

おまけ:やっておいた方が良い対策

せっかくなので、このほかにも実施しておいた方が良い対策をいくつかご紹介します。

Laravel本体のバージョンアップ

今回とは関係ありませんが、Laravel本体も、最近、セキュリティの修正が実施されています。

セキュリティパッチは現在、Laravel12・13のみとなっています。もしまだでしたら、PHPを更新するついでに、Laravelも上げておくと安心です。

Laravel News:認証すり抜けの修正(英語)

コマンドはこちら。メジャーバージョンの更新には、別途アップグレード作業が必要です。

composer update laravel/framework

composer パッケージのアップデート

ついでに、他のパッケージもチェックしておくと良いかと思います。

composer audit は、Composerで入れたパッケージに、知られている脆弱性がないかを調べてくれるコマンドです。

composer audit

Composer公式:auditコマンド(英語)

実際にアップデートするには、composer update を実行します。

関連するパッケージも更新されるため、動作が変わる可能性もあります。動作確認してくださいね。

php.iniの設定:session.upload_progress.enabled

今回の攻撃は、メモリを利用するものとなります。PHP公式では、攻撃をやわらげるための対策を紹介しています。

php.iniで、下記設定をいれておくのも対策のひとつとなります。これにより、サーバーのディスクへの書き込み(I/O負荷)やメモリ消費を僅かに抑えることができます。

session.upload_progress.enabled = 0

PHP 8.5の場合は、次の設定も入れます。致命的エラーの呼び出し履歴をおさえられます。

fatal_error_backtraces = 0

設定したら、PHPを再起動します。

レンタルサーバーによって、php.iniはブラウザ上の設定画面で編集可能です。

使う人が限られるなら、IPアドレス制限も

社内だけで使う管理画面など、使う人が限られているなら、IPアドレス制限も有効な防衛手段となります。

決まった場所からしかアクセスできないようにしておけば、外から攻撃される入口を減らせます。

設定は、Laravelではなく、サーバー側(.htaccess )で行います。

さいごに

今回の脆弱性への対応が完了していても、古いPHPの利用には別のセキュリティリスクが残ります。可能であれば、サポート中のPHP・Laravelへの移行が良いかと思います。

ただここは、プロジェクトの運営方針に関わるところで難しい部分となりますよね。

ちなみにわたし自身も、今回の脆弱性を契機にサービスを一新しました。

わたしはLaravelの教科書という学習システムを運営しておりますが、しばらく前から、「バージョンアップしよう!」と思っていました。

ただ、色々と面倒な部分もあり、ずるずる後回しに…^^;
今回の脆弱性で一度サイトを閉じたときに「よし、やるぞ」と弾みがついて、がんばりました。

Laravelの教科書は、Laravelの基本を学べるサイトです。ご興味あれば、こちら見てみてくさいね。

Laravelの教科書の説明をみてみる

最後まで読んでいただき、ありがとうございました♪

XやYoutubeなどでも発信してます。よかったらフォローしてください。

 

コメント

タイトルとURLをコピーしました