PHP7.4.33の脆弱性について

採用はこちら

PHP 7.4.33は、PHP 7.4系の最終リリースです。

PHP 7.4系の中では最も新しいバージョンであり、7.4.32以前に存在していた一部の脆弱性が修正されています。

しかし、重要なのは、PHP 7.4.33は現在すでにサポート終了済みのバージョンであるという点です。

つまり、PHP 7.4.33は「PHP 7.4系の中では最新」ではあるものの、「現在も安全に使い続けられるバージョン」とは言えません。

サポート終了後に発見された脆弱性について、PHP公式から7.4系向けの修正パッチは基本的に提供されないためです。

目次

PHP 7.4.33で修正された主な脆弱性

PHP 7.4.33では、主に以下の2つの脆弱性が修正されています。

CVE-2022-31630:GD拡張のimageloadfont()に関する脆弱性

CVE-2022-31630は、PHPのGD拡張に含まれるimageloadfont()に関する脆弱性です。

imageloadfont()は、画像処理で使用するフォントファイルを読み込むための関数です。

この関数において、入力値の検証が不十分だったため、細工されたフォントファイルを読み込んだ場合に、範囲外読み取りが発生する可能性がありました。

この脆弱性の影響を受けやすいのは、以下のようなケースです。

  • GD拡張を有効にしている
  • 画像生成や画像加工の機能を提供している
  • ユーザーがアップロードしたファイルを画像処理に使用している
  • 独自プログラムやプラグインでimageloadfont()を使用している

一般的なWebサイトでは、この関数を直接使用していない場合もあります。

ただし、画像生成機能、サムネイル作成機能、フォント描画機能などを持つWebアプリケーションでは注意が必要です。

CVE-2022-37454:hash_update()に関するバッファオーバーフロー

CVE-2022-37454は、PHPのHash拡張に関する脆弱性です。

PHP 7.4.33では、hash_update()に長いパラメータを渡した際に発生する可能性があるバッファオーバーフローが修正されています。

この問題は、SHA-3やKeccak関連の実装に由来する脆弱性として扱われています。

攻撃者が非常に長い入力値を制御でき、その入力値がハッシュ処理に渡される場合、影響を受ける可能性があります。

特に、外部から受け取ったデータをそのままハッシュ処理に渡しているアプリケーションでは注意が必要です。

PHP 7.4.33は安全なのか?

PHP 7.4.33は、PHP 7.4系の最終版であり、7.4系の中では最も修正が進んだバージョンです。

しかし、現在のセキュリティ基準で見ると、PHP 7.4.33を安全なバージョンと考えるのは危険です。

理由は、PHP 7.4系がすでに公式サポートを終了しているためです。

PHP 7.4系はすでにサポート終了済み

PHP 7.4系は、2022年11月にサポート終了となりました。

PHPの各バージョンには、一定期間のアクティブサポートとセキュリティサポートがあります。

サポート期間中であれば、不具合修正やセキュリティ修正が提供されます。

しかし、サポート終了後は、原則として公式のセキュリティアップデートが提供されません。

そのため、PHP 7.4.33を使い続けている場合、サポート終了後に発見された脆弱性が修正されないまま残る可能性があります。

「最終版」と「安全」は同じ意味ではない

PHP 7.4.33は、PHP 7.4系の最終版です。

ただし、これは「PHP 7.4系の中で最後に公開されたバージョン」という意味であり、「現在も安全に使える」という意味ではありません。

たとえば、PHP 7.4.32以前を使っている場合は、PHP 7.4.33へ上げることで一部の脆弱性を修正できます。

しかし、PHP 7.4.33自体もすでにサポート終了済みであるため、長期的な運用には向いていません。

PHP 7.4.33を使い続けるリスク

PHP 7.4.33を使い続ける場合、以下のようなリスクがあります。

新しい脆弱性が修正されない

最も大きなリスクは、サポート終了後に見つかった脆弱性が修正されないことです。

