このスタンドアロンラボは、リビジョン固定されたMagento Open Source 2.4.9のチェックアウト上でStyleSmugglerのコンポーネントレベルのPHP実行プリミティブを再現し、AdobeのVULN-39341パッチが同一の入力をブロックすることを証明します。
この証明は非破壊的です。含まれるPHPは/tmpに1つのランダムマーカーのみを書き込むことができます。コマンドの実行、ファイルのダウンロード、コールバックの開始、オペレーター提供のペイロードの受け入れはできません。
このラボが提供するもの:
755e34dd689021c5165db9d35ecff74f7dc51527に固定された標準のMagento 2.4.9 Dockerスタック;このラボは、標準の未認証HTTPエクスプロイトを主張しません。コンポーネントプローブは実際のメールテンプレートモデルから開始されるため、危険なシンクとパッチ境界を証明しますが、ネットワークからテンプレートへの欠落したコネクタは証明しません。合成HTTPルートは追加されません。
所有しているシステム、または明示的にテストを許可されたシステムでのみ使用してください。PHPプローブを本番のWebルートに配置しないでください。実際のインストールでは、読み取り専用バリデータを使用するか、使い捨てのステージングクローンを検証してください。
要件:
開発者モードのストアフロントゲートウェイのみが公開され、ループバック(デフォルトでは127.0.0.1:8096)上のみです。2つ目の非公開のnginxゲートウェイは標準の本番エラー処理を選択するため、レポートテストはMagentoの通常のレポート識別子を受け取ります。MariaDB、Redis、OpenSearch、PHP-FPM、およびそのレポートゲートウェイはホストネットワークに公開されません。
cd docker-lab
cp .env.example .env
docker compose up -d --build
docker compose logs -f php
最初のMagentoクローン、依存関係のインストール、アプリケーションのインストールには通常15〜40分かかります。PHPログにReadyと表示されたら、以下を実行します:
docker compose exec -T php bash /lab/scripts/run-ab.sh
または便利なターゲットを使用します:
make up
make wait
make ab
A/Bコマンドは常にソースをパッチ適用済み状態のままにしようとします。
テストは、独立してテストされた両方の半分が期待どおりに動作する場合にのみ合格します:
Unpatched report: raw-tag=true, guard=false
Patched report: raw-tag=false, guard=true, neutralized=true
Unpatched component: marker=true
Patched component: marker=false
[PASS] Report storage and component execution match the required A/B controls.
HTTP 200、レンダリングされた通知、生成されたエラーレポート、またはスローされた例外は、実行の証明として受け入れられません。レポートと実行のチェックは分離されたままです。それらの共同成功は、証明されていない標準HTTPコネクタを発明するものではありません。
make vulnerable
make report # expected: raw tag preserved, no execution guard
make probe # expected: execution_observed=true and exit 0
make patched
make report # expected: exit guard present, payload tag neutralized
make probe # expected: execution_observed=false and exit 2
パッチ適用済み状態でmake probeが2を返すことは期待されるネガティブ結果です。make abは両方の終了ステータスを処理し、完全なA/Bが合格した場合のみ0を返します。
このチェックはMagentoを起動したり、マウントされたツリーからコードを実行したりすることはありません。コンテナにはネットワーク、Linuxケーパビリティがなく、読み取り専用のルートファイルシステムと読み取り専用のターゲットマウントがあります。
make validate TARGET=/absolute/path/to/magento
完全にパッチ適用済みの期待される判定:
Summary: 9/9 controls present
Verdict: FULL_CONTROL_SET_PRESENT
それ以外はFULL_CONTROL_SET_NOT_CONFIRMEDとして報告され、自動的に悪用可能とは見なされません。正確なCommerceエディション/バージョンを確認し、サポートされているデプロイプロセスを通じてAdobeのバージョン一致パッチを適用してください。
より正確な名前はマーカーのみのコンポーネントコード実行プローブです。エンドツーエンドのリモートRCEには、テストされたビルド上で標準のリモートリクエストが独自の独立したマーカーまたはコールバックを生成する必要があります。
データフロー、9つのパッチコントロール、および証明強度テーブルについては技術ノートを参照してください。正確なテスト結果はVALIDATION.mdに記録されています。
公式の速報と、デプロイされたリリースに一致するパッチを使用してください:
ここに埋め込まれたパッチは、公開2.4.9モノレポラボ専用のパスマッピングです。本番のComposerインストールに直接適用しないでください。パッチ適用は、既に存在するインプラントを削除したり、露出した認証情報を復元したりもしません。
make down # preserve volumes
make reset # delete this lab's source, database, and OpenSearch volumes