EXPLORINEER
ja

Hatena

PHP 8.5.12の緊急リリースにpixivはどう対応したか - pixiv inside

セキュリティ初登場 723ポイント


pixivは、PHPに見つかった深刻な脆弱性(PHP2Shell)を直すための緊急セキュリティリリースに、約30分という短い時間で対応しました。この記事は、そのときの作業とビルド・デプロイの仕組みを説明しています。

何が起きたのか

2026年10月21日、PHPに深刻な脆弱性が見つかり、緊急のセキュリティリリースが予告されました。pixivは影響を受けるサービスを先にメンテナンスモード(サービスを一時停止して、作業中であることを知らせる状態)にしました。そして、修正版が出るのを待ってからパッチを当てました。22時41分に修正版のリリースに気づき、23時16分にメンテナンスモードを解除しました。

数字で見るポイント

  • パッチのリリースからメンテナンス解除まで、約30分でした。
  • メンテナンスモードは21日19時から始まりました。
  • 数GBあるコンテナイメージを、約6分でフルビルドできました。
  • CI基盤では1日30回のリリースを支えています。

事前準備が役に立った

pixivは、PHPの公式イメージが出るのを待つと時間がかかるかもしれないと考えました。そこで、PHPのソースコードから自前でビルドする方法も用意しました。PHPのバージョン番号だけを差し替えれば、すぐにビルドできる状態にしていました。さらに、ビルドに使うベースイメージを前もって取得し、メンテナンスモードを解除するスクリプトも準備しておきました。

なぜ大事なのか

脆弱性は悪意のある人に狙われる恐れがあるため、すぐに直すことが大切です。一方で、サービスを止める時間は短くしたいものです。pixivは、事前準備と速いビルド基盤を組み合わせることで、安全性と停止時間の短さの両方を目指しました。この対応は、移行直後の環境でも行われたことも注目点です。

今後の見どころ

  • 記事の後半で書かれている、うまくいかなかった点(メンテナンスモードの未実装箇所、ピクシブ百科事典のビルドの遅れ、PECLの不安定さ)の対策。
  • KubernetesへのロールアウトとNAT Gatewayを使わないregistry proxyの仕組み。
  • COPY --linkを使ったキャッシュの効果。

用語解説

PHP2Shell
PHPに見つかった深刻な脆弱性の通称。悪用されると、外部から不正に操作される恐れがある。
Kubernetes
多くのコンテナを自動で動かし、管理するための仕組み。

出典: Hatenaで原文を読む ↗

この記事は原文をもとにAIがやさしい言葉で書き直した解説です。事実関係は原文をご確認ください。