OpenPNE3 プラグイン リリース情報
opTimelinePlugin 1.2.8 alpha版 リリースのお知らせ
12 / 19 木曜日 2019
本日、opTimelinePlugin 1.2.8 (alpha) をリリースしました。
今回のリリースでは、小窓機能に関する修正などを行なっています。
opDiaryPlugin 1.5.2 (alpha) および opMessagePlugin 2.0.0.4 (alpha) リリースのお知らせ
05 / 23 水曜日 2018
opDiaryPlugin 1.5.2 (alpha) および opMessagePlugin 2.0.0.4 (alpha) をリリースしました。
今回の対応は、iOS 11.3 において、値が設定されていない <input type=”file”> を ajax で送信できない問題を回避するためのコードを追加しました。
ダウンロードおよびインストール
ダウンロードおよびインストール方法については、下記リンク先を確認してください。
・opDiaryPlugin 1.5.2
・opMessagePlugin 2.0.0.4
opUploadFilePlugin 0.9.0 以下 に存在する XSS脆弱性 の修正のお知らせ(OPSA-2016-003)
12 / 15 木曜日 2016
opUploadFilePlugin 0.9.0 以下 には、HTMLファイルに含まれている任意のスクリプトがダウンロード時に実行されてしまう XSS脆弱性が存在します。
この問題の対策版として opUploadFilePlugin 0.9.1 のリリースを行いましたので、内容を確認のうえバージョンアップまたはパッチの適用をお願いいたします。
opUploadFilePlugin は、OpenPNE 3.8系 にて利用可能なプラグインであるため、OpenPNE 3.6 系ではこの問題は発生しません。
概要
opUploadFilePlugin 0.9.0 以下 には、HTMLファイルに含まれている任意のスクリプトがダウンロード時に実行されてしまう XSS脆弱性が存在します。
この問題は、Internet Explorer 8 にて実行可能であることが確認されています。
また、Internet Explorer 9 以降、Chrome 最新版、Firefox 最新版 では、この問題が発生しないことが確認されています。
本問題について
影響を受けるシステム
想定される影響
1. 任意のスクリプトを含む HTMLファイル を用意する
2. メンバーA (攻撃者) が opUploadFilePlugin のアップロード機能を使用して 1. の HTML ファイルをアップロードする
3. アップロードが完了するとファイルの共有用 URL が表示されるため、メンバーA (攻撃者) はその URL を他の SNS メンバーが開くように誘導する
4. メンバーB が Internet Explorer 8 を使用してその URL を開くと、ブラウザ標準のファイルダウンロードのダイアログが表示される
5. メンバーB がダイアログの「保存」ではなく「開く」をクリックすると、HTML ファイル内に含まれるスクリプトが実行される
対策方法
本問題への対応方法
「影響をうけるシステム」で示した条件を満たすすべてのサイトは、以下の対応を実施してください。
opUploadFilePlugin
プラグインのリリース情報を参考に更新をおこなってください。
-
- opUploadFilePlugin 0.9.1
- [.zip 版ダウンロード] [修正パッチ]
セキュリティ上の問題の報告手順について
OpenPNE プロジェクトでは、以下に案内している通り、セキュリティ上の問題の報告を受け付ける窓口 (security@openpne.jp) を用意しています。
セキュリティ上の問題を発見した場合は、通常の公開されたバグ報告の手順を踏むのではなく、 security@openpne.jp に連絡してください。 security@openpne.jp はクローズドなメーリングリストであり、このメーリングリストでおこなわれた脆弱性の詳細情報などのやり取りがそのまま公開されることはありません。
[OPSA-2016-002] OpenPNEおよび一部ブラグインに存在する複数の脆弱性に対する修正
11 / 10 木曜日 2016
本日 (2016/11/10)、OpenPNE, opTimelinePlugin, opDiaryPlugin, opFavoritePlugin および opWebAPIPlugin に対して次の通りセキュリティリリースを行いました。内容を確認のうえバージョンアップまたはパッチの適用をお願いいたします。
- OpenPNE 3.8.21.1, OpenPNE 3.6.24.1
- opTimelinePlugin 1.2.6.1
- opDiaryPlugin 1.4.1.1, opDiaryPlugin 1.5.1.1
- opFavoritePlugin 1.0.1.1
- opWebAPIPlugin 0.5.1.2
これらのバージョンは、OpenPNE, opTimelinePlugin, opDiaryPlugin, opFavoritePlugin および opWebAPIPlugin に存在する下記の脆弱性に対する修正を含んでいます。
- SNSメンバー間におけるアクセス制限を回避する脆弱性
- ログイン可能なセッションCookieがOAuthを使用するサードパーティアプリに流出する脆弱性
- IPアドレスに基づくWeb APIへのアクセス制限を回避する脆弱性
- HTTPヘッダインジェクション脆弱性
各脆弱性の詳細については以下を参照して下さい。
1. SNSメンバー間におけるアクセス制限を回避する脆弱性
OpenPNE, opTimelinePlugin, opDiaryPlugin および opFavoritePlugin について、公開範囲設定やコミュニティ参加状態に基づくアクセス制限を回避する脆弱性が発見されました。
想定される影響
SNSに登録しているユーザーによって、下記のような操作を行われる可能性があります。
- JSON API を経由して、自身の参加していないコミュニティにアクティビティを投稿される可能性があります
- 「日記コメント記入履歴」機能を経由して、非公開に設定されている日記のタイトルを閲覧される可能性があります
- 「お気に入り」機能を経由して、アクセスブロック機能でアクセスが制限されているメンバーの日記およびブログのタイトルを閲覧される可能性があります
- アクセスブロック機能でアクセスが制限されているメンバーを「お気に入り」に追加される可能性があります
影響を受けるバージョン
- OpenPNE 3.8.21 以下
- opTimelinePlugin 1.2.6 以下
- opDiaryPlugin 1.4.1 以下 または opDiaryPlugin 1.5.1 以下
- opFavoritePlugin 1.0.1 以下
OpenPNE 3.6.x を使用している場合、上記のバージョンのうちopDiaryPlugin 1.4.1 以下 または opFavoritePlugin 1.0.1 以下 を使用している場合には当脆弱性の影響を受けます。
(opTimelinePlugin および opDiaryPlugin 1.5.x は OpenPNE 3.8.x でのみサポートされています)
対策方法
今回提供されるアップデートを適用して下さい。この脆弱性についてアップデートを行わずに回避する方法はありません。
2. ログイン可能なセッションCookie がOAuth を使用するサードパーティアプリに流出する脆弱性
(OpenPNE に標準で備わる OAuth 機能は https://redmine.openpne.jp/issues/2775 の不具合により使用できない状態となっています。当脆弱性は、独自にパッチを当てる等によりこの不具合を回避している SNS でのみ起こりうるものです。)
OpenPNE には OAuth 1.0a に基づいてサードパーティアプリの認可を行う機構が存在し、opWebAPIPlugin や opOpenSocialPlugin で使用されています。この機構を使用することで、サードパーティアプリが必要とするリソース (メンバーリストや日記など) および権限 (読み込みのみ, 読み書き両方) を SNS ユーザーに呈示し、その範囲内での操作を認可するアクセストークンをサードパーティアプリに発行することができます。
当脆弱性では、サードパーティアプリにアクセストークンを受け渡す際に、認可を行った SNS ユーザーとしてログイン可能なセッション Cookie が意図せず送信されていました。これにより、サードパーティアプリは受け取ったセッション Cookie の値を使用してセッションハイジャックを行うことが可能となり、ユーザーが認可する権限を越えた操作を行われる可能性があります。
想定される影響
第三者によって、流出したセッション Cookie の値を使用してユーザーになりすまされる可能性があります。
影響を受けるバージョン
- OpenPNE 3.6.24 以下 または OpenPNE 3.8.21 以下 (かつ、 https://redmine.openpne.jp/issues/2775 の不具合を独自に回避する修正をしたもの)
対策方法
この脆弱性は下記のいずれかの方法で対策が可能です。
アップデートを適用する (推奨)
今回提供されるアップデートによって修正が行われているため、アップデートを適用することで対策が可能です。
新規アプリケーションの登録を無効化し、既に登録されたアプリケーションを削除する
この手順によって脆弱性を回避する場合、既にSNSに登録されているサードパーティアプリは全て使用できない状態になります。
管理画面のSNS設定 (/pc_backend.php/sns/config?category=general) から「外部サービスとの接続設定の使用設定」を「使用しない」に設定することで、新規のサードパーティアプリの登録を禁止することができます。
さらに、既に登録されているアプリケーションは引き続きアクセストークンの発行が可能な状態となっているため、管理画面の「連携済みアプリケーション一覧」(/pc_backend.php/connection/list) から全てのアプリケーションを削除して下さい。
これらの手順によりアクセストークンの発行自体が行われなくなるため、当脆弱性は生じなくなります。
3. IPアドレスに基づくWeb APIへのアクセス制限を回避する脆弱性
管理画面の「API設定」(/pc_backend.php/opWebAPIPlugin) にて Auth type を IP address に設定している SNS で、許可された IP アドレスから Web API へのアクセスを行った際に意図せずセッション Cookie が発行されていました。
当脆弱性では、そのセッション Cookie の値を使用することで管理者が許可していない IP アドレスからも Web API にアクセスされる可能性があります。
想定される影響
第三者によって、許可されていない IP アドレスから Web API にアクセスされる可能性があります。
影響を受けるバージョン
以下のバージョンを両方とも満たす環境で影響を受けます。
- OpenPNE 3.6.24 以下 または OpenPNE 3.8.21 以下
- opWebAPIPlugin 0.5.1.1 以下
ただし、「API設定」(/pc_backend.php/opWebAPIPlugin) の Auth type に OAuth を選択している SNS、または Auth type に IP address を選択しているが Ip list が空欄となっている SNS は影響を受けません。
対策方法
この脆弱性は下記のいずれかの方法で対策することが可能です。
アップデートを適用する (推奨)
今回提供されるアップデートによって修正が行われているため、アップデートを適用することで対策が可能です。
また、今回のアップデートでは API アクセスにおいて本来発行する必要のないセッション Cookie を抑制するための修正を OpenPNE 本体に対して行っているため、opWebAPIPlugin を使用していない SNS であっても当アップデートを適用することが推奨されます。
opWebAPIPlugin を削除する
opWebAPIPlugin による Web API 機能を使用していない SNS では、opWebAPIPlugin を削除することでも当脆弱性を回避することが可能です。
4. HTTPヘッダインジェクション脆弱性
OpenPNE について、細工された HTTP リクエストを受け取ることで HTTP ヘッダインジェクションを引き起こす脆弱性が発見されました。
当脆弱性は、HTTP リクエストのプロトコルバージョンを表す部分に細工した文字列を含めることによって引き起こされるものです。例として、通常であればリクエストの最初の一行に GET / HTTP/1.1 といった内容が送られるところを GET / Set-Cookie: foo=bar; HTTP/1.1 のように細工した文字列を送ることで任意のヘッダを出力させることが可能となります。
想定される影響
第三者によって、レスポンスヘッダに任意のヘッダを追加される可能性があります。
ただし、上記に記載した GET / Set-Cookie: foo=bar; HTTP/1.1 のような不正な形式のリクエストを Web ブラウザ上で送信させる現実的な手段は確認されておらず、当脆弱性を悪用することは困難であると考えています。
影響を受けるバージョン
- OpenPNE 3.6.24 以下 または OpenPNE 3.8.21 以下
ただし、Lighttpd など一部の HTTP サーバーではプロトコルバージョンに不正な文字列が含まれる場合に 400 Bad Request のレスポンスを返すため、そのような環境においては影響を受けない可能性があります。
対策方法
今回提供されるアップデートを適用して下さい。この脆弱性についてアップデートを行わずに回避する方法はありません。
アップデート方法
OpenPNE 3
対策版へのマイナーバージョンアップもしくは修正パッチの適用を実施してください。
- OpenPNE 3.8.21.1
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.6.24.1
- [.zip 版ダウンロード] [修正パッチ]
マイナーバージョンアップ手順
パッケージに同梱されているバージョンアップ手順書に記載されている通りに作業を実施してください。
各バージョンのマイナーバージョンアップ手順書は以下からも確認することができます。
パッチ適用手順
1. OpenPNEを設置しているディレクトリにパッチファイルをアップロードします
2. SSHでログインし、1 のディレクトリに移動します
3. 以下のコマンドを実行します
$ patch -p1 < パッチファイル名
4. 以下のコマンドを実行します
$ ./symfony openpne:migrate
OpenPNE プラグイン
OpenPNE 3.6 をご利用の場合は、OpenPNE 3 本体のマイナーバージョンアップをおこなうと opWebAPIPlugin、opFavoritePlugin、opDiaryPlugin のバージョンアップも自動的におこなわれます。
そのため、バンドルプラグインについては個別にバージョンアップする必要はありません。
OpenPNE 3.8 をご利用の場合やバンドルされていないバージョンを利用しているなどの理由により、自動的にバージョンアップがおこなわれない場合、プラグインのリリース情報を参考に更新をおこなってください。
-
opTimelinePlugin
- opTimelinePlugin 1.2.6.1
- [.zip 版ダウンロード] [修正パッチ]
-
opDiaryPlugin
- opDiaryPlugin 1.4.1.1
- [.zip 版ダウンロード] [修正パッチ]
- opDiaryPlugin 1.5.1.1
- [.zip 版ダウンロード] [修正パッチ]
-
opFavoritePlugin
- opFavoritePlugin 1.0.1.1
- [.zip 版ダウンロード] [修正パッチ]
-
opWebAPIPlugin
- opWebAPIPlugin 0.5.1.2
- [.zip 版ダウンロード] [修正パッチ]
セキュリティ上の問題の報告手順について
OpenPNE プロジェクトでは、以下に案内している通り、セキュリティ上の問題の報告を受け付ける窓口 (security@openpne.jp) を用意しています。
セキュリティ上の問題を発見した場合は、通常の公開されたバグ報告の手順を踏むのではなく、 security@openpne.jp に連絡してください。 security@openpne.jp はクローズドなメーリングリストであり、このメーリングリストでおこなわれた脆弱性の詳細情報などのやり取りがそのまま公開されることはありません。
opCalendarPlugin 0.9.5 リリースのお知らせ
04 / 24 金曜日 2015
opCalendarPlugin リードメンテナの卜部です。
opCalendarPlugin 0.9.5 をリリースしました。
今回は Google Calendar の連携において OAuth 1.0 のサポートが 4 月 20 日で終了したため、
それに対応するための修正を行いました。
バグ、要望がありましたら、以下のページから作成ください。(チケット作成はRedmineに登録している必要があります。)
・opCalendarPlugin チケット作成
インストールコマンド
$ ./symfony opPlugin:install opCalendarPlugin -r 0.9.5
$ ./symfony openpne:migrate –-target=opCalendarPlugin
インストール後、OAuth 2.0 向けの JSON ファイルを Google Developers Console から取得し 管理画面 (pc_backend.php/opCalendarPlugin) に登録してください。OAuth 1.0 を使っていた場合も新規に JSON ファイルを取得する必要があります。
OAuth 2.0 での対応と同時に行えるようになったこと
- ・一つのプライマリーのカレンダーと紐付けられるのは SNS 内の 1 アカウントとする制限をいれた
- ・Google Calendar 側で削除された場合、SNS 側でも削除を行うようにした
- ・トークンを Revoke できるように改修した (SNS 内の連携しているスケジュール、アクセストークン削除、Google Calendar 側でトークンを無効にする)
OpenPNE 3.6.18、3.8.15 以下 および opCommunityTopicPlugin 1.0.5、1.1.2 以下 および opIntroFriendPlugin 1.0.0 以下 に存在する公開設定関連の修正対応のお知らせ(OPSA-2015-001)
04 / 02 木曜日 2015
OpenPNE 3.6.18、3.8.15 以下 および opCommunityTopicPlugin 1.0.5、1.1.2 以下 および opIntroFriendPlugin 1.0.0 以下 には、公開設定に関する複数の不具合が存在します。
本日(2015/04/02)、この問題の対策版として OpenPNE 3.6.18.1、3.8.15.1 および opCommunityTopicPlugin 1.0.5.1、1.1.2.1 および opIntroFriendPlugin 1.0.0.1 のリリースを行いましたので、内容を確認のうえバージョンアップまたはパッチの適用をお願いいたします。
概要
OpenPNE 3.6.18、3.8.15 以下 および opCommunityTopicPlugin 1.0.5、1.1.2 以下 および opIntroFriendPlugin 1.0.0 以下 には、下記の公開設定関連の問題が存在していました。
- 1. Web全体に公開しているプロフィールページで、Web全体に公開していないフレンドがフレンドリストに表示されてしまう
- 2. Web全体に公開しているプロフィールページで、紹介文を書いたフレンドのニックネームとプロフィール画像が表示されてしまう
- 3. コミュニティ参加承認待ちのメンバーがコミュニティ書き込みの転送を利用してトピックの情報を取得できてしまう
- 4. 特定の URL 指定をするとプロフィールページが公開範囲の指定にかかわらず閲覧可能となってしまう
- 5. 誕生日メール送信タスクが誕生日の公開設定を考慮していないため、非公開であってもフレンドに対して誕生日メールが送信されてしまう
本問題について
影響を受けるシステム
1. Web全体に公開しているプロフィールページで、Web全体に公開していないフレンドがフレンドリストに表示されてしまう
2. Web全体に公開しているプロフィールページで、紹介文を書いたフレンドのニックネームとプロフィール画像が表示されてしまう
3. コミュニティ参加承認待ちのメンバーがコミュニティ書き込みの転送を利用してトピックの情報を取得できてしまう
4. 特定の URL 指定をするとプロフィールページが公開範囲の指定にかかわらず閲覧可能となってしまう
5. 誕生日メール送信タスクが誕生日の公開設定を考慮していないため、非公開であってもフレンドに対して誕生日メールが送信されてしまう
想定される影響
1. Web全体に公開しているプロフィールページで、Web全体に公開していないフレンドがフレンドリストに表示されてしまう
2. Web全体に公開しているプロフィールページで、紹介文を書いたフレンドのニックネームとプロフィール画像が表示されてしまう
3. コミュニティ参加承認待ちのメンバーがコミュニティ書き込みの転送を利用してトピックの情報を取得できてしまう
4. 特定の URL 指定をするとプロフィールページが公開範囲の指定にかかわらず閲覧可能となってしまう
5. 誕生日メール送信タスクが誕生日の公開設定を考慮していないため、非公開であってもフレンドに対して誕生日メールが送信されてしまう
対策方法・回避方法
対応方法については、本エントリの「本問題への対応方法」をご覧ください。
この問題に対する回避方法はありません。
本問題への対応方法
「影響をうけるシステム」で示した条件を満たすすべてのサイトは、以下の対応を実施してください。
OpenPNE 3
対策版へのマイナーバージョンアップもしくは修正パッチの適用を実施してください。
- OpenPNE 3.8.15.1
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.6.18.1
- [.zip 版ダウンロード] [修正パッチ]
マイナーバージョンアップ手順
パッケージに同梱されているバージョンアップ手順書に記載されている通りに作業を実施してください。
各バージョンのマイナーバージョンアップ手順書は以下からも確認することができます。
パッチ適用手順
1. OpenPNEを設置しているディレクトリにパッチファイルをアップロードします
2. SSHでログインし、1 のディレクトリに移動します
3. 以下のコマンドを実行します
$ patch -p1 < パッチファイル名
OpenPNE プラグイン
OpenPNE 3.6 をご利用の場合は、OpenPNE 3 本体のマイナーバージョンアップをおこなうと opCommunityTopicPlugin や opIntroFriendPlugin のバージョンアップも自動的におこなわれます。
そのため、バンドルプラグインについては個別にバージョンアップする必要はありません。
OpenPNE 3.8 をご利用の場合やバンドルされていないバージョンを利用しているなどの理由により、自動的にバージョンアップがおこなわれない場合、プラグインのリリース情報を参考に更新をおこなってください。
-
opCommunityTopicPlugin
- opCommunityTopicPlugin-1.0.5.1
- [.zip 版ダウンロード] [修正パッチ]
- opCommunityTopicPlugin-1.1.2.1
- [.zip 版ダウンロード] [修正パッチ]
-
opIntroFriendPlugin
- opIntroFriendPlugin-1.0.0.1
- [.zip 版ダウンロード] [修正パッチ]
セキュリティ上の問題の報告手順について
OpenPNE プロジェクトでは、以下に案内している通り、セキュリティ上の問題の報告を受け付ける窓口 (security@openpne.jp) を用意しています。
セキュリティ上の問題を発見した場合は、通常の公開されたバグ報告の手順を踏むのではなく、 security@openpne.jp に連絡してください。 security@openpne.jp はクローズドなメーリングリストであり、このメーリングリストでおこなわれた脆弱性の詳細情報などのやり取りがそのまま公開されることはありません。
opBlogPlugin 1.0.3 リリースのお知らせ
12 / 12 木曜日 2013
OpenPNE 開発チームの今村です。
本日 2013/12/12、opBlogPlugin 1.0.3 をリリースしました。
今回のリリースでは、opBlogPlugin を使用しているメンバーが退会しようとすると500エラーとなる問題を対応いたしました。
opTimelinePlugin 1.2.2 リリースのお知らせ
11 / 28 木曜日 2013
OpenPNE 開発チームの今村です。
本日、opTimelinePlugin 1.2.2 をリリースしました。
今回のリリースでは、タイムラインでコメントができなくなってしまう問題を対応いたしました。
opTimelinePlugin 1.2.1 リリースのお知らせ
11 / 14 木曜日 2013
OpenPNE 開発チームの今村です。
本日、opTimelinePlugin 1.2.1 をリリースしました。
今回のリリースでは、自分自身とフレンドのタイムラインを表示するガジェットの追加、キャッシュクリア時にタイムラインに投稿した画像がNo Image画像になってしまう問題などを対応いたしました。
【緊急リリース】すべてのバージョンの OpenPNE 3、 opOpenSocialPlugin、 opWebAPIPlugin における XML 外部実体参照に関する脆弱性対応のお知らせ (OPSA-2013-003)
09 / 10 火曜日 2013
すべてのバージョンの OpenPNE 3 および opOpenSocialPlugin、 opWebAPIPlugin には、 XML 外部実体参照に関する脆弱性が存在します。この脆弱性をインターネット上の第三者に悪用されることで、たとえば、サーバ上の情報の漏洩や、サーバのリソースを過度に消費される可能性があります。
本日 (09/10)、この問題の対策版リリースをおこないましたので、内容を確認のうえバージョンアップまたはパッチの適用を、どちらも難しい場合は回避策の実施をお願いいたします。
本問題について
影響を受けるシステム
※以下に示す条件を満たしていたとしても、「PHP が依存する libxml2 のバージョンが 2.9.0 以上である場合」は本脆弱性の影響を受けないため、対応の必要はありません。お使いの PHP がどのバージョンの libxml2 に依存しているかどうかは、 phpinfo() の情報から確認することができます。
以下のバージョンの OpenPNE を使用しているすべてのサイト
- OpenPNE 3.8.7
- OpenPNE 3.6.11
- OpenPNE 3.4.21.1
- OpenPNE 3.2.7.6
- OpenPNE 3.0.8.5
以下のバージョンの opOpenSocialPlugin を使用しているすべてのサイト
- opOpenSocialPlugin 1.2.6
- opOpenSocialPlugin 0.9.13
- opOpenSocialPlugin 0.9.9.2
- opOpenSocialPlugin 0.8.2.2
以下のバージョンの opWebAPIPlugin を使用しているすべてのサイト
- opWebAPIPlugin 0.5.1
- opWebAPIPlugin 0.4.0
- opWebAPIPlugin 0.1.0
脆弱性の説明
XML パーサに存在する XML 外部実体参照の機能を悪用し、特定の形式の XML を OpenPNE やバンドルプラグインに読み込ませることで、サーバ上の情報の漏洩、サーバのリソースの過度な消費などの問題を引き起こされる可能性があります。
脆弱性の生じる機能は以下に示すとおりです。
- OpenPNE 3 の複数の XML パース部分に存在する XXE 脆弱性 (CVE-2013-4333)
- OpenPNE プラグインセットアップ関連機能
- opAuthOpenIDPlugin による OpenID 関連機能
※OpenPNE 3 コアに同梱された PHP OpenID Library の脆弱性 が原因であるため、 opAuthOpenIDPlugin に対する修正ではなく、 OpenPNE 3 コアに対する修正が必要となります
- opWebAPIPlugin による HTTP リクエスト処理部分に存在する XXE 脆弱性 (CVE-2013-4334)
- opOpenSocialPlugin による OpenSocial 関連機能に存在する XXE 脆弱性 (CVE-2013-4335)
対策方法・回避方法
ソースコード上での対応方法については、本エントリの「本問題への対応方法」をご覧ください。
libxml2 側での対応方法
PHP の依存する libxml2 を 2.9.0 以上のものに置き換えることで、本問題への対策となります。
この作業が難しい場合は、後述する「ソースコード上での対方法」もしくは「回避方法」の手順を実施してください。
回避方法
後述の根本対応がすぐにおこなえない場合、以下のすべての対策を実施してください。
- opWebAPIPlugin を無効にする
- opOpenSocialPlugin を無効にする
- opAuthOpenIDPlugin を無効にする
- 信頼できないプラグインをインストールしない (ただし、これは本脆弱性の有無にかかわらずもともと必須です)
本問題への対応方法
「影響をうけるシステム」で示した条件を満たすすべてのサイトは、以下の対応を実施してください。
OpenPNE 3
対策版へのマイナーバージョンアップもしくは修正パッチの適用を実施してください。
- OpenPNE 3.8.7.1
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.6.11.1
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.4.21.2
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.2.7.7
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.0.8.6
- [.zip 版ダウンロード] [修正パッチ]
マイナーバージョンアップ手順
パッケージに同梱されているバージョンアップ手順書に記載されている通りに作業を実施してください。
各バージョンのマイナーバージョンアップ手順書は以下からも確認することができます。
- OpenPNE 3.8.7.1 バージョンアップ手順書
- OpenPNE 3.6.11.1 バージョンアップ手順書
- OpenPNE 3.4.21.2 バージョンアップ手順書
- OpenPNE 3.2.7.7 バージョンアップ手順書
- OpenPNE 3.0.8.6 バージョンアップ手順書
パッチ適用手順
1. OpenPNEを設置しているディレクトリにパッチファイルをアップロードします
2. SSHでログインし、1 のディレクトリに移動します
3. 以下のコマンドを実行します
$ patch -p1 < パッチファイル名
4. 以下のコマンドを実行します
$ ./symfony openpne:migrate
OpenPNE プラグイン
OpenPNE 3 本体のマイナーバージョンアップをおこなうと opWebAPIPlugin や opOpenSocialPlugin のバージョンアップも自動的におこなわれます。
そのため、バンドルプラグインについては個別にバージョンアップする必要はありません。
バンドルされていないバージョンを利用しているなどの理由により、自動的にバージョンアップがおこなわれない場合、プラグインのリリース情報を参考に更新をおこなってください。
- opWebAPIPlugin
- opWebAPIPlugin-0.5.1.1
- opWebAPIPlugin-0.4.0.1
- opWebAPIPlugin-0.1.0.1
- opOpenSocialPlugin
- opOpenSocialPlugin-1.2.6.1
- opOpenSocialPlugin-0.9.13.1
- opOpenSocialPlugin-0.9.9.3
- opOpenSocialPlugin-0.8.2.3
謝辞
本脆弱性は、海老原昂輔 (co3k) 氏よりご報告いただきました。厚く御礼申し上げます。
なお、 海老原氏によれば、本件のような XML パース処理に関わる脆弱性の概要やプログラム側での対応方法について、 PHP カンファレンス 2013 にて講演する予定とのこと です。
セキュリティ上の問題の報告手順について
OpenPNE プロジェクトでは、以下に案内している通り、セキュリティ上の問題の報告を受け付ける窓口 (security@openpne.jp) を用意しています。
セキュリティ上の問題を発見した場合は、通常の公開されたバグ報告の手順を踏むのではなく、 security@openpne.jp に連絡してください。 security@openpne.jp はクローズドなメーリングリストであり、このメーリングリストでおこなわれた脆弱性の詳細情報などのやり取りがそのまま公開されることはありません。