PivotXを利用されている方は最新版にアップデートするべし (was: PivotXを利用されている方は2.2.5以降へアップデートするべし CVE-2011-1035)

2011/10/8追記: WordPress TimThumb RFI Vulnerability used as Botnet Recruitment Vectorにあるようなurlがquery string上で目立つTimThumbを狙ったアクセスを頻繁に観測していますが、PivotXも2.3.0のリリースノートでさりげなく書いてあるように本体がTimThumbを搭載しています。常にリリース状況を確認して最新にされることをお勧めします。なおこの問題に脆弱なPivotXのfingerprintingも、多くのケースでそうであるようにヘッダも含めてバージョン表示を消したところで即時に可能です。

2011/2/19追記: CVE-2011-1035, Vulnerability Note VU#175068


2011/2/14: PivotX 2.2.4がリリースされても告知が無く、SourceForgeにもリリースのアーカイブファイルがアップロードされないのでどうなっているのか見てたところ、フォーラムで開発チームからいくつか発言が出てきました。

2.2.4は緊急セキュリティ修正、そしてまもなく2.2.4での修正による悪影響を修正した2.2.5が出てくるそうです2011/2/17早朝に2.2.5リリースされました。SourceForgeにも置かれています。実際に攻撃があったことが複数報告されています。開発チームは詳細の公開を望んでいないようですが、結構誰でもすぐにわかってしまうかも…というかそもそも攻撃が現在進行形であるようなので可及的速やかに2.2.4、そしてリリースされ次第2.2.5以降にアップデートする必要があることになります。 http://pivotx.net/ の下の方にある最新情報を軒並み注意しておくとよろしいかと思います。アップデートだけではなく images/ と pivotx/templates/ を含むすべてのフォルダにmalwareが置かれていないことも要確認です。必要の無いファイルがある場合はダッシュボードに注意をうながすメッセージが出るようですが、出ないからと安心してしまわないようにしたいものです。全員のユーザ名が予測困難なものであることの確認とパスワードの変更を検討された方がよろしいかもしれません。

直接この問題とは関係無く、admin,system,pivotxなどの容易なユーザ名や、簡単にblogエントリから推測できるようなユーザ名は使用しないことを周知するとよろしいです。またCSRFはかわせないですがscript kiddieによる外部からのpivotx/index.phpへの直接攻撃には、例えばApache HTTPDで10.1.2.128/25,192.168.0.0/16からしかログインできないようにして良い状況でサーバ設定ファイルが変更できるのであれば

さらに403では無くてリダイレクトさせるには追加で

.htaccessしか使えない場合はyourblogdir/pivotx/.htaccessファイルを作成して

(yourblogdirはそれぞれの環境に合わせて)程度の制限をしておいても良いかもしれません。くどいようですがCSRFはこれでは防げません。pivotx/index.phpを利用した直接攻撃だけに対する限定的な緩和策で、基本は常に最新版へのアップデートです。

なおこの問題に脆弱なPivotXのfingerprintingは、多くのケースでそうであるようにヘッダも含めてバージョン表示を消そうとも即時に可能です。


2011/2/22:

から、google.com.tr の検索語 “inurl:jp pivotx” のSERPがReferer:の攻撃を観測しましたよ。

2011/2/17早朝:2.2.5がリリースされてSourceForgeにも置かれました。

2011/2/16朝:pivotx.netさきほど復活しました。

2011/2/15現在:pivotx.netがある共有サーバがダウンしてSourceForgeでも2.2.4以降のリリースとしてのアーカイブは入手方法がありませんが、SVNにコミットされたリリース前版は入手可能です:

  • http://sourceforge.net/projects/pivot-weblog/develop
  • http://web.archive.org/web/20160416045740/http://book.pivotx.net/page/1-2 trunk は現在2.3pre-alphaだそうなので、2.2系利用中の方は2.2.xのbranchが良いかと思います。SVN無しでもSorceForgeのレポジトリからのtar機能も一応使えます。リリース前なのでバージョン表記の変更が入ってませんが、 svn co した場合は pivotx/lib.php の $Rev$ が 3505 以降になっているはずです。なおリリースのアーカイブに含まれるextentionsは別途取得となります。gettextの.poファイルはPixotXの実行時に必要ありません。
    • svn co https://pivot-weblog.svn.sourceforge.net/svnroot/pivot-weblog/branches/2.2.x 2.2.x
    • http://pivot-weblog.svn.sourceforge.net/viewvc/pivot-weblog/branches/2.2.x/

PivotXで最新の記事のリストを表示したい

PivotX を使い始めて数ヶ月が経ち、記事も順調に増えてきました。そして、記事が増えることで新たに発見した使い方や、追加で欲しい機能が出てきて、日々楽しく試行錯誤をしています。

その一つが「最近の記事」のリストです。

一般的なブログには画面上のどこかに「最近の記事」セクションがあるものが多いですね。 PivotX では「最近のコメント」をリスト表示するタグはあるものの、記事に関してはありません。でも、 PivotX で避けては通れないタグのひとつ、 subweblog を使ってブログ内の記事リストの表示フォーマットを好みの形に指定できます。そして、複数の subweblog タグを使えば、メインの部分のリストにはタイトルと日付とイントロダクションを表示して、サイドバーには同じ記事のタイトルのリストだけを表示する、ということができ、「最近の記事」セクションを作ることができます。このやり方に関しては PivotX Support Forum でも取り上げられています(参照: “List of latest posts“)。

ただ、一つ注意しなくてはいけないのが、同じページの subweblog タグは、同じページングの影響を受ける、という点です。つまり上記の参照にあるような指定の仕方だと、トップページから「次のページへ」ボタンを押すと、もちろんメインの部分には次のx個の記事のリストが表示されますが、サイドバーのリストも次のx個の記事について表示されます。つまり「最近の記事」のつもりで作ったリストが全然最近ではなくなってしまうのです。

そこで上記の参照の例に追加して、最近のリストを表示するための subweblog タグに

ignorepaging="1"

というオプションを指定します。このオプションを指定することで、その subweblog タグの中身はページングの影響を受けず、常にリストの頭から表示されます。

2010年2月23日の時点で、PivotX のオンラインドキュメントでは ignoreoffset というオプションが掲載されていますが、このオプションは動作しません。PivotX Support Forum で確認したところ、どうやらこの記述は間違いのようですので、ignorepaging を使いましょう (参照: “How do you use the ignoreoffset option in subweblog?“)。

_sub_sidebar.htmlのお好みの場所に以下のコードを入れると、サイドバーに最近の記事のタイトルをリスト表示することができます。(*1)

注釈:

  1. recent という subweblog はデフォルトのテンプレートで指定されている standard とは別に定義しました。

PivotXのユーザ登録で”_”(アンダースコア)が使えない

PivotXのマニュアルやヘルプによるとアンダースコアが使えるはずなのですが、Administration → Usersから登録しようとすると、入力時にアンダースコアが”-“(ハイフン)に自動的に置換されてしまいます。

pivotx/includes/js/pivotx.jsのsetSafename()を修正すれば良いのですが、サーバー側のコードのバリデーションが足りないことにも気付きました。JavaScriptの修正と合わせて、2009/5/19のpivotx-latest.tgzとsvnリリース2278用にパッチを作って報告してみました。