WordPress 5.2.3 セキュリティパッチの適用

2019年9月5日にリリースされたセキュリティ&メンテナンスパッチWordPress5.2.3について書きます。 wp-config-sample.phpが更新されていましたが、動作に影響がある変更はなく実質的には気にする必要はありませんでした。5.2.1のように白画面になることもありませんでした。
 しかし、” Page Visit Counter ”がエラー(具体的に何のエラーなのか情報がない)で止まっていました。この停止問題はプラグインを設定ページで有効化することで解決しています。

WordPress 5.2.3 で対処された脆弱性について確認します。 WordPressのサイトの情報では1件ごとに明確にされるべき影響度とか影響範囲の情報がなく、問題検出者への感謝?の公開の場でしかありません。何とかしてほしいが、他のサイトで確認してみましょう。 9/12時点でJVNのほうにはまだ登録されていないように見えます。NVDの情報では、つぎの7件がWordPress5.2.3で対処されたことが分かります。

CVE-2019-16223WordPress before 5.2.3 allows XSS in post previews by authenticated users.
CVE-2019-16222WordPress before 5.2.3 has an issue with URL sanitization in wp_kses_bad_protocol_once in wp-includes/kses.php that can lead to cross-site scripting (XSS) attacks.
CVE-2019-16221WordPress before 5.2.3 allows reflected XSS in the dashboard.
CVE-2019-16220In WordPress before 5.2.3, validation and sanitization of a URL in wp_validate_redirect in wp-includes/pluggable.php could lead to an open redirect.
CVE-2019-16219WordPress before 5.2.3 allows XSS in shortcode previews.
CVE-2019-16218WordPress before 5.2.3 allows XSS in stored comments.
CVE-2019-16217WordPress before 5.2.3 allows XSS in media uploads because wp_ajax_upload_attachment is mishandled.

9/11にDBに登録されたばかりで影響範囲など詳しい情報はまだありませんでした。

想像ですが、9/12時点で過去バージョンに対してセキュリティ修正のみ(WordPress5.1.2?)を提供しようと準備しているように見えます。5.2.3のリリースには「In addition to the above changes, we are also updating jQuery on older versions of WordPress. This change was added in 5.2.1 and is now being brought to older versions. 」の記述があります。しかし明示的には5.1.2について特にアナウンスしているようには見えないので、本当にリリースされるかはわかりません。どうしても欲しければチームに入って推進すればよいかもしれません。

移行先の検討について 


以前に、利用しているホスティングサービスのサービス終了に伴い移行先の検討すると書きました。一通り情報収集もおわりそれぞれのサービス内容の把握もほぼできました。後は動作検証によって移行先を最終的に選定を行うだけですが、窓口に問い合わせた結果、”代替サービスの案内を郵送”の時期は8月下旬という回答がありました。この時期を反映して、つぎのようにスケジュールを見直しします。

最終的な判断は資料が届いてからにするとして、本格的に情報収集を始めます。
 また、これまでに仮決めしていた移行スケジュールは2019年10月に移行先決定でしたが、現行サービス終了から逆算してスケジュールを決めなおすことにします。※ 現在の運用状況だと、1か月並行運用、1か月切り替え期間、1か月予備期間くらいをとらないと余裕を持った作業ができなさそうです。

1)代替サービスについての資料の受領。 2019/8/下旬

2) 移行スケジュールの確定。 2019/8/25
3) これ以降のスケジュールは、代替サービスの案内書類の受領時期により見直しする。
3-1) 書類レベル調査完了 2019/8/30
   ここまでに代替サービス案内を入手済みと仮定。未入手ならスケジュール見直し
