-オープンソースのSNSエンジン OpenPNEプロジェクト-

OpenPNEからのおしらせ

Home

【緊急リリース】OpenPNE 3 とバンドルプラグインに存在する、権限確認不備に関する複数の問題のお知らせ (OPSA-2011-001)

04 / 21 木曜日 2011

OpenPNE 3 といくつかのバンドルプラグインには、権限確認不備に関する複数のプライバシー上の問題が存在します。

本日(04/21)、この問題の対策版リリースを、 OpenPNE 3 と以下のバンドルプラグインに対しておこないましたので、内容を確認のうえバージョンアップまたはパッチの適用をお願いいたします。

  • opAshiatoPlugin
  • opAlbumPlugin
  • opCommunityTopicPlugin
  • opDiaryPlugin
  • opFavoritePlugin
  • opMessagePlugin
  • opOpenSocialPlugin
  • opRankingPlugin

本問題について

影響を受けるシステム

  • OpenPNE 3.0.8.3 以下、 3.2.7.4 以下、 3.4.11 以下、 3.6beta8 以下を利用しており、次の条件のうちいずれかを満たすサイト
    • プロフィール項目の「誕生日」を利用している
    • プロフィール項目の「自己紹介」を利用しており、かつ、公開範囲設定を「メンバー選択」にしているか、公開範囲設定が「固定」で「デフォルト値」を「全員に公開」以外にしている(※)
  • opAshiatoPlugin 0.8.0 以下、 0.9.0 以下、0.9.1.1 以下が有効なサイト
  • opMessagePlugin 0.8.2.3 以下、 0.9.1 以下が有効なサイト
  • opOpenSocialPlugin 0.9.9.1 以下、 1.0.4.1 以下、 1.2.2 以下、 1.3.1 以下を利用しており、プロフィール項目の「誕生日」が有効なサイト
  • opCommunityTopicPlugin 0.9.8 以下、 1.0.1 以下が有効なサイト
  • opDiaryPlugin 1.0.0 以下、 1.2.0 以下、 1.3.1 以下が有効なサイト
  • opAlbumPlugin 0.9.4 以下が有効なサイト
  • opFavoritePlugin 0.8.0.1 以下、 0.9.0.1 以下、 1.0.0.2 以下が有効で、(※)と同じ条件を満たしているサイト
  • opRankingPlugin 0.8.0 以下、 1.0.0 以下が有効で、(※)と同じ条件を満たしているサイト

概要

OpenPNE 3 やバンドルプラグインの特定箇所における、権限の確認に不備があったために、以下のようなプライバシー上の問題が生じていました。

  • 特定の URL にアクセスすることで、他人についているあしあとの一覧が閲覧できていた
  • opOpenSocialPlugin で提供される Person API が誕生日・年齢の公開範囲に従っていなかった(非公開設定であっても出力していた)
  • コミュニティトピック検索において、誤った検索条件を指定していたために、非公開のコミュニティトピックが含まれているなど、適切でない検索結果になっていた
  • SNS のメンバーでなくても opDiaryPlugin, opAlbumPlugin の特定のログイン後ページが閲覧できていた
  • アクセスブロックされていてもアルバムを見ることができていた
  • アクセスブロックされていても特定の操作をおこなうことでメッセージを送信できていた
  • メンバー検索やランキング、お気に入り関連画面において、年齢や自己紹介といった一部のプロフィール項目の公開範囲が適切に考慮されていなかった

想定される影響

条件を満たすサイトにおいて、利用者が公開を希望していない特定の情報が、権限を満たさない場合でも知られてしまうことがあります。

また、 opMessagePlugin においては、アクセスブロックされていてもメッセージの送信が可能であるために、受信者が嫌がらせ等のメッセージを拒否できない状態に陥ってしまうことがあります。

対応方法・回避方法

対応方法については、本エントリの「本問題への対応方法」をご覧ください。

回避方法

  • 影響を受けるプラグインを有効にしているが、実際にはそのサイトで利用していない場合、当該プラグインを無効にすることで一時的にこの問題を回避することができます
  • OpenPNE 3 が抱える問題については、プロフィール項目の「誕生日」や「自己紹介」を削除することでこの問題を回避することができます
  • opFavoritePlugin や opRankingPlugin が抱える問題については、プロフィール項目の「自己紹介」を削除することでもこの問題を回避することができます