PHP本体に新たな脆弱性が見つかったとしても、PHP 7.4系向けの公式パッチは基本的に提供されません。

そのため、古いバージョンを使い続けるほど、未修正のリスクを抱えた状態になります。

脆弱性診断で指摘されやすい

PHP 7.4.33はサポート終了済みのため、脆弱性診断ツールやセキュリティ監査で指摘される可能性があります。

診断結果では、以下のような内容で検出されることがあります。

  • PHP 7.4が使用されている
  • サポート終了済みのPHPが稼働している
  • EOLバージョンのPHPを使用している
  • セキュリティアップデートが提供されないバージョンである

特に、企業サイト、ECサイト、会員制サイト、問い合わせフォームを持つサイトでは、サポート終了済みのPHPを使い続けることはセキュリティ上の懸念になります。

WordPressやプラグインの対応にも影響する

PHP 7.4.33を使い続けると、WordPressやプラグイン、テーマ、フレームワークの対応にも影響が出ます。

近年のWordPress、Laravel、Symfony、Composerパッケージなどは、PHP 8系を前提にしたものが増えています。

そのため、PHP 7.4のままだと、以下のような問題が起こりやすくなります。

  • WordPress本体の推奨環境から外れる
  • プラグインやテーマの最新版が使えない
  • Composerパッケージを更新できない
  • セキュリティ修正を含むアップデートが適用できない
  • 古いライブラリを使い続ける必要がある

PHP本体だけでなく、周辺ソフトウェアの更新が止まることも大きなリスクです。

PHP 7.4.33と近年の脆弱性の関係

PHP 7.4.33を評価する際は、7.4.33で修正された脆弱性だけでなく、サポート終了後に発見されたPHP関連の脆弱性にも注意する必要があります。

CVE-2024-2756:Cookieの扱いに関する脆弱性

CVE-2024-2756は、__Host-__Secure-といったCookieプレフィックスの扱いに関する脆弱性です。

この問題では、特定の条件下で、本来安全なCookieとして扱うべきではないCookieが、PHPアプリケーション側で__Host-または__Secure-付きのCookieとして扱われる可能性があります。

セッション管理や認証処理でCookieを利用しているアプリケーションでは、影響を確認すべき脆弱性です。

PHP 7.4.33についても影響対象として扱う情報があり、サポート終了済みであることを考えると、PHP 8系への移行を検討するべきです。

CVE-2024-4577:PHP-CGI構成に関する脆弱性

CVE-2024-4577は、Windows環境でApacheとPHP-CGIを利用している場合に問題となる脆弱性です。

ただし、この脆弱性については注意が必要です。

NVDなどの情報では、主な対象としてPHP 8.1、8.2、8.3系の特定バージョンが挙げられており、PHP 7.4.33が直接の対象として明記されているわけではありません。

そのため、CVE-2024-4577を「PHP 7.4.33の確定的な脆弱性」と断定するのは適切ではありません。

ただし、PHP 7.4.33はサポート終了済みであり、Windows、Apache、PHP-CGIのような構成は攻撃面が大きくなりやすいため、構成そのものを見直すことをおすすめします。

PHP 7.4.33を使っている場合に確認すべきこと

PHP 7.4.33を使っている場合は、まず現在の利用状況を確認しましょう。

PHPのバージョンを確認する

サーバー上で以下のコマンドを実行すると、PHPのバージョンを確認できます。

php -v

出力結果にPHP 7.4.33と表示される場合、PHP 7.4系の最終版を使用している状態です。

ただし、最終版であってもサポート終了済みであることに変わりはありません。

有効なPHP拡張を確認する

PHPで有効になっている拡張機能は、以下のコマンドで確認できます。

php -m

特に確認したいのは、以下のような拡張機能です。

  • gd
  • hash
  • curl
  • openssl
  • mbstring
  • xml
  • fileinfo