3-2) 移行先候補 最大3つまでに絞り込み 8/31
3-3) 実地調査 9/1-9/15 実サイトを仮運用して調査
3-4) 移行先確定 9/16
3-5) 申し込み環境構築 9/17-9/20
3-6) バックアップ・復旧、定期実行パッチ等の運用操作の動作検証 9/20-9/30
3-7) 現行サイトからのサイトデータの仮移行 10/1-3
3-8)移行後の環境の動作検証 10/3-10
3-9) 移行後環境の操作手順等手順書類更新作成 10/11-10/15
3-10) ドメイン切り替え依頼 10/16
3-11) 現行サイトからのサイトデータの移行(仮本番) 10/17-20
3-12) プロバイダによるドメイン切替作業&反映 10/16-10/30
3-13) 新クラウドサーバでのドメイン運用開始 11/1
3-14) 新クラウドサーバでのmic.or.jpドメイン運用検証 11/1-15
3-15) 現行サイトからのサイトデータの移行(本番) 11/1-2
3-16) 検証期間予備 11/16-11/30
3-17) ドメイン移行期間予備 12/1-12/27
  

スケジュールの項番3以降は、前回公開したスケジュールと同じです。

なお、移行先等は移行先検討のページに記載しています。

いろいろ設定変更前の事前確認と設定変更で発生した問題調査について

今回、WiFi周りの設定変更をした際に事前に影響範囲を想定してWiFiの設定変更と同時に必要な対処したはずでした。しかし、あとから太陽光発電のデータがアップロードされていないことに気がついて事後対処しました。そこで、この問題の対策と、今後の検討事項について書きます。

まず、本件の発生に至るまでの経緯です。7年ほど前に太陽光発電システムを導入しWiFi接続の設定をしました。このとき、太陽光発電システム側のボックスのふたを開け箱の中にあるLAN端子にPCとクロスケーブルを使って接続し、ログインパスワードやWiFi接続設定をした覚えがあります。通常の環境ならそのようなことをする必要などないはずですが、ルーティングの構成か固定IPか何かの理由でそのような対処をした覚えがあります。

 上の状況で1年ほど使用した後、屋内ネットワークの強化のため古い無線LANはそのままで、新しい無線LANを導入しました。そして、その後購入したスマホ、タブレット、IoT機器類は新しいルータのほうに接続して使っていました。そのような状況で各端末の設定はすべて新しい無線LANを使用していると認識していました。

 そして、3年ほど前に20mほど離れた場所にWiFi端末を配置にすることにしました。その際にWiFi接続できるようにするために古い無線LANを20mほど離れた場所に移設しました。この状態でも太陽光発電システムのデータアップロードは正常に行えていました。このため、この時点で太陽光発電システムは新しいLAN経由でアップロードしているもの誤認していました。その後、20mほど離れた場所の端末の更新や設定変更など行いましたが問題なく使えておりました。

今回、20mほど離れた場所の無線LANの設定を変更しました。このときWiFi端末今回、20mほど離れた場所の無線LANの設定を変更しました。このとき20mほど離れた場所のWiFi端末の設定も変更したので、これについては問題ありませんでした。しかし、この無線LANの設定変更後、太陽光発電システムのデータがアップロードされない状態になっていました。

この問題に関して原因と対策について考えます。まず、原因のほうからです。直接的には太陽光発電システムのアップロードが該当の無線LAN経由となっていると認識していなかったことです。それに関して、どこを経由して通信しているのかを設計、記録しておくことで解決できそうですが、実際には設置時に記録していていました。配置を更新した際には更新を行うべきですが、今回は更新していないので更新した記録がありません。さらに、配置を変更したが、記録を更新していなかったものと誤解もしています。また、有線LAN・無線LANのどちらも構成変更が容易に行えます。その変更が容易なところは便利でもあり、記録があいまいになる原因でもあります。このため、記録にだけ頼るのは無理がありそうです。それから、事前の調査については、記憶と不十分な状況証拠に頼って判断したことが、原因と考えるのが妥当でしょう。

つぎに対策です。問題の検知については、本件においては対策済みなので問題ないと判断します。そこで、事前検出と、事後対処に分析します。先に事後対処の進め方です。いくつかやり方があります。1つは、正攻法で、発信源(起点)から順番に正常に動作しているかどうか順番に追っかける方法です。また、問題点を想定して順に情報採取していく方法があります。今回は、問題発生のきっかけが分かっているので問題ポイントがあらかじめ絞られているので、別のアプローチが良いでしょう。原因と想定される変更箇所をピックアップして順に元に戻す方法です。今回はこの方法を採用しました。本来使用していると想定していた無線LANの設定は変更していなかったので最初は謎でしたが、想定される範囲を順に広げていき比較的早く問題個所を特定できたと思います。この点も問題ないでしょう。

