最近、PHP で 2 つの高リスクのリモート コード実行の脆弱性 (一般に PHP2Shell の脆弱性として知られています) が発見されました。どちらの CVSS スコアも 9.2 と高く、世界中で非常に人気があります。日本の首相も微博で警告を発した。

ほとんどのバージョンは PHP 7 ですが、一部のバージョンは 8.0 です。基本的に正式な修復版は存在しません。これが私の修正です。
Docker バージョンのソリューション
まずはパゴダさんに感謝です。公式はさまざまなバージョンの修復パッケージを提供しています。必要に応じて、自分でダウンロードできます。
Docker バージョンについては、7.3 などの最も近いバージョンのソース パッケージを探し、Pagoda が提供する 7.3.34 修復バージョンを探します。
元のイメージに基づいて、AI に元のバージョンをソース コード パッケージで置き換えさせますが、PHP ソース コードのコンパイル設定パラメーターとオンラインでロードされたモジュールを AI に伝える必要があります。
CID=c266257f5735
docker exec $CID sh -c '
echo "===== 1. php-config 权威路径 ====="
php-config --prefix
php-config --ini-path
php-config --extension-dir
echo "===== 2. php --ini ====="
php --ini
echo "===== 3. /usr/local/php 是软链还是实体目录 ====="
ls -ld /usr/local/php
ls -la /usr/local/php/ | head -20
echo "===== 4. 【最关键】php / php-fpm 命令是软链还是实体拷贝 ====="
which php php-fpm php-config
ls -la $(which php) $(which php-fpm) 2>&1
ls -la /usr/local/bin/php /usr/local/bin/php-fpm /usr/local/sbin/php-fpm 2>&1
echo "===== 5. extensions 目录 ====="
ls -la /usr/local/php/lib/php/ 2>&1
ls -l /usr/local/php/lib/php/extensions/*/ 2>&1
echo "===== 6. php.ini 里的 extension 行 ====="
grep -nE "^[[:space:]]*(zend_)?extension" /usr/local/php/etc/php.ini 2>&1
echo "===== 7. 实际加载的扩展 ====="
php -m
echo "===== 8. 版本与 fpm 配置 ====="
php -v
php-fpm -t 2>&1
'
イメージが作成されたら、古い PHP コンテナを削除または停止し、新しいイメージに置き換えます。 PHP ソース コードにはまったく手を加える必要はなく、コンポーザーを再プルする必要もありません。 PHP レベルでのみ置き換えられ、切り替えは基本的にシームレスです。
ソースコードのインストール
サーバー上のソース コードから直接インストールする場合でも、他の方法でインストールする場合でも、考え方は同じで、近くにある修復バージョンを選択します。まず AI がサーバーの現在のステータスを分析し、修復されたバージョンのコンパイル構成と依存パッケージ情報を提供し、コンパイルが完了した後に古いバージョンを置き換えます。
パゴダ
Pagoda を使用している場合は、さらに簡単です。最も近い安全なバージョンを直接見つけて、コンパイルしてインストールし、切り替えることができます。それは絶対確実な操作です。運用やメンテナンスの能力がない場合は、Pagoda を使用して再デプロイし、Pagoda を直接使用することができます。
要約する
これら 3 つのオプションには区別はなく、環境によって異なります。 Docker は最も問題が少なく、イメージを変更するだけです。サーバーのソース コードをインストールする場合、重要なのは、まず AI にコンパイル パラメーターと読み込まれた拡張機能を認識させることです。パラメータが 1 つ異なる場合、コンパイルされたものは実行されません。 Pagoda ユーザーは直接コンパイルしてインストールし、その後切り替えるのが最も速い方法です。
開始する前に覚えておくべき点が 1 つあります。古いイメージやパッケージは削除せず、ロールバック用に保存しておいてください。自分でコンパイルした PHP には公式の承認はありません。何か問題があった場合は返却してください。これは計画そのものよりも重要です。皆さんもできるだけ早く安全なバージョンにアップグレードしていただきたいと思います
公開アカウントをフォローして、できるだけ早く最新情報を入手することを歓迎します