GD拡張が有効な場合は、画像処理機能で不審な入力を受け付けていないか確認しましょう。

Server APIを確認する

PHPがどのような方式で動作しているかも重要です。

php -i | grep "Server API"

確認すべきポイントは、PHP-FPM、FastCGI、CGIなど、どの方式でPHPが実行されているかです。

特に、Windows環境でPHP-CGIを使用している場合は、構成リスクが高くなる可能性があるため注意が必要です。

PHP 7.4.33を使っている場合の対策

PHP 7.4.33を使っている場合、最も重要な対策はPHP 8系への移行です。

ただし、すぐに移行できない場合は、暫定的な緩和策もあわせて実施しましょう。

PHP 8系へアップグレードする

最も推奨される対策は、サポート中のPHPバージョンへアップグレードすることです。

2026年6月時点では、PHP 8.2、8.3、8.4、8.5が公式サポート対象です。

ただし、PHP 8.2はセキュリティサポートの終了が近いため、長期的な運用を考えるなら、PHP 8.3以上への移行を検討するとよいでしょう。

新規構築や大規模な移行であれば、PHP 8.4またはPHP 8.5も選択肢になります。

ステージング環境で動作確認する

PHP 7.4からPHP 8系へ移行する場合、互換性の問題が発生する可能性があります。

本番環境でいきなり切り替えるのではなく、まずはステージング環境で動作確認を行いましょう。

確認すべきポイントは以下です。

  • 画面が正常に表示されるか
  • フォーム送信が正常に動作するか
  • ログインや会員機能に問題がないか
  • WordPressの管理画面にエラーが出ないか
  • プラグインやテーマがPHP 8系に対応しているか
  • PHPエラーログにDeprecatedやFatal errorが出ていないか

PHP 8系では、PHP 7.4で警告レベルだったものがエラーになるケースもあります。

そのため、事前検証は必須です。

WordPress・プラグイン・テーマを更新する

WordPressを利用している場合は、PHPだけでなく、WordPress本体、プラグイン、テーマも更新しましょう。

PHP 7.4のままでは、最新のWordPress環境やプラグインに対応できない場合があります。

特に以下のようなプラグインを使っている場合は注意が必要です。

  • フォームプラグイン
  • ECサイト関連プラグイン
  • 会員管理プラグイン
  • 画像圧縮・画像生成プラグイン
  • セキュリティプラグイン
  • キャッシュプラグイン

これらはサイトの重要機能に関わることが多いため、PHP 8系で正常に動作するか確認してから移行しましょう。

不要な拡張機能を無効化する

すぐにPHP 8系へ移行できない場合は、不要なPHP拡張を無効化して攻撃面を減らすことも有効です。

たとえば、画像処理機能を使っていない場合は、GD拡張が本当に必要か確認しましょう。

ただし、WordPressや一部のCMSでは画像処理にGDを使用する場合があるため、無効化する前に動作確認が必要です。

ファイルアップロード機能を厳格に制限する

PHP 7.4.33を使い続ける場合、ファイルアップロード機能には特に注意が必要です。

アップロード機能がある場合は、以下の対策を行いましょう。

  • 許可する拡張子を限定する
  • MIMEタイプを確認する
  • ファイルのマジックバイトを確認する
  • アップロード先でPHPを実行できないようにする
  • 画像は再エンコードして保存する
  • 管理画面以外からのアップロードを制限する
  • 不審なファイル名を無効化する

アップロード機能は攻撃の入口になりやすいため、PHPのバージョンに関係なく厳格な対策が必要です。

WAFやアクセス制限を導入する

PHP 8系へすぐ移行できない場合は、WAFやアクセス制限による暫定対策も検討しましょう。

特に、以下のようなURLや機能は保護対象にすべきです。

  • 管理画面
  • ログイン画面
  • ファイルアップロード画面
  • APIエンドポイント
  • 画像生成機能
  • 会員情報の変更画面
  • 決済関連ページ