さて、最後に事前検出についてですが、これはいろいろ検討するべきネタがありそうです。現状は対処方法を用意できていません。何か良い方法を準備したほうがよさそうです。※ これは、今後の検討課題として検討していくことにします。

WordPress脆弱性の再現方法 再現検討

脆弱性 CVE-2019-8943対処済みなのかどうか情報がふにゃふにゃしているので再現検証してみようかと少し調べてみました。 
NVDによる再現方法などの情報があるブログにあるということで、それを参照してみました。

このサイトの再現確認状況の情報は影響バージョンは4.9.9と5.0.1でが未対処の情報しかなく最近の情報がないようにみえます。以下翻訳文面です「 影響範囲: この記事で説明されている脆弱性は、バージョン4.9.9と5.0.1のセキュリティパッチによって悪用されないようにされました。ただし、Path Traversalはまだ可能で、現在パッチは適用されていません。不適切なPost Metaエントリを処理するプラグインがインストールされているWordPressサイトは、悪用を依然として可能にします。私たちは、WordPressのセキュリティ月の準備中に、過去何百万ものアクティブなインストールを含むプラグインがこの間違いをしているのを見ました。 WordPressのダウンロードページによると、このソフトウェアはインターネット上の全Webサイトの33%を超える割合で使用されています。プラグインが問題を再導入し、古いサイトなどの要素を取り込む可能性があることを考慮すると、影響を受けるインストールの数は依然として数百万にのぼります。 テクニカル分析 パストラバーサルとローカルファイルインクルージョンの両方の脆弱性は、ボタンをクリックするだけでスキャン時間3分以内に当社の主要なSASTソリューションRIPSによって自動的に検出されました。しかし、一見したところバグは悪用できないようでした。脆弱性の悪用ははるかに複雑ですが可能であることが判明しました。 」


 煮え切らない情報の原因は、つぎの複合で発生しているように思われます。

・検出者が、具体的にどのバージョンで対処されているかのをレポートしていない。→”2019/2/14:WordPressがパッチ提供し、そのパッチで対処済みであることを確認した”ししかなく、対処されたWordPressの特定バージョンでの検証悔過を公開していない。
・検出者は単純な?再現方法を公開していない。→誰でも検証できる状態になっていない?
・WordPressが2019/2/14よりあとにリリースしたセキュリティパッチは5.1.1しかないが、パストラバーサルの対処をしたと明言していない。→脆弱性はWordPress自体ではなくプラグイン側のAPI使用方法にあると考えているのが原因かもしれません。
・WordPress単独では脆弱性を悪用されることはなく、ある機能を不適切に使用したプラグイン(該当するプラグインは複数(多数?)ある)を組み込んでいる場合に脆弱性を悪用される。

このように脆弱性の作り込み原因の責任がどこにあるのか不明確な状態であるためこのような状態になっているといえます。WordPress側で対処したのだから明確に情報公開をするべきでしょう。

WordPress 5.2.2の後に特に情報なし?

WordPress 5.2.2はセキュリティ修正のようなリリースのされ方でしたが、7/4時時点でWordPressのサイトでは5.2.2はメンテナンスリリースとしかかかれていません。ほかのOSSの情報公開のタイミングを参考にして後から公開されるものとして書いていました。ここでは、過去のWordPressセキュリティ公開タイミングを再確認して、5.2.1、5.2.2がどうなのかを推測してみます。

 直近のセキュリティ修正5.1.1と5.0.1についてみます

 WordPress5.1.1
WordPressサイトでの5.1.1リリース日 2019/3/12
WordPressサイトでの5.1.1セキュリティ情報公開日 2019/3/12
JVNへの5.1.1(CVE-2019-9787)の情報登録日 2019/4/10 約1か月後

 WordPress5.0.1
