OpenPNE リリース情報
【緊急リリース】OpenPNE 3 に存在するセッション管理の不備に関する複数の脆弱性のお知らせ
12 / 08 水曜日 2010
OpenPNE 3 には、セッション管理の不備に関する複数の脆弱性が存在します。
本日(12/8)、この問題の対策版として OpenPNE 3.0.8.2, 3.2.7.3, 3.4.9.1, 3.6beta7 のリリースをおこないましたので、内容を確認のうえバージョンアップまたはパッチの適用をお願いいたします。
本問題について
影響を受けるシステム
3.0.8.1 以下、 3.2.7.2 以下、 3.4.9 以下、 3.6beta6 以下の OpenPNE を使用しており、以下のどちらかまたはすべての条件を満たしているサイト。
1. セッションストレージにデータベースを設定している
2. 他の OpenPNE 3 とセッション保存先を共有している
※OpenPNE 2 を使用しているサイトは影響を受けません。
概要
OpenPNE のセッション管理が以下に説明するように不適切であったために、ログイン状態の継続などが正しくおこなえない状態にありました。
・(3.0.x を除く) セッションストレージとしてデータベースを使用していた場合に、セッションの継続に用いられるセッション ID を誤った形で保存していました。セッション ID で使われる文字種は、 PHP の設定により異なりますが、少ない場合でも 0-9, a-f となります。しかし、データベース内のセッション保存用のテーブルを誤った設定で構築していたため、本来のセッション ID の数値部分しか保存しない状態にありました。このような状態ではセッション ID が頻繁に衝突するようになるため、自分のセッション ID が他のユーザが使っているセッション ID とみなされてしまうことがあります。また、セッション ID が容易に推測可能であるため、なりすましの危険も高くなります。
・他の OpenPNE 3 とセッション保存先を共有していた際に、他方の SNS 向けのセッション ID をそのまま受け入れてしまう問題がありました。セッションを共有している A と B の SNS があったとして、 A のセッション ID を使って B にアクセスすることで、 A ではメンバー ID が 1 のメンバーが B でもメンバー ID が 1 であるとみなされてしまいます。複数の OpenPNE 間でセッション保存先を共有するのは OpenPNE では想定された使用方法であるはずでした。
想定される影響
条件を満たす SNS において、意図せずに、または故意に別のメンバーとしてアクセスできてしまうことで、非公開情報の漏洩などを許してしまう可能性があります。
対策方法・回避方法
対策方法については、本エントリの「本問題への対応方法」をご覧ください。
回避方法
一時的にこの問題を回避する場合、以下のすべての対策を採ってください。
セッションストレージとしてデータベースを使用しない
ファイルストレージもしくは memcached を使用する
他の OpenPNE 3 とセッション保存先を共有しない
ファイルストレージの場合は ProjectConfiguration.class.php でセッションの保存先パスを他の OpenPNE 3 と別のものに設定する
memcached を使用している場合は、 OpenPNE.yml でセッションの保存先が他の OpenPNE 3 と別のものになるよう設定してください。
本問題への対応方法
「影響をうけるシステム」で示した条件を満たした OpenPNE を利用しているすべての SNS は、対策版へのマイナーバージョンアップもしくは修正パッチの適用を実施してください。
なお、マイナーバージョンアップや修正パッチの適用をおこない、 OpenPNE.yml の check_session_site_identifier の値が true のままであると、既存のすべてのセッションが無効になります。この件についての詳細は、「既存のセッションが無効になることについて」をご覧ください。
- OpenPNE 3.6beta7
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.4.9.1
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.2.7.3
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.0.8.2
- [.zip 版ダウンロード] [修正パッチ]
マイナーバージョンアップ手順
パッケージに同梱されているバージョンアップ手順書に記載されている通りに作業を実施した後、セッションを DB に正しく保存できるようにするためのコマンドを実行します。
各バージョンのマイナーバージョンアップ手順書は以下から確認することができます。
- OpenPNE 3.6beta7 バージョンアップ手順書 (バージョンが 3.4 と表記されていますが、この手順は 3.6.x でも有効なものです)
- OpenPNE 3.4.9.1 バージョンアップ手順書
- OpenPNE 3.2.7.3 バージョンアップ手順書
- OpenPNE 3.0.8.2 バージョンアップ手順書
通常のマイナーバージョンアップが完了した後、以下のコマンドを実行してください。
$ ./symfony openpne:fix-session-db
パッチ適用手順
1. OpenPNEを設置しているディレクトリにパッチファイルをアップロードします
2. SSHでログインし、1 のディレクトリに移動します
3. 以下のコマンドを実行します
$ patch -p1 < パッチファイル名
4. 以下のコマンドを実行します
$ ./symfony openpne:migrate
$ ./symfony openpne:fix-session-db
既存のセッションが無効になることについて
これは、他の OpenPNE とセッション保存先を共有しても問題にならないよう、セッションデータの形式を変更したために発生する現象です。
セッションが無効になると、ログイン中のメンバーが一斉にログアウトすることになるため、編集中の日記などの情報が失われたり、多くのメンバーが一斉にログインを試みようとすることから一時的に負荷が高くなるといったことが起こりえます。そのため、事前に予告をしたうえで本脆弱性への対応を実施することをお勧めします。
セッションをデータベースに保存しておらず、他の OpenPNE とセッション保存先を共有していないサイト (つまり本脆弱性の影響を受けないサイト) で、既存のすべてのセッションが無効になってしまっては都合が悪い場合、 OpenPNE.yml にて check_session_site_identifier を false に変更することで、セッションデータの形式がバージョンアップ前と同様のものになるため、既存のすべてのセッションが無効になるのを防ぐことができます。
check_session_site_identifier: false
セッションをデータベースに保存している場合
セッションをデータベースに保存している場合は、 check_session_site_identifier を false に変更したとしても、既存のセッションがすべて無効になります。この場合、既存のセッションが無効になることについての回避策は存在しません。
本脆弱性への対策をおこなっていない OpenPNE 3 でセッションをデータベースに保存していた場合、そのセッションの ID は安全なものではなく、この状態で運営を続けることは極めて危険です。早急に「対策方法・回避方法」で示している対応を実施してください。
携帯電話IPアドレス帯域リストを更新しました
11 / 25 木曜日 2010
OpenPNE開発チームのきわです。
2010/12 au のIPアドレス帯域追加に伴って、OpenPNEのIPアドレスリストを更新しました。
OpenPNEの携帯版を利用している方はSNSに反映お願いします。
ダウンロード
https://www.openpne.jp/pne-downloads/mobile_ip_list/
こちらのページから各バージョンのIPアドレス帯域リストをDLできます。
IPアドレス帯域リストの更新方法
OpenPNE3
OpenPNEのパッケージ内にある以下のファイルを、ダウンロードしたIPアドレス帯域リストに置き換えてください。
lib/config/config/mobile_ip_address.yml
OpenPNE2
OpenPNEのパッケージ内にある以下のファイルを、ダウンロードしたIPアドレス帯域リストに置き換えてください。
webapp/lib/ktaiIP.php
次回の更新
次回のリリースは2010/12/24(金) を予定しています。
- 2010/12/24
- au IPアドレス帯域追加対応 リリース
安定版 OpenPNE 3.4.9 リリースのお知らせ
11 / 18 木曜日 2010
OpenPNE 開発チームの卜部です。
本日、安定版 OpenPNE 3.4.9 をリリースしました。
今回は、すでに OpenPNE 3.6beta 版に取り込まれた修正で安定版として取り込んでも問題のない修正を含んでいます。
次回のリリースは12月9日を予定しています。
バージョンアップ・インストール
ダウンロード
OpenPNE 3.4.9(zipアーカイブ) は以下のボタンからダウンロードできます。
- zip版ダウンロード
パッケージの詳細はこちらになります。
OpenPNE 3.4.9
インストール
OpenPNE 3.4.9 の場合は、同梱の OpenPNE3.4 セットアップ手順 をご覧ください。
3.2.x から 3.4 へのアップグレード、3.4 の以前のバージョンからのマイナーバージョンアップを行う場合は、このドキュメントを参考ください。
OpenPNE2.14.9リリース延期のお知らせ
11 / 11 木曜日 2010
今村です。
OpenPNE2.14.9のリリースを2010/11/18(木)に予定していましたが、
約1ヶ月延期いたします。延期後の予定は下記の通りです。
■変更前
2010/11/18(木)
■変更後
2010/12/22(水)
リソース状況、テストの日程などを考慮したところ、来週リリースは厳しい状態にあると判断しました。
OpenPNE3.6の開発が活発におこなわれていますが、それと並行し頑張っていきたいと思います。
2.14.9でOpenPNE2系はメンテナンス終了になります。
それにともない現在、公式SNSでは今後OpenPNE2をコミュニティの中で育てていこうという話し合いが活発におこなわれています。
みなさん是非、公式SNSのコミュニティを御覧ください。
OpenPNE 3.4.9 リリース延期のお知らせ
11 / 09 火曜日 2010
OpenPNE開発チームの卜部です。
2010/11/11 (木) にリリースを予定していた OpenPNE 3.4.9 ですが、
修正状況、テストの日程を考慮したところ、今週リリースが難しい状況となっていますので、一週間後の 2010/11/18 (木) に延期させていただきます。
OpenPNE 3.4.9 修正予定バグ
リリースをお待ち頂いている皆様にはご迷惑をおかけしますが、
何卒ご理解頂きますようよろしくお願いいたします。
OpenPNE 3.4.8 リリースのお知らせ
10 / 21 木曜日 2010
OpenPNE 開発チームの卜部です。
本日、安定版 OpenPNE 3.4.8 をリリースしました。
今回は symfony のマイナーバージョンアップ、memcache の session_start 周りのバグの修正、キャッシュファイルが削除できないバグの修正を含んでいます。
次回のリリースは11月11日を予定しています。
バージョンアップ・インストール
ダウンロード
OpenPNE 3.4.8(zipアーカイブ) は以下のボタンからダウンロードできます。
- zip版ダウンロード
パッケージの詳細はこちらになります。
OpenPNE 3.4.8
インストール
OpenPNE 3.4.8 の場合は、同梱の OpenPNE3.4 セットアップ手順 をご覧ください。
3.2.x から 3.4 へのアップグレード、3.4 の以前のバージョンからのマイナーバージョンアップを行う場合は、このドキュメントを参考ください。
OpenPNE 3.6beta6 リリースのお知らせ
10 / 13 水曜日 2010
OpenPNE 開発チームの海老原です。
本日 2010/10/13 (水)、開発版 OpenPNE 3.6beta6 をリリースしました。
「新安定版OpenPNE3.6.0のリリース延期のお知らせ」 にて、 3.6.0 のリリース予定日を 10/15 (金) と設定していましたが、現状の OpenPNE 3.6beta6 の完成度やタスクの消化状況などを考慮し、 OpenPNE 3.6.0 のリリースはもうしばらく延期ということになります。これについては、詳細がまとまりしだい告知したいと思います。
次回の開発版 OpenPNE 3.6beta7 のリリースは、 10 月末となる予定です。
携帯電話IPアドレス帯域リストを更新しました
10 / 08 金曜日 2010
OpenPNE開発チームのきわです。
2010/10/06 WILLCOM のIPアドレス帯域変更に伴って、OpenPNEのIPアドレスリストを更新しました。
急なリリースで申し訳ありませんが、OpenPNEの携帯版を利用している方はSNSに反映お願いします。
ダウンロード
https://www.openpne.jp/pne-downloads/mobile_ip_list/
こちらのページから各バージョンのIPアドレス帯域リストをDLできます。
IPアドレス帯域リストの更新方法
OpenPNE3
OpenPNEのパッケージ内にある以下のファイルを、ダウンロードしたIPアドレス帯域リストに置き換えてください。
lib/config/config/mobile_ip_address.yml
OpenPNE2
OpenPNEのパッケージ内にある以下のファイルを、ダウンロードしたIPアドレス帯域リストに置き換えてください。
webapp/lib/ktaiIP.php
次回の更新
次回のリリースは2010/10/15(金) になります。
開発者側でキャリアのIP変更日を勘違いしていたため、リリース取りやめとなりました。お騒がせして申し訳ございません。 次回のリリースは 2011年1月を予定しています。
2010/10/15WILLCOM IPアドレス帯域削除対応 リリース- 2011/01/25
- docomo IPアドレス帯域追加対応 リリース
OpenPNE 3.0.9リリース再延期のお知らせ
09 / 30 木曜日 2010
OpenPNE開発チームの今村です。
2010/09/27 (月) にリリースを予定していた OpenPNE 3.0.9 ですが、
OpenPNE3.6 の開発を優先するため、再延期させていただきます。
さらなる延期となりますが、皆さんよろしくお願いします。
■———————————————————■
http://redmine.openpne.jp/
OpenPNE3プロジェクトRedmine
http://demo3.openpne.jp/
OpenPNE3デモサイト
http://sns.openpne.jp/
OpenPNE公式SNS
http://twitter.com/pnetan/
pnetanのTwitterアカウント
■———————————————————■
OpenPNE 3.4.8 リリース延期のお知らせ
09 / 30 木曜日 2010
OpenPNE開発チームの卜部です。
2010/10/14 (木) にリリースを予定していた OpenPNE 3.4.8 ですが、
OpenPNE3.6 の開発を優先するため、一週間後の 2010/10/21 (木) に
延期させていただきます。
リリースをお待ち頂いている皆様にはご迷惑をおかけしますが、
何卒ご理解頂きますようよろしくお願いいたします。
また、お待ち頂く分、OpenPNE3.6 についてはご期待いただけますと幸いです。