WAFは根本的な解決策ではありませんが、既知の攻撃パターンをある程度ブロックできるため、移行までの緩和策として有効です。

PHP 7.4.33から移行する際のおすすめバージョン

PHP 7.4.33から移行する場合、基本的にはPHP 8系を選びます。

短期的な移行ならPHP 8.2以上

PHP 8.2は、PHP 7.4からの移行先として選ばれることがあります。

ただし、サポート期限が近づいているため、長期運用を前提とする場合は、PHP 8.3以上を検討したほうがよいでしょう。

安定性と対応状況を重視するならPHP 8.3

PHP 8.3は、対応しているCMSやライブラリも多く、比較的現実的な移行先です。

WordPressや一般的なPHPアプリケーションであれば、まずPHP 8.3で動作確認するのが現実的です。

長期運用を考えるならPHP 8.4またはPHP 8.5

新規構築や長期運用を見据える場合は、PHP 8.4またはPHP 8.5も候補になります。

ただし、利用しているCMS、フレームワーク、プラグイン、Composerパッケージが対応しているかを事前に確認する必要があります。

最新バージョンほどサポート期間は長くなりますが、周辺ツールの対応が追いついていない場合もあるため、安定性とのバランスを見て判断しましょう。

PHP 7.4.33に関するよくある質問

PHP 7.4.33は今すぐ危険ですか?

PHP 7.4.33を使っているだけで、すぐに必ず攻撃されるわけではありません。

しかし、サポート終了済みであるため、セキュリティ上のリスクは高い状態です。

特に、公開Webサイト、WordPressサイト、ECサイト、会員サイト、ファイルアップロード機能を持つサイトでは、早めに移行を検討すべきです。

PHP 7.4.33ならPHP 7.4系では最新なので問題ありませんか?

問題があります。

PHP 7.4.33はPHP 7.4系の中では最新ですが、PHP 7.4系そのものがサポート終了済みです。

そのため、PHP 7.4.33を使っていても、現在のセキュリティ基準では不十分です。

PHP 7.4.32以前を使っている場合はどうすればよいですか?

PHP 7.4.32以前を使っている場合は、少なくともPHP 7.4.33で修正された脆弱性の影響を受ける可能性があります。

ただし、PHP 7.4.33へ上げるだけでは根本的な解決にはなりません。

最終的には、PHP 8系への移行を目指すべきです。

PHP 8系へ上げるとサイトが壊れる可能性はありますか?

あります。

PHP 7.4からPHP 8系では、非推奨だった記述がエラーになるケースや、古いプラグイン・テーマが動作しないケースがあります。

そのため、本番環境でいきなり切り替えるのではなく、ステージング環境で事前に検証することが重要です。

まとめ

PHP 7.4.33は、PHP 7.4系の最終リリースです。

このバージョンでは、GD拡張のimageloadfont()に関するCVE-2022-31630や、Hash拡張のhash_update()に関するCVE-2022-37454が修正されています。

しかし、PHP 7.4系はすでにサポート終了済みです。

そのため、PHP 7.4.33を使っている場合でも、現在のセキュリティ基準では安全とは言えません。

PHP 7.4.33を使い続ける主なリスクは、以下の通りです。

  • 新しい脆弱性が修正されない
  • 脆弱性診断で指摘されやすい
  • WordPressやプラグインの更新に支障が出る
  • 古いライブラリを使い続ける必要がある
  • サーバー全体のセキュリティリスクが高まる

最も望ましい対応は、PHP 8系への移行です。

特に長期運用を考える場合は、PHP 8.3以上への移行を検討するとよいでしょう。

すぐに移行できない場合でも、WAFの導入、管理画面のアクセス制限、不要な拡張機能の無効化、ファイルアップロード機能の制限など、暫定的な対策を行うことが重要です。

以上、PHP7.4.33の脆弱性についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次