QuikStation セキュリティパッチ 2026-10（v13）
==============================================

概要

  RDX QuikStation 4 / QuikStation 8 / QuikStation8_10G の Web 管理画面
  （Apache / PHP）向けセキュリティパッチです。2つの層で構成されます。

  1. 緩和設定（qs-secfix.sh）
     Apache / PHP / TLS の設定変更のみ。全ファームウェア（1.x／2.x／3.x）に
     適用できます。php2shell（CVE-2026-109618、CVE-2026-109619）に対する
     PHP プロジェクト公表の緩和設定と、Web サーバー／TLS／PHP の堅牢化設定。
  2. PHP 修正（qs-phpfix.sh）
     PHP 7.4.33 ＋ PHP セキュリティチーム公式の CVE-2026-109618/109619
     修正を、ファームウェア 3.3.0.5 と同じ環境でビルドした PHP モジュール
     （libphp7.so）と php コマンド。php2shell の根本修正に加え、7.4 系最終版
     7.4.33 までの修正を全て含みます（7.4 系自体はサポート終了）。
     ファームウェア 3.3.0.5 専用です。

  ※本件脆弱性の根本修正は最新ファームウェア 3.3.0.5 にのみ適用可能です。
    そのため、本パッチは FW 3.3.0.5 への更新も含み、更新を自動で行います。
    （パッチは全てのバージョンに実行できます）

  実行するのは qs-patch.sh（または Windows の QS-SecurityFix.bat）1つで、
  ファームウェアに応じて次のように動きます。

    1.x（1.3.6〜1.5.1.26）   緩和設定を適用し、保存確認のため 1 回再起動（下記
                            PERSIST 参照）。RESULT: MITIGATED と「この装置の
                            ファームウェアバージョンにはPHP脆弱性対策の緩和策
                            しか適用できません。修正版を適用したい場合は以下
                            リンクを参照してFW2.5.2以降に更新してから、再度本
                            バッチを実行してください」を表示
    2.5.2〜3.2.x            緩和設定を適用した後、同梱の quikstation_3.3.0.5.swu
                            でファームウェアを 3.3.0.5 に更新（装置が再起動。
                            数分、機種により 10 分程度）。復帰後に PHP 修正、
                            続いてもう一方の起動領域にも 3.3.0.5 を書き込み
                            （再起動 2 回目）、両方の起動領域に PHP 修正を適用。
                            Windows／macOS／Linux のランチャーは再起動を待って
                            自動で続行します（装置上で直接実行した場合は、
                            再起動のたびに本パッチを再実行してください）
    3.3.0.5                 PHP 修正と緩和設定（未適用なら）を適用。もう一方の
                            起動領域が 3.3.0.5 より古ければ、そこにも 3.3.0.5 を
                            書き込み（装置が再起動 1 回）、両方の起動領域に
                            PHP 修正を適用。両方の起動領域が既に 3.3.0.5 の
                            場合は、適用後に保存確認のため 1 回再起動
                            （PERSIST: VERIFIED）

  装置の再起動はこれらのファームウェア更新の時だけです。再起動中はバック
  アップと iSCSI 接続が中断されますので、バックアップが動いていないことを
  確認してから実行してください。それ以外ではバックアップ動作・iSCSI 接続・
  ネットワークリンクには影響しません。適用時に Web 管理画面が数秒間停止
  します。パッチ実行中は Web 管理画面を操作しないでください。

ファームウェア更新との順序

  ファームウェア 3.3.0.5 は本パッチに同梱されており、PHP 修正に必要な更新は
  本パッチ自身が行います（2.5.2〜3.2.x、および 3.3.0.5 でもう一方の起動領域が
  古い場合。装置が再起動するので、バックアップが動作していない時間帯に実行
  してください）。
  - 現在 1.5.1.26 以前（1.x）：1.x→2.x の更新は本パッチでは行えません（3 段階、
    手順は下記リンク）。まず本パッチを適用して緩和設定で保護し、2.5.2 以降へ
    更新した後にもう一度実行してください（そのとき 3.3.0.5 への更新と PHP 修正
    まで自動で行われます）。
    https://drive.google.com/file/d/1C4yG0U92Van-UYk4u5ptwxw-rBgTesYe/view?usp=drive_link
  - 将来ファームウェアを再度更新・ダウングレードした場合は、更新後に本パッチを
    もう一度実行してください（2.x/3.x 間では緩和設定は残りますが、PHP 修正は
    書き換わった起動領域から消えます）。v10 からは修正済み PHP の控えを装置内
    （/etc/qs-secfix/php、約 6 MB）に保管し、起動時に書き換わった起動領域の
    PHP が対応ファームウェア（2.8.0.8〜3.3.0.5）の標準 PHP なら自動で修正を
    入れ直しますが、確実を期すため再実行を推奨します。
  ファームウェア 3.3.0.5 単体: https://overlandtandberg.co.jp/downloads

必要なもの

  - QuikStation で SSH を有効にすること（Web 管理画面：System Settings >
    Options > Diagnostics > Allow Remote Access (SSH)）と、同じ画面から
    ダウンロードした鍵ファイル。鍵は装置ごとに異なります。
  - 装置のアドレス（Web 管理画面を開く時のアドレス）。

