SONAE KNOWLEDGE / PHP SECURITY / 04
Composerの脆弱性監査。PHP本体を更新しても残る依存関係を確認する
lockファイル、実際のvendor、フレームワークの注意喚起を照合し、監査0件を安全保証にしない。
公式資料確認:2026-10-26/AIによる資料確認・執筆
公式情報には各節で出典を付けています。確認表・架空例・受入条件はSONAEの提案です。制作と資料確認にAIを使用。本人の編集確認は未了です。専門家による独立した監修は受けていません。
PHP本体と、アプリの部品は別に見る
Composerのauditは、既定でPackagistの情報などに基づき依存パッケージを点検します。--lockedはvendorの状態によらずlockファイルを対象にします。そのため、lockを調べた結果と本番へ配置された部品の照合を別に記録します。この記事はコマンドの実行例の説明で、顧客の依存情報を外部へ送信する作業は行っていません。
公式情報:Composer公式:auditと--locked(確認 2026-10-26)
脆弱性が出る場所は、直接入れた部品だけではない
SONAEの点検案では、直接の依存と、その部品が必要とする間接の依存を一覧へ含めます。開発環境だけの依存を除く場合も、どの構成を調べた結果かを記録します。外部照会を伴う監査は、通信先や送られる情報を管理者が確認した環境で行います。取得に失敗した結果を、脆弱性0件と取り違えないようにします。
SONAEの点検・運用提案。架空例。
宣言・配置・注意喚起の三つを照合する
図の内容を文章で読む
lockの部品:直接・間接・対象版。配置された物:vendor・成果物の識別。照合した結果:告知・後続修正・受入。進めない判断:監査0件=全体が安全/自社コードと設定は別に確認。監査の照会失敗、未確認、検出0件を別の状態として扱います。
2026年10月のSymfonyの例
Symfonyは10月15日、HttpFoundationのCVE-2026-108082を公表しています。最初の修正は5.4.54、6.4.46、7.4.19、8.1.7です。公式資料には空白区切りの解析に関する後続修正も記載され、6.4.48、7.4.21、8.1.9が示されています。単に「最初の修正版へ上げた」で終わらせず、採用枝の後続修正と互換性も担当者が確認します。全PHPアプリがこの部品を使うわけではありません。
公式情報:Symfony開発元:CVE-2026-108082と後続修正(確認 2026-10-26)
更新の単位を、試験と配置まで固定する
SONAEは、対象コミット、lockのハッシュ、配置物の識別、監査した時刻を一組にする運用を提案します。開発機でlockを直しても、古いvendorを再利用した配置物なら同じ結果になりません。検証用の別環境で、通常の処理と拒否する処理を確認し、配置後の識別が一致したことを残します。監査対象の部品を確認せず、一括更新だけを本番で試す進め方は避けます。
SONAEの点検・運用提案。架空例。
フレームワークの設定も、公開時に点検する
Laravel 12.xの配備資料は、本番のAPP_DEBUGをfalseにするよう案内し、trueの場合に機微な設定が利用者へ見えるリスクを説明しています。これは依存監査とは別の設定確認です。SONAEの受入票では、公開ルート、エラー表示、ログの取り扱いを担当者が確認する欄を設け、更新成功だけで公開準備が終わったとしません。
公式情報:Laravel 12.x公式:デプロイとデバッグ設定(確認 2026-10-26)
監査0件の意味を、限定して説明する
0件は、照会できた情報と対象の依存について検出がなかったという結果です。自社コードの認可漏れ、新たな未公表問題、配備設定の誤りまで否定できません。対応を見送る項目には根拠、到達条件、期限、再判断の担当を残します。このページのCLIは説明用で、未知のプロジェクトをホスト上でinstallしたり、プラグインやスクリプトを動かしたりして確認する指示ではありません。
SONAEの点検・運用提案。架空例。
監査結果の読み合わせを、四つの状態で行う
架空の保守会議では、検出がある、照会に失敗した、対象が違う、対象を照合して検出がなかった、の四状態を区別します。修正済みと判断するには、警告が消えたことに加え、変更したlockと配置物が一致する証拠を確認します。間接依存が更新を阻む場合は、親パッケージと互換性を管理担当が調べ、警告の一括無視で終えません。既知の修正に機能上の後続変更がある場合、業務で使う経路と試験条件を記録します。対象を絞った監査結果を、開発環境や別のリリースへ流用しないことも受入条件です。
SONAEの点検・運用提案。架空例。
架空環境での受入計画
以下は未実行の計画です。実測の合格記録ではありません。
- 照会先へ到達不能
- 条件:監査が完了しない
期待結果:0件とせず再確認待ち - lockだけ修正
- 条件:配置物が旧vendor
期待結果:本番反映は未完了 - 間接依存が検出
- 条件:直接依存は更新済み
期待結果:親の制約を追って判断 - 既知警告は解消
- 条件:対象と配置を照合
期待結果:コード・設定の点検は継続
説明用・未実行。管理された複製環境で、通信とツールの版を確認して使用する例: composer audit --locked --format=json lockのみの照会結果です。本番vendorの照合を別に行います。
社内で使う確認票
SONAEの運用案・架空例。秘密の値を記入しないでください。
- 対象版
- コミット・lockハッシュ・配置物識別
- 監査
- ツール版・情報源・時刻・通信の承認
- 判断
- パッケージ・CVE・到達条件・後続修正
- 受入
- 互換性・反映・公開設定・残課題
完了前のチェック
- lockと実際の配置物を対応
- 間接依存と情報取得失敗を見落とさない
- 最初の修正と後続修正を確認
- 監査結果をコード・設定の保証に拡張しない
一次資料と確認範囲
資料の対象条件と掲載内容を確認して構成した記事です。顧客への接続や攻撃再現はしていません。資料の改訂を自動追従するものではありません。実施直前に公式資料と配布元の最新案内を再確認してください。