WordPressサイトでの5.0.1リリース日 2018/12/13
WordPressサイトでの5.0.1セキュリティ情報公開日 2018/12/13
JVNへの5.0.1(CVE-2019-8942)の情報登録日 2019/4/1 約3か月後

その他(CVE-2019-89435.0.3まで?))
・→ まだパッチが公開されていないとされている(2019/7/4時点)

パッチ公開とほぼ同時に脆弱性情報が公開されるパターンもあれば、パッチがない脆弱性情報が公開されるパターンもあります。 CVE-2019-8942 についてはWordPressサイトの セキュリティ情報公開日 しているものがWordPress5.0.1のリリース日でしかなく、JVNへの登録日の直前に情報公開されたのなら、パッチリリルースの3か月後に脆弱性情報が公開されたことになる。このようにいろいろなパターンがあるので、5.2.1も5.2.2もいずれも今後セキュリティ情報が公開される可能性がまだ残っているということになりそうです。  もしもそうなら、CVE-2019-8943 は5.2.1で修正されていたということなると推測します。


本サイトが利用しているクラウドサービスのサービス停止に伴うサイトサービスのスケジュールについて

2019/7/2時点で次のように移行スケジュールを仮置きします。

1)移行先サービスの調査。 2019/6/26~7/30

2) 移行スケジュールの確定。 2019/8/5
3) これ以降のスケジュールは、代替サービスの案内書類の受領時期により見直しする。
3-1) 書類レベル調査完了 2019/8/30
   ここまでに代替サービス案内を入手済みと仮定。未入手ならスケジュール見直し
3-2) 移行先候補 最大3つまでに絞り込み 8/31
3-3) 実地調査 9/1-9/15 実サイトを仮運用して調査
3-4) 移行先確定 9/16
3-5) 申し込み環境構築 9/17-9/20
3-6) バックアップ・復旧、定期実行パッチ等の運用操作の動作検証 9/20-9/30
3-7) 現行サイトからのサイトデータの仮移行 10/1-3
3-8)移行後の環境の動作検証 10/3-10
3-9) 移行後環境の操作手順等手順書類更新作成 10/11-10/15
3-10) ドメイン切り替え依頼 10/16
3-11) 現行サイトからのサイトデータの移行(仮本番) 10/17-20
3-12) プロバイダによるドメイン切替作業&反映 10/16-10/30
3-13) 新クラウドサーバでのドメイン運用開始 11/1
3-14) 新クラウドサーバでのmic.or.jpドメイン運用検証 11/1-15
3-15) 現行サイトからのサイトデータの移行(本番) 11/1-2
3-16) 検証期間予備 11/16-11/30
3-17) ドメイン移行期間予備 12/1-12/27
  

なお、移行先等は移行先検討のページに記載しています。

サーバー移行先検討のページを更新しました。

 
移行先検討の件です。現在、各サービスについて調査しており、ここまでの結果を移行先の検討のページに反映・更新しました。代替サービスの案内の資料はまだ届いていないので、代替サービスの部分は空欄です。最終的な判断は資料が届いてからにします。ほかによいサービスがあるなどコメントなどあれば情報をくださいお願いします。
 また、移行スケジュールは来週決める予定です。

ついに来た。サービス停止の案内。移行先検討を本格的に開始します。

 ようやく明日、梅雨入りとなる見込みで当分水やりの手間ははぶけそうです。

さて、以前に移行先の検討すると書きましたが、ついに2019年12月27日にサービス終了する旨のメールが来ました。後日代替サービスの案内を郵送すると記載されていました。最終的な判断は資料が届いてからにするとして、本格的に情報収集を始めます。
 また、これまでに仮決めしていた移行スケジュールは2019年10月に移行先決定でしたが、現行サービス終了から逆算してスケジュールを決めなおすことにします。※ 現在の運用状況だと、1か月並行運用、1か月切り替え期間、1か月予備期間くらいをとらないと余裕を持った作業ができなさそうです。