Windows（クリック1つ）

  1. 鍵ファイルをこのフォルダ（QS-SecurityFix.bat の隣）に保存します。
  2. QS-SecurityFix.bat をダブルクリックします。
  3. 装置のアドレスを入力し、確認で YES と入力します。
  4. 最後に「RESULT: PROTECTED」と表示されれば完了です（1.x の装置では
     「RESULT: MITIGATED」と PHP 修正を得るための案内）。ファームウェア更新と
     その再起動はツールが自動で処理します（必要な装置では全体で 10〜25 分
     程度かかることがあります）。

  確認のみ：  QS-SecurityFix.bat <アドレス> /STATUS
  元に戻す：  QS-SecurityFix.bat <アドレス> /RESTORE
  PC へのインストールはありません。このフォルダ内の plink.exe / pscp.exe
  （PuTTY）を使用し、レジストリは変更しません。Windows 7 以降。
  装置へ約 26 MB（ファームウェア更新が必要な場合は＋96 MB）を転送します。

macOS / Linux

  ./qs-patch-apply.sh <アドレス> <鍵ファイル>             適用
  ./qs-patch-apply.sh <アドレス> <鍵ファイル> --status    確認のみ
  ./qs-patch-apply.sh <アドレス> <鍵ファイル> --restore   元に戻す

  手動の場合：
    ssh -i <鍵ファイル> vtx@<アドレス> "mkdir -p /tmp/qsfix"
    scp -O -i <鍵ファイル> qs-patch.sh qs-secfix.sh qs-phpfix.sh libphp7.so php vtx@<アドレス>:/tmp/qsfix/
    （-O：新しい OpenSSH で必要。装置に SFTP がありません）
    （--status の出力に PLAN: FWUPDATE... の行がある場合のみ）
    scp -O -i <鍵ファイル> quikstation_3.3.0.5.swu vtx@<アドレス>:/srv/www/tmp/
    ssh -t -i <鍵ファイル> vtx@<アドレス> "sh /tmp/qsfix/qs-patch.sh"

装置のコンソール / USB メモリから

  上記 6 ファイル（qs-patch.sh qs-secfix.sh qs-phpfix.sh libphp7.so php
  quikstation_3.3.0.5.swu）を FAT32 の USB メモリにコピーし、コンソールに vtx で
  ログイン後、mount -t vfat /dev/disk/by-label/<ラベル> /mnt/usb で
  マウントして
    sh /mnt/usb/qs-patch.sh
  を実行します。.sh をメモ帳で開かないでください（改行が壊れます）。

適用後

  - 「sh qs-patch.sh --status」で RESULT: PROTECTED（1.x の装置では
    RESULT: MITIGATED）と表示されること。
  - PHP 修正が稼働している装置では、Web 管理画面のバージョン情報（About、
    システム画面）のファームウェアバージョン末尾に「_phpsec」が付きます
    （例：03.003.00.5_phpsec）。修正済み PHP が稼働している間だけ表示され、
    ファームウェア更新や --restore で修正が外れると自動的に消えます。
  - Web 管理画面への接続には TLS 1.2 以上が必要になります。
  - 緩和設定で Web サーバーが起動できなかった場合、自動的に元に戻します。
  - ファームウェア更新後は本パッチをもう一度実行してください。
  - QuikStation 8 は起動時にシステムを RAM に展開して動作するため、本パッチは
    ディスク上の起動領域と稼働中の RAM 上の両方を更新します。RAM 側の更新が
    できない場合は RESULT: INSTALLED - RESTART THE UNIT と表示されます。Web
    管理画面から装置を再起動し、復帰後にもう一度本パッチを実行してください。
  - RESULT: FIRMWARE UPDATE IN PROGRESS はファームウェア更新が受理され、まだ
    再起動していない状態です。何も変更していません。再起動が終わるまで（長くて
    15 分程度）待ってから再実行してください。その前に再実行しないでください。
  - PERSIST: VERIFIED は、パッチが再起動前に書いた目印が再起動後も残っている
    ＝ストレージが書込みを保持している、という意味です。一部の装置には書込みを
    黙って捨てる故障があり、再起動でしか分からないため、1.x と両方の起動領域が
    3.3.0.5 の装置はパッチが 1 回再起動します。
  - RESULT: STORAGE FAULT は内蔵ストレージが読み取り専用になった装置です
    （まれ）。再起動を伴うファームウェア更新は行わず、緩和設定と PHP 修正は
    次の再起動まで有効です。ツールの記録ファイルと Web 管理画面からダウン
    ロードしたログをサポートまで送ってください。
  - 作業後は Web 管理画面で SSH を無効に戻し、ダウンロードした鍵ファイルを
    削除してください（鍵ファイルは装置への管理者ログインに使えます）。

ファイル

  QS-SecurityFix.bat    Windows 用ランチャー（クリック1つ）
  qs-patch.sh           パッチ本体（装置上で実行、下の 2 つを呼び出す）
  quikstation_3.3.0.5.swu  ファームウェア 3.3.0.5（必要な装置にパッチが書き込む）
  qs-secfix.sh          緩和設定
  qs-phpfix.sh          PHP 修正のインストーラ（3.3.0.5 専用）
  libphp7.so, php       修正済み PHP 7.4.33（3.3.0.5 用ビルド）
  qs-patch-apply.sh     macOS / Linux 用ランチャー
  plink.exe, pscp.exe   SSH プログラム（PuTTY プロジェクト）、.bat が使用
  qs-keyconv.ps1        鍵ファイルを plink 用に変換
  PUTTY-LICENCE.txt     PuTTY 2 プログラムのライセンス
  README.txt / README-ja.txt    このファイル
  SHA256SUMS            ファイル改ざん確認用のチェックサム