なお、プロフィール項目を削除してしまうと、そのプロフィール項目に対するユーザの入力値も削除されてしまうため、この対応を採る場合、充分に検討したうえで実施してください。

本問題への対応方法

「影響をうけるシステム」で示した条件を満たすすべてのサイトは、以下の対応を実施してください。

なお、 opOpenSocialPlugin を利用している場合は、本エントリ内「opOpenSocialPlugin の修正適用に関する注意事項」もご確認ください。

OpenPNE 3

対策版へのマイナーバージョンアップもしくは修正パッチの適用を実施してください。

※以下のバージョンでは、本脆弱性への対応のほかに、 PHP 5.3.4 以降で一部のプラグインパッケージが導入できなかったバグへの対応もおこなわれています。これについては別途補足エントリにて説明いたします。

OpenPNE 3.6beta9
[.zip 版ダウンロード] [修正パッチ]
OpenPNE 3.4.11.1
[.zip 版ダウンロード] [修正パッチ]
OpenPNE 3.2.7.5
[.zip 版ダウンロード] [修正パッチ]

OpenPNE 3.0.8.4
[.zip 版ダウンロード] [修正パッチ]

OpenPNE3本体のマイナーバージョンアップを行うとバンドルされている全てのプラグインも更新されます。

マイナーバージョンアップ手順

パッケージに同梱されているバージョンアップ手順書に記載されている通りに作業を実施してください。

各バージョンのマイナーバージョンアップ手順書は以下からも確認することができます。

パッチ適用手順

1. OpenPNEを設置しているディレクトリにパッチファイルをアップロードします
2. SSHでログインし、1 のディレクトリに移動します
3. 以下のコマンドを実行します

$ patch -p1 < パッチファイル名

4. 以下のコマンドを実行します

$ ./symfony openpne:migrate

OpenPNE プラグイン

OpenPNE 3 本体のマイナーバージョンアップをおこなうとバンドルプラグインのバージョンアップも自動的におこなわれます。

そのため、バンドルプラグインについては個別にバージョンアップする必要はありません。

今回対策されたプラグインのうち、バンドルされていないバージョンを利用しているなどの理由により、自動的にバージョンアップがおこなわれない場合、各プラグインのリリース情報を参考に更新をおこなってください。

opAshiatoPlugin
opAshiatoPlugin-0.8.0.1
opAshiatoPlugin-0.9.0.1
opAshiatoPlugin-0.9.1.2
opAlbumPlugin
opAlbumPlugin-0.9.3.1
opAlbumPlugin-0.9.4.1
opCommunityTopicPlugin
opCommunityTopicPlugin-0.9.8.1
opCommunityTopicPlugin-1.0.1.1
opDiaryPlugin
opDiaryPlugin-1.0.0.1
opDiaryPlugin-1.2.0.1
opDiaryPlugin-1.3.1.1
opFavoritePlugin
opFavoritePlugin-0.8.0.2
opFavoritePlugin-0.9.0.2
opFavoritePlugin-1.0.0.4
opOpenSocialPlugin
opOpenSocialPlugin-0.9.9.2
opOpenSocialPlugin-1.0.4.2
opOpenSocialPlugin-1.2.2.1
opOpenSocialPlugin-1.3.1.1
opRankingPlugin
opRankingPlugin-0.8.0.1
opRankingPlugin-1.0.0.1
opMessagePlugin
opMessagePlugin-0.8.2.4
opMessagePlugin-0.9.1.1

opOpenSocialPlugin の修正適用に関する注意事項

今回のリリースにより、非公開の誕生年が Person API から取得できなくなります。取得不能な誕生年を含む出力をリクエストした場合、年部分が 0000 年であるとして出力されるようになります。これは、 OpenSocial 0.9 の以下の仕様に従った変更となります。

The year value MAY be set to 0000 when the age of the Person is private or the year is not available.

0000 年を返すことにより、いわゆる 2038 年問題への配慮がなされていない(0000 年(紀元前1年)の日付を認識できない)アプリが動作しなくなる可能性があります。また、 2038 年問題への配慮がなされているアプリでも、この変更により意図しない動作がおこなわれるようになる可能性があります。

したがって、 opOpenSocialPlugin を使用したサイトでは、提供しているアプリが影響を受けないかどうかを必ず確認したうえで、修正の適用をおこなってください。