WordPress 5.2.2の修正内容 と脆弱性  

WordPress5.2.2のことを書く前に、以前に書いたWordPress脆弱性で完結できていないものを再確認します。
まず以前に書いたCVE-2017-6514について書きます。JVNのDBには2019/6/6に登録されています。これは私がここに投稿した日より2週間ほど遅い。JVNの情報から修正内容など新たに分かる情報はありませんでした。最近の動きは6/14にある脆弱性チェックツールで検出できるように強化されたことが情報公開されています。このタイミングでの情報公開なのでWordPressの修正コードなどの情報をもとにチェックルールを作成したものと推測されます。まだWordPress側では脆弱性情報が公開されていません。現在関係機関と公開に向けて調整しているのではないかと推測します。
つぎに、WordPress5.2.1の修正情報の再チェックです。前回チェックしたときに内容チェックに終始して、後で更新されることは想定していませんでした。ぱっと見た範囲では、変わっていません。この状況だと更新される可能性がありそうです。
さて、本題のWordPress5.2.2の修正内容についてです。13件のバグ修正とWordPress5.2で追加したサイトヘルス機能をちょっと更新したとリリース情報には記載されています。

#45094 #46289 #46997 #47227 #47429 #47558 #47475 なし

#46749 4.3

#46881 #46957 #46960 #47070 #47158 5.2

作り込みバージョンの記載がないもの7件、4.3が1件、5.2が5件です。
バージョンの記載がないものの修正内容は次ように、脆弱性に関係しそうな記述はありませんでした。
#45094 ダッシュボードのいくつかのエレメントでフォーカスされない
#46289 メディアモーダルでのナビゲーションアローのリンク先間違い
#46997 テーマの更新でリンクが動作しない
#47227 サイトヘルスタブの文字列修正 → 5.2での強化分の修正
#47429 更新パッケージ
#47558 更新ページのアップデート → 5.2.2で勝手にアップデートした件でしょう
#47475 typoの修正

脆弱性に該当しそうな修正内容の情報はありません。5.2.2は”セキュリティ更新”として更新が自動適用されたり、修正公開の事前情報など脆弱性対処をしたりした状況と推測される状況なので、セキュリティ修正がリポジトリには登録されたソースコードはあるが、公開された修正項目には情報がないという状態だと思われます。
 以上の状況から、別途公開済みの5.2.2か5.2.1で修正された脆弱性情報が後日公開されるものと推測されます。


それから、サービス停止を引き起こしかねないアップデートを勝手に適用するというはそれ自体がDOSの脆弱性と言ってしまってもよいのではないでしょうか。サービス停止したことを自動検知して自動リカバリするとかいろいろな対処がありそうです。

なにー、WordPress5.2.2。 やってくれたな。

どこかで、自動アップグレードする設定とかあったのでしょうか?  更新ボタンも押していないのに「WordPress5.2.2にアップグレードした」とメールが送られてきた。たしかに、WordPress5.2.2 が6/18にリリースされていて、  https://wordpress.org/news/2019/06/wordpress-5-2-2-maintenance-release/  このサイトにも勝手に適用されていた。
 ”更新”の記載には「最新バージョンの WordPress をお使いです。 今後のセキュリティ更新は自動的に適用されます。」と書かれている。 これを信じるならば、まだ セキュリティ情報は出ていないが 5.2.2で脆弱性の対処が行われたのでしょう。
以前に予想したとおりの状況ですが、勝手に修正を適用されてしまうのは想定外でした。 5.2.1の時みたいにセキュリティ強化した権限設定の影響でサービスダウンしてしまったらどうしてくれるつもりでしょうか。その辺の不満を越える危険をはらんだ問題だというならわからなくはないが、この仕掛けを基盤にして業務用に使用しているところは沢山あります。業務が止まったら大変なことになります。この辺を踏まえて設定で自動適用するかとか自動適用する脆弱性の深刻度レベルを設定できるようにするとか、工夫してほしい。

WordPress5.2.2の修正内容をチェックはまた明日。