WordPress のクッキー認証の脆弱性とその対策

ニュースとしては少々古めとなってしまいますが最近多くのセキュリティニュースサイトで WordPress のクッキー認証の脆弱性について取り上げられています。

内容は 「データベースに格納されているログインパスワードの MD5 ハッシュ値が何らかの理由で漏れてしまうとそれを知った人物は元のパスワードを知らずして容易にログイン可能なクッキーデータを作成できてしまう」 というもの。
もっとも 現状の WordPress は認証にセッションを用いておらずクッキーデータを盗み見さえできればログイン可能となってしまうので指摘されている内容を脆弱性と呼ぶのか、それとも “セキュリティがゆるい仕様” と考えるのかは微妙なところですが、とりあえず色々な案が論じられはじめているので長年手つかずだったこの辺りの仕様も近々大きく改善されるかもしれません。

以下、クッキーデータの盗用によるアクセスを感知するのに役立つプラグインを紹介しておきます。問題の防止にはなりませんがこれで不正アクセスがあった場合知ることができるようになります。

Admin IP Watcher
(2.3.1 で動作確認済み)

WP Multibyte Patch 0.9.4

0.9.4 をリリースしました。今回のハイライトはメール処理部分の大幅な改善です。これで色々な意味で文字化けが起りにくくなったと思います(たぶん)。
メール部分の改善点:

  • 機種依存文字の変換可否をチェックし、自動的に JIS (7bit)か UTF-8 (base64) から最適なエンコーディングを選択する
  • そのままの本家版とは異なり、UTF-8 モードではボディ部も base64 エンコードする
  • 設定ファイルから AUTO、JIS 固定、UTF-8 固定 のどれかのモードを選ぶことができる
  • ISO-2022-JP-MS (PHP 5.2.1 から mbstring 関数でサポート) が使える場合は、JIS = ISO-2022-JP-MS となる

今回のメール処理の流れですが実は Gmail のフォームメールの仕様を参考にさせてもらってます。Google がやってると思えばこそ安心して真似できますが自分ではなかなか思いつかないですね。しかしながらメーラーによってはもしかしたらボディを base64 エンコードしたメールは読めないかもしれないのでその時は “JIS 固定モード” にして使ってみてください。

Nao さん、マッキントッシュの機種依存文字についての情報ありがとうございました。非常に役立ちました。)

WP Multibyte Patch 0.9.3

WP Multibyte Patch 0.9.3 をリリースしました。ダウンロードはこちらです。

前バージョンからの主な修正・変更点:

  • 設定ファイル(wpmp-config.php)から個別に機能のオン・オフが可能になった
  • 一部バージョンの PHP、あるいは MTA に存在する既知のバグによりメールのサブジェクトが文字化けする問題の対策を行った

以上、何か不具合がありましたらお知らせください。

(検証に貴重な時間をさいてくださった tai さん、有用な情報をくださった Miyoshi さん、ありがとうございました。)

WP Multibyte Patch 0.9.2

本家版 WordPress のマルチバイト文字の取り扱いに関する問題の累積的修正を行う WP Multibyte Patch というプラグインを作ってみました。

主な機能:

  • ISO-2022-JP でメール送信
  • トラックバック受信文字が破壊されるバグの修正
  • ピンバック受信のマルチバイト対応化
  • EXCERPT 系関数のマルチバイト対応化
  • 全角スペースで AND 検索
  • アドミンエリアの日本語向けフォント調整

最新版を日本語環境で使いたい方、文字化けで困っている方はよろしければ試してみてください。

より詳しい説明とダウンロード