セキュリティ上の問題の報告手順について

OpenPNE プロジェクトでは、以下に案内している通り、セキュリティ上の問題の報告を受け付ける窓口 ([email protected]) を用意しています。

http://redmine.openpne.jp/projects/op3/wiki/How_To_Report_Issue_%28ja%29#%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E4%B8%8A%E3%81%AE%E5%95%8F%E9%A1%8C%E3%82%92%E5%A0%B1%E5%91%8A%E3%81%99%E3%82%8B

もしセキュリティ上の問題を発見した場合は、通常の公開されたバグ報告の手順を踏むのではなく、 [email protected] に連絡してください[email protected] はクローズドなメーリングリストであり、このメーリングリストでおこなわれた脆弱性の詳細情報などのやり取りがそのまま公開されることはありません。

シリアル番号について

OpenPNE プロジェクトでは、今回から、脆弱性リリースにシリアル番号を導入することにしました。

今回の緊急リリースには OPSA-2011-001 というシリアル番号を与えます。このシリアル番号でない緊急リリースは、たとえ類似の問題であったとしても、この緊急リリースとは異なるリリースとなるのでご注意ください。

安定版 OpenPNE 3.4.11 リリースのお知らせ

04 / 14 木曜日 2011

OpenPNE 開発チームの坂田です。

本日、安定版 OpenPNE 3.4.11 をリリースしました。

次回のリリースは 2011年5月12日(木) を予定しています。

バージョンアップ・インストール

ダウンロード

OpenPNE 3.4.11(zipアーカイブ) は以下のボタンからダウンロードできます。

  • zip版ダウンロード

パッケージの詳細は、こちらになります。
OpenPNE 3.4.11

インストール

OpenPNE 3.4.11 のインストールは、OpenPNE3.4 セットアップ手順 を確認ください。

3.2.x から 3.4 へのアップグレード、3.4 の以前のバージョンからのマイナーバージョンアップを行う場合は、このドキュメントを参考ください。

続きを読む

trac.openpne.jp復旧のお知らせ

04 / 12 火曜日 2011

今村です。

サーバー障害により停止していたhttp://trac.openpne.jp/が先ほど2011/04/12の19:48ごろ復旧いたしました。停止中は大変ご迷惑をおかけして誠に申し訳ございませんでした。

trac.openpne.jp 障害についての詳細

発生日時:
・2011/04/11 8:36

復旧日時:
・2011/04/12 19:48

原因:
・サーバの故障(ハード要因)

補足:
2011/3/11 5:00 時点のバックアップデータから復旧しています。
・3/11 5:00 以降の SVN リポジトリの変更はすべて復旧できていることが確認できています。
・3/11 5:00 以降の Trac の変更が(もしあれば)復旧できていません。

SVNのコミット権限について

この障害によりSVN の認証ファイルがなくなってしまったため、SVN コミット権を再発行する必要があります。
改めてコミット権限が必要な方は下記リンクをお読みになり申請をお願いします。
OpenPNEのコミッターになる

閲覧(checkout や update)については特に申請は必要ありません。
OpenPNE2 を変更したい目的なら GitHub の方の利用をおすすめします。

安定版 OpenPNE 3.4.10 リリースのお知らせ

03 / 17 木曜日 2011

OpenPNE 開発チームの卜部です。

本日、安定版 OpenPNE 3.4.10 をリリースしました。
前回11月のリリースから大変長らくお待たせいたしました!

バージョンアップ・インストール

ダウンロード

OpenPNE 3.4.10(zipアーカイブ) は以下のボタンからダウンロードできます。

  • zip版ダウンロード

パッケージの詳細はこちらになります。
OpenPNE 3.4.10

インストール

OpenPNE 3.4.10 のインストールは、OpenPNE3.4 セットアップ手順 を確認ください。

3.2.x から 3.4 へのアップグレード、3.4 の以前のバージョンからのマイナーバージョンアップを行う場合は、このドキュメントを参考ください。

また、3.4.9 以前または 3.2.7.2 以前を利用の場合は、【緊急リリース】OpenPNE 3 に存在するセッション管理の不備に関する複数の脆弱性のお知らせ の内容を確認後、手順書の $ ./symfony openpne:migrate の操作の後に以下のコマンドを付け加えてください。

$ ./symfony openpne:migrate
// 以下の操作を追加する
$ ./symfony openpne:fix-session-db

続きを読む

githubにOpenPNE2.14.9のタグを作成しました

03 / 08 火曜日 2011

今村です。

OpenPNE2.14.9をリリースしてから、はや3週間たちました。
githubのOpenPNE2のレポジトリを更新し、最新版のOpenPNE2.14.9のタグを作成しました。
これでgithubから最新版のソースをダウンロードできるようになりました。

githubのOpenPNE2プロジェクトのトップはこちらです。
https://github.com/openpne/OpenPNE2
どうぞご自由にフォークしていってください。

githubにアップロードした利点はフォークの自由度にあります。
個人で自由にOpenPNE2の開発をしたいという方々はぜひフォークしてみてください。
フォーク先でどのようにOpenPNE2が変化していくか楽しみにしています。

ソースの取得方法

もし、gitをお使いでしたら

$ git clone git://github.com/openpne/OpenPNE2.git

で、ソースを取得することが出来ます。

zipでファイルをダウンロードしたい場合は、

OpenPNE2プロジェクトのトップ → タグの切り替え → OpenPNE‐2.14.9

と、アクセスし遷移先の画面右上のダウンロードボタンから取得することが出来ます。

gitについて関連情報

・Git で今すぐ OpenPNE3 開発に参加してみませんか?
https://www.openpne.jp/archives/3633/

OpenPNE3.4.10 のリリース日のお知らせ

02 / 21 月曜日 2011

OpenPNE開発チームの卜部です

長らくお待たせいたしました。

OpenPNE3.4.10 のリリース日について、スケジュールの目処がたちましたので告知いたします。
OpenPNE3.4.10 は 2011年3月17日(木)にリリースいたします。

対応項目は下記を予定しています。

OpenPNE 3.4.10 ロードマップ

よろしくお願いします!

【2系最終】OpenPNE2.14.9リリースのお知らせ

02 / 16 水曜日 2011

今村です。

本日、2011/2/16(水)、安定版 OpenPNE2.14.9をリリースしました。
このバージョンをもって手嶋屋はOpenPNE2のリードメンテナから離れ、重要な修正を除き今後のリリースはおこないません。

OpenPNE2は有志の方々を中心にコミュニティベースでメンテナンスをしていこうという議論が公式SNSで起きています。
詳しくはこのエントリ後半の「今後のOpenPNE2について」をご覧ください。

続きを読む

携帯電話IPアドレス帯域リストを更新しました

02 / 10 木曜日 2011

OpenPNE開発チームのきわです。

本日 2011/2/10、SoftBank の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

次回の更新

次回のリリースは2011/6/24(金) を予定しています。

2011/06/24
docomo (2011年7月予定)IPアドレス帯域追加対応 リリース

最終リリースOpenPNE2.14.9リリース日について

01 / 27 木曜日 2011

今村です。

OpenPNE2.14.9のリリース日について、スケジュールの目処がたちましたので告知いたします。
最終バージョンとなるOpenPNE2.14.9は2011年2月16日(水)にリリースいたします。

対応項目は下記を予定しています。

OpenPNE 2.14.9 修正予定バグ

告知が遅くなりご迷惑をおかけしましたが、よろしくお願い致します。

OpenPNE 2 を Windows 上に簡単にインストールできるようになりました

01 / 18 火曜日 2011

手嶋屋インターンの小川純平です。

OpenPNE 2 が Microsoft Web Platform Installer (WebPI) を用いて、Windows 系 OS (XP、Vista、7 や、Server 2003、2008 など) 上に、簡単にインストールできるようになりました。

Web Platform Installer とは?

Windows 上に自動的にサーバ (IIS) 及び Web アプリケーション実行環境 (PHP、ASP.NET、MySQL など) を構築し、そのサーバ上に様々な Web アプリケーション (OpenPNE の他、WordPress、Joomla!、Drupal など) を自動的にインストール・設定するためのツールです。
Windows 7 などにインストールし、テスト環境として様々な Web アプリケーションを試してみることも出来ますし、Windows Server 上で用いて、実運用を行うことも出来ます。クライアント OS で用いる場合は、WebMatrix を用いてサイトの管理を行うことも出来ます。

(但し、OpenPNE 2 に限って言えば、OpenPNE 2 は Linux と Apache を主なサポート対象としてきたため、Windows 上での動作については十分に確認されていません。そのため、現状では Windows Server 上での実運用については推奨しません。)

普通の OpenPNE 2 とは何が違うのか

従来の手動インストール時に必要であった、Apache (WebPI の場合は IIS) や PHP などのインストール及び環境設定から、パーミッションの調整、DB 関係の設定などまで、一切は WebPI 側で自動的に行われます。config.php の設定も GUI で行うことが出来ます。他に必要な設定は、ブラウザ画面から SNS 名などを設定するだけです。

インストール方法

追記: Microsoft の方々が既に gihyo.jp にちゃんとしたものを書いてくださっていたみたいです。

http://gihyo.jp/design/serial/01/webpi/0008

WebPI のダウンロードページの Download ボタンを押し、wpilauncher.exe を保存します。
このファイルを管理者権限で実行すると、自動的にインストーラが起動し、インストールが終了すると自動的に WebPI 本体が起動します。

WebPI の起動

下の方にある “オプション” をクリックします。

「どの Web サーバを使用しますか」で、クライアント OS にインストールしてテスト環境として用いる場合は IIS Express を、Windows Server にインストールして本番環境で運用する場合は IIS を選択して下さい。IIS Express というのは、開発用 IIS です。

オプション画面を “OK” を押して閉じたら、右上の検索窓に “openpne” と入力し、エンターキーを押します。

“OpenPNE 日本語版パッケージ” が表示されますので、これを “追加” します。


インストールされるパッケージの確認を求められますので、”同意する” を押してください。IIS や MySQL など、必要なソフトウェアが芋づる式にインストールされます。

ファイルのダウンロードと、IIS などのインストールを行っています。しばらくお待ち下さい…。

完了すると、今度は OpenPNE 2 の設定を行います。画像を参考に、設定項目を埋めていって下さい。(ここに関しては、後程説明を書き加えます。)

“新しいデータベースの作成または既存のデータベースの使用” では、必ず “新しいデータベースの作成” を選択して下さい。(申し訳ないのですが、既存のデータベースの仕様には、時間的な都合で対応しておりません)

データベース管理者には、デフォルトのまま “root” としておいて下さい。

“データベース管理者のパスワード” は、予め MySQL で root ユーザのパスワードを設定しておき、そのパスワードを入力して下さい。

“データベースユーザ名” は、OpenPNE のデータベースのユーザ名です。ここで新規にユーザを作成します。英字であれば何でも構いません。デフォルトの openpne_user のままで良いでしょう。

“データベースパスワード” には、OpenPNE データベースのパスワードを決めて、入力して下さい。”確認” に同じパスワードを入力します。

“データベースサーバー” は、PC 上でテスト用途として使う場合は、”localhost” と入力して下さい。サーバーマシンで用いる場合は、サーバー名を入力して下さい。(例えば sns.openpne.jp など)

“データベース名” も、英字から成る文字列であれば何でも構いませんが、必要がなければデフォルトのまま openpne で良いでしょう。

“データベース暗号化キー” には、適当な英数文字列を入力します。56バイト以内 (つまり56文字以内) にして下さい。

“続行” を押すと、OpenPNE 2 のインストールが始まります。

完了しました。”WebMatrix の使用を開始するには、[起動]をクリックします” とありますので、”[起動]” をクリックしてから、”完了” を押します。

WebMatrix の管理画面が開きました。”URL: http://localhost:***/” のリンクをクリックすると、OpenPNE の初期設定画面が開きますので、SNS 名などを設定してください。

以上でインストールは完了です。

注意: この WebPI パッケージは、既にインストールされた OpenPNE 2 のアップデートには対応していません。アップデートを行おうとすると、データベース操作の際にエラーが発生します。誤ってアップデートを行おうとしても既存のデータベースが破損したりするなどの障害は確認しておりませんが、予期せぬトラブルが発生する可能性がありますので、ご注意下さい。

OpenPNE 3 の WebPI パッケージについて

都合により OpenPNE 2 のパッケージを先に作成しましたが、OpenPNE 3 の WebPI パッケージについても今年度中に提供される予定です。OpenPNE 3.6 の正式版リリース後の公開を予定しています。

謝辞

WebPI パッケージの作成にあたり、Microsoft の武田様をはじめ、Microsoft の方々には大変多くのご助力をいただきました。ありがとうございました。

ページの先頭に戻る