WordPress5.3はとりあえず様子見

 WordPress5.3が11/12にリリースされたので、別に構築したWordPress検証サイトで動作確認しています。

■更新する際に留意しておきたい点

 WordPress5.3へコンテンツの更新を行った後に、DBの更新が行われる。DB構成が更新されていそうです。どこが更新されたのかは、ぱっと見ではわかりません。
 → 更新でトラブルが発生した場合、書き戻しするにはDBの書き戻しも必要となる。更新&検証の際には、切り戻し時間にDB書き戻し時間も考慮しておく必要がある。当然だが、更新直前にDBデータのバックアップを行う時間も考慮しておく必要がある。

■WordPress5.3での変更点の確認

 エディタ機能が強化された。  メニューに「ブロックのグループ化 」が追加されています。 
 全体的にはあまり大きな強化や変更はない。急いで更新したいというものはない。また、更新に関して、問題も特に問題はなかった。そのため、とりあえず5.3の適用は保留し、今後提供されると推測されるセキュリティパッチがで提供されたタイミングで更新することにする。

WordPress5.2.4セキュリティパッチ

5.2.4セキュリティパッチが適用されてました。動作的には問題ないようなので、パッチ検証環境以外にも適用します。

 このほかに、5.3 Release Candidate が出ています。特にほしい機能があるわけではないので、取り換えず様子見です。

 そして、以前に旧版へセキュリティパッチの話を書きましたが、5.1.3が同時にリリースされていました。パッチリリースのところには情報公開されないのですね。ちょっと不親切な感じがします。

spamの配信ツールはDNSキャッシュがずっと残る?

サーバが切り替わったので、古いサーバ宛のメールはほとんど来なくなりましたが、今日もまだ古いサーバに1件メールが来ていたので確認してみました。

”Security Notice. ……”というタイトルのspamメールでした。
送信ツールから、直接古いメースサーバ宛に送信されていました。普通のメールクライアントからの送信なら、送信用メールサーバーを経由するので、2段階以上の送受信となるはずですが、つぎのように、1段階だけでした。
 この部分をチェックするだけでも、何らかのツールを使って送信していることが分かります。

メールのソース
:省略
X-Mozilla-Keys:                                                                                 
Return-Path: <xxx@mic.or.jp>
Received: from tm.82.192.61.119.dc.telemach.net (tm.82.192.61.119.dc.telemach.net [82.192.61.119])
 by mic.or.jp (Postfix) with ESMTP id 7070911002A03
 for <xxxx@mic.or.jp>; Wed,  9 Oct 2019 10:25:50 +0900 (JST)
From: xxxx@mic.or.jp>
To: <xxxx@mic.or.jp>
Subject: 
:省略

  そして、DNSを切り替えて、1週間程度経過しているにも関わらず、古いサーバ宛に送信されています。 どこかにキャッシュされていたDNS情報を取得して古いサーバ宛に送信されたことが考えられます。しかし、今回のケースだと、1週間以上前にもメール送信した実績があり、その時に取得したDNS情報をキャッシュしていて、昨日メール送信する際にその情報を使ってメール送信したと考えるのが妥当でしょう。 メールマガジンの配信など大量メール送信ツールにはDNS情報のようにキャッシュできるものはキャッシュして性能を稼ぐ実装を採用しているものもあります。そのような技術をspam送信に利用しているのでしょう。

WordPress 5.3 Betaリリース、 旧版へのセキュリティパッチは?

2019年9月23日にWordPress5.3Beta1がリリースされていますが、旧版へのセキュリティパッチの情報は特にありません。WordPressは新版をリリースするときは1か月くらいかけて毎週のように更新版を出してきます。開発のほうに力を入れていて、セキュリティへの対処へ使うパワーがあまりない感じがします。
セキュリティ対処は外部の人の力に頼っていて、自己対処ができていないのではないかと思われます。このような状態では、新規開発部分に作りこまれる脆弱性は減らず、脆弱性がどんどん増えていく状態になるのではないでしょうか?

さて、追加でWordPress 5.2.3 で対処された脆弱性について確認します。 影響度と影響範囲の情報について追加情報が出ていますが、あまり詳しくありません。 CVE-2019-16220JVNDB-2019-009141)の場合、影響バージョンは WordPress 5.2.3 未満 となっています。該当機能が、初期バージョンから存在するのか疑問ですが、該当機能はかなり以前からあるので事実上すべてのバージョンに影響があるといってもよいのかもしれません。それから9/12の午後以降にJVNの情報公開がされていました。今後のセキュリティパッチはWordPress5.3に対して提供されることになると思われるので、どのタイミングでWordPress5.3に上げるのか、検証計画を立てておくなど検討しておいたほうがよさそうです。

WordPress セキュリティパッチのみ自動適用するには

 WordPressのセキュリティパッチに関して検討および対処してきましたが、多数のプラグインの利用とWordPressのパッチリリースのスタンスや情報公開の仕方を考慮してパッチリリース状況の監視と適用の手順を見直しました。
 セキュリティパッチのみを適用するということが、WordPressの場合は「セキュリティ修正が含まれているのにメンテナンスパッチ」となっていたり、「プラグインのセキュリティ問題の対処をセキュリティ修正としない」とされていたりする状況からあまり妥当でないとなっていると判断しました。

つまり、ポイントは次の2点です。
・WordPressがいうところのメンテナンスリリースとセキュリティリリースとを区別して別の取り扱いをする意味はあまりない。メンテナンスリリースとされていてもセキュリティの対処が含まれている場合がある。
・ メンテナンスリリースとセキュリティリリースのどちらも適用しないと問題があるかどうかを確認できない場合がある。

以上の状況から、つぎのようにします。

「テスト用サイトを立ち上げておいて、テスト用のサイトについてはパッチを自動適用する設定にしておく、パッチ適用のメールが来たら動作確認を行い、本番環境に適用するかどうかを吟味し適用手順を確立したうえで適用作業を行う。」

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について特にアナウンスしているようには見えないので、本当にリリースされるかはわかりません。どうしても欲しければチームに入って推進すればよいかもしれません。

アプリに関係なく(ラなんとかも、なんとかgoにも)使える位置偽装

ここまでに書いた内容を読み返せばどのような手法で位置偽装するのかITエンジニアには理解できるでしょう。実現のためにはいくつかの条件はあるが、比較的簡単に実現することができた。
 要するに「 会社引っ越し後、WIFIで位置情報を検索すると前の住所が表示されます。 」や「 GoogleChrome・マップの位置情報 」などで起きているWiFiの情報に基づく位置情報の誤認識を利用するということです。これは意図せずおきれば誤認識なのですが、誤認識を誘発し一定の制御のもとにおけば、それは位置偽装といえるでしょう。この位置偽装の特徴はモバイル機器に追加アプリをインストールする必要がないことと、アプリに関係なく利用できることです。追加検証と有効性については別の場所で行うことにします。

 ここで扱う位置情報は本来の目的ではない情報を別の個人情報として扱うべき情報を組み合わせて実現した便利な機能により得られた情報です。情報提供者にほぼ無断で別の目的で利用していると言ってしまってもよいかもしれません。それはさておき、上の方法での位置偽装はいわゆる偽装アプリをインストールするわけではないので、偽装を検出することは困難というか、ほぼガードすることはできないでしょう。なんとかgo++のように利用できなくなったり復活したりというイタチごっこは発生しません。 さらにアプリに関係なく利用できるのも特徴です。

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で修正されていたということなると推測します。


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の脆弱性と言ってしまってもよいのではないでしょうか。サービス停止したことを自動検知して自動リカバリするとかいろいろな対処がありそうです。