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

セキュリティ関連告知

Home

[OPSA-2017-001] SNSメンバー間におけるアクセス制限を回避する脆弱性に対する修正

02 / 09 木曜日 2017

本日 (2017/02/09)、OpenPNE に対して次の通りセキュリティリリースを行いました。内容を確認のうえバージョンアップまたはパッチの適用をお願いいたします。

  • OpenPNE 3.8.22.1
  • OpenPNE 3.6.25.1

これらのバージョンは、OpenPNE に存在する次の脆弱性に対する修正を含んでいます。

  1. SNSメンバー間におけるアクセス制限を回避する脆弱性

各脆弱性の詳細については以下を参照して下さい。

1. SNSメンバー間におけるアクセス制限を回避する脆弱性

OpenPNE について、SNS メンバー間のアクセスブロック設定によるアクセス制限を回避する脆弱性が発見されました。

想定される影響

SNSに登録しているユーザーによって、下記のような操作を行われる可能性があります。

  • アクセスブロック機能でアクセスが制限されているメンバーのプロフィール写真一覧 (メイン写真に設定していないものを含む) を閲覧される可能性があります
  • アクセスブロック機能でアクセスが制限されているメンバーの参加コミュニティ一覧を閲覧される可能性があります

影響を受けるバージョン

  • OpenPNE 3.8.22 以下
  • OpenPNE 3.6.25 以下

対策方法

今回提供されるアップデートを適用して下さい。この脆弱性についてアップデートを行わずに回避する方法はありません。

アップデート方法

OpenPNE 3

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

OpenPNE 3.8.22.1
[.zip 版ダウンロード] [修正パッチ]
OpenPNE 3.6.25.1
[.zip 版ダウンロード] [修正パッチ]
マイナーバージョンアップ手順

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

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

パッチ適用手順

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

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

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

$ ./symfony openpne:migrate

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

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

https://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

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

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 最新版 では、この問題が発生しないことが確認されています。

本問題について

影響を受けるシステム

opUploadFilePlugin 0.9.0 以下 を使用しているサイト

想定される影響

下記手順にて操作を行うことでHTMLファイルに含まれている任意のスクリプトがダウンロード時に実行されてしまう。
1. 任意のスクリプトを含む HTMLファイル を用意する
2. メンバーA (攻撃者) が opUploadFilePlugin のアップロード機能を使用して 1. の HTML ファイルをアップロードする
3. アップロードが完了するとファイルの共有用 URL が表示されるため、メンバーA (攻撃者) はその URL を他の SNS メンバーが開くように誘導する
4. メンバーB が Internet Explorer 8 を使用してその URL を開くと、ブラウザ標準のファイルダウンロードのダイアログが表示される
5. メンバーB がダイアログの「保存」ではなく「開く」をクリックすると、HTML ファイル内に含まれるスクリプトが実行される

対策方法

本問題への対応方法

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

opUploadFilePlugin

プラグインのリリース情報を参考に更新をおこなってください。

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

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

https://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

セキュリティ上の問題を発見した場合は、通常の公開されたバグ報告の手順を踏むのではなく、 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 に存在する下記の脆弱性に対する修正を含んでいます。

  1. SNSメンバー間におけるアクセス制限を回避する脆弱性
  2. ログイン可能なセッションCookieがOAuthを使用するサードパーティアプリに流出する脆弱性
  3. IPアドレスに基づくWeb APIへのアクセス制限を回避する脆弱性
  4. 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 をご利用の場合やバンドルされていないバージョンを利用しているなどの理由により、自動的にバージョンアップがおこなわれない場合、プラグインのリリース情報を参考に更新をおこなってください。

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

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

https://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

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

OpenPNE 3.6.21、3.8.18 以下 に存在する アクティビティのアクセスブロックに関する複数の脆弱性 の修正のお知らせ(OPSA-2016-001)

02 / 25 木曜日 2016

OpenPNE 3.6.21、3.8.18 以下 には、アクティビティのアクセスブロックに関する複数の脆弱性が存在します。

本日(2016/02/25)、この問題の対策版として OpenPNE 3.6.21.1、3.8.18.1 のリリースを行いましたので、内容を確認のうえバージョンアップまたはパッチの適用をお願いいたします。

概要

OpenPNE 3.6.21、3.8.18 以下 には、下記のアクティビティのアクセスブロックに関する複数の脆弱性が存在していました。

  1. 1. 「全員のアクティビティ」ガジェット (/member/_allMemberActivityBox) がアクセスブロック設定を考慮していない問題
  2. 2. アクティビティ検索API(activity/search.json)がアクセスブロック設定を考慮していない問題

本問題について

影響を受けるシステム

1. 「全員のアクティビティ」ガジェット (/member/_allMemberActivityBox) がアクセスブロック設定を考慮していない問題
OpenPNE 3.6.21、3.8.18 以下を利用しており、「全員のアクティビティ」ガジェットを利用しているサイト
2. アクティビティ検索API(activity/search.json)がアクセスブロック設定を考慮していない問題
OpenPNE 3.8.18 以下を利用しているサイト

想定される影響

1. 「全員のアクティビティ」ガジェット (/member/_allMemberActivityBox) がアクセスブロック設定を考慮していない問題
アクセスブロックを行ったメンバーの投稿をアクセスブロックされているメンバーが閲覧できてしまう。
また、「もっと読む」のリンク先(/member/showAllMemberActivity) でも同様の問題が発生する。
なお、メンバー毎のアクティビティ一覧ページ(/member/showActivity/id/*)ではアクセスブロック設定に応じて正しく表示される。
2. アクティビティ検索API(activity/search.json)がアクセスブロック設定を考慮していない問題
アクセスブロックを行ったメンバーの投稿をアクセスブロックされているメンバーが閲覧できてしまう。
アクティビティ検索API を利用しているため opTimelinePlugin(すべてのバージョン) でも同様の問題が発生する。

対策方法・回避方法

対応方法については、本エントリの「本問題への対応方法」をご覧ください。
この問題に対する回避方法はありません。

本問題への対応方法

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

OpenPNE 3

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

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

なお、opTimelinePlugin 自体の更新は必要ありません。

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

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

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

パッチ適用手順

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

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

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

$ ./symfony openpne:migrate

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

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

https://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

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

OpenPNE 3.6.20、3.8.17 以下 および opAuthMailAddressPlugin 1.3.5 以下に存在するセッション管理に関する複数の脆弱性の修正のお知らせ(OPSA-2015-002)

10 / 08 木曜日 2015

OpenPNE 3.6.20、3.8.17 以下 および opAuthMailAddressPlugin 1.3.5 以下 には、セッション管理に関する複数の脆弱性が存在します。

本日(2015/10/08)、この問題の対策版として OpenPNE 3.6.20.1、3.8.17.1 および opAuthMailAddressPlugin 1.3.5.1 のリリースを行いましたので、内容を確認のうえバージョンアップまたはパッチの適用をお願いいたします。

また、opAuthMailAddressPlugin 以外の独自カスタマイズの認証プラグインをご利用の場合も同様の処理を行っている場合がありますので、パッチをダウンロードの上内容をご確認ください。

概要

OpenPNE 3.6.20、3.8.17 以下 および opAuthMailAddressPlugin 1.3.5 以下 には、下記のセッション管理に関する複数の脆弱性が存在していました。

  1. 1. 新規登録URLを利用したなりすましログインが可能な問題
  2. 2. セッション破棄の不備

本問題について

影響を受けるシステム

1. 新規登録URLを利用したなりすましログインが可能な問題
OpenPNE 3.6.20、3.8.17 以下を利用しており、認証プラグイン opAuthMailAddressPlugin を有効にしているサイト
セッション破棄の不備
OpenPNE 3.6.20、3.8.17 以下を利用しており、symfony のバージョンが 1.4.17 以下を利用しているサイト

想定される影響

1. 新規登録URLを利用したなりすましログインが可能な問題
登録済みメンバーに紐付く新規登録URLを第三者に取得された場合、通常の認証を経由せずになりすましログインがおこなわれる可能性がある。
なりすましログインがおこなわれることによって、パスワードなどを要求する重要な操作を除き、ほとんどの情報の閲覧や変更をなりすましたメンバーの権限でおこなわれてしまう可能性がある。
2. セッション破棄の不備
SNS画面(PC用・モバイル用)、管理画面 でログアウトを行っても、セッションがサーバ側で破棄されない。

対策方法・回避方法

対応方法については、本エントリの「本問題への対応方法」をご覧ください。
この問題に対する回避方法はありません。

本問題への対応方法

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

OpenPNE 3

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

OpenPNE 3.8.17.1
[.zip 版ダウンロード] [修正パッチ]
OpenPNE 3.6.20.1
[.zip 版ダウンロード] [修正パッチ]
マイナーバージョンアップ手順

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

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

パッチ適用手順

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

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

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

$ ./symfony openpne:migrate

OpenPNE プラグイン

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

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

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

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

https://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

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

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. 1. Web全体に公開しているプロフィールページで、Web全体に公開していないフレンドがフレンドリストに表示されてしまう
  2. 2. Web全体に公開しているプロフィールページで、紹介文を書いたフレンドのニックネームとプロフィール画像が表示されてしまう
  3. 3. コミュニティ参加承認待ちのメンバーがコミュニティ書き込みの転送を利用してトピックの情報を取得できてしまう
  4. 4. 特定の URL 指定をするとプロフィールページが公開範囲の指定にかかわらず閲覧可能となってしまう
  5. 5. 誕生日メール送信タスクが誕生日の公開設定を考慮していないため、非公開であってもフレンドに対して誕生日メールが送信されてしまう

本問題について

影響を受けるシステム

1. Web全体に公開しているプロフィールページで、Web全体に公開していないフレンドがフレンドリストに表示されてしまう
OpenPNE 3.6.18、3.8.15 以下を利用しており、Web全体に公開しているメンバーにフレンドが存在するサイト
2. Web全体に公開しているプロフィールページで、紹介文を書いたフレンドのニックネームとプロフィール画像が表示されてしまう
opIntroFriendPlugin 1.0.0 以下を利用しており、Web全体に公開しているメンバーにフレンドが存在するサイト
3. コミュニティ参加承認待ちのメンバーがコミュニティ書き込みの転送を利用してトピックの情報を取得できてしまう
opCommunityTopicPlugin 1.0.5、1.1.2 以下を利用しているサイト
4. 特定の URL 指定をするとプロフィールページが公開範囲の指定にかかわらず閲覧可能となってしまう
OpenPNE 3.6.18、3.8.15 以下を利用しているサイト
5. 誕生日メール送信タスクが誕生日の公開設定を考慮していないため、非公開であってもフレンドに対して誕生日メールが送信されてしまう
OpenPNE 3.6.18、3.8.15 以下を利用しているサイト

想定される影響

1. Web全体に公開しているプロフィールページで、Web全体に公開していないフレンドがフレンドリストに表示されてしまう
プロフィールを「Web全体に公開」しているメンバーと、プロフィールを「Web全体に公開」していないメンバーがフレンドの場合、「Web全体に公開」しているプロフィールページのフレンドリストに「Web全体に公開」していないメンバーのプロフィール画像とニックネームが表示されてしまう。
2. Web全体に公開しているプロフィールページで、紹介文を書いたフレンドのニックネームとプロフィール画像が表示されてしまう
プロフィールを「Web全体に公開」しているメンバーと、プロフィールを「Web全体に公開」していないメンバーがフレンドの場合でプロフィールを「Web全体に公開」しているメンバーに紹介文を書いている場合、「Web全体に公開」しているプロフィールページのフレンドからの紹介文に「Web全体に公開」していないメンバーのプロフィール画像とニックネームが表示されてしまう。
3. コミュニティ参加承認待ちのメンバーがコミュニティ書き込みの転送を利用してトピックの情報を取得できてしまう
コミュニティトップにて、コミュニティ参加承認待ちのメンバーが閲覧した場合でもコミュニティ書き込みの転送設定が表示されるため、承認待ちメンバーでも書き込み転送設定を「受け取る」にすると、その後のトピックの書き込みを受信できてしまう。
4. 特定の URL 指定をするとプロフィールページが公開範囲の指定にかかわらず閲覧可能となってしまう
特定の 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 をご利用の場合やバンドルされていないバージョンを利用しているなどの理由により、自動的にバージョンアップがおこなわれない場合、プラグインのリリース情報を参考に更新をおこなってください。

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

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

https://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

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

【緊急リリース】OpenPNE 3.6.13, 3.8.9 以下の「次回から自動ログイン」機能に存在する PHP Object Injection 脆弱性対応のお知らせ (OPSA-2014-001)

01 / 20 月曜日 2014

OpenPNE 3.6.13, 3.8.9 のメンバーのログイン画面にて利用可能な「次回から自動ログイン」という機能には、PHP Object Injection 脆弱性が存在します。
この脆弱性を悪用することで、OpenPNEでは任意の PHP コードの実行が可能となっており、極めて重大な問題です。

本日 (2014/01/20)、この問題の対策版として OpenPNE 3.6.13.1, 3.8.9.1 のリリースをおこないましたので、内容を確認の上、バージョンアップまたはパッチの適用をお願いいたします。

本問題について

影響を受けるシステム

以下のバージョンの OpenPNE (メンバーのログイン画面の「次回から自動ログイン」機能を有するバージョン) を使用しているすべてのサイト

  • OpenPNE 3.6.13 以下
  • OpenPNE 3.8.9 以下

※OpenPNE 3.4系列、OpenPNE 3.2 系列、OpenPNE 3.0 系列は問題となる機能を有していないため、本脆弱性の影響を受けません。

脆弱性の説明

OpenPNE 3.6 から追加された「次回から自動ログイン」の機構は、自動ログイン対象となるメンバー ID と、自動ログイン毎に発行された認証用の ID の組をバイナリデータとしてシリアライズし、 base64 エンコードを施した文字列を格納した cookie をやり取りすることによって実現されています。
この認証に必要な cookie の情報をシリアライズ、アンシリアライズする手段に実装上の不備があるため、任意の PHP コードを実行されてしまうといった重大な問題が発生する可能性があります。

想定される影響

以下のような深刻な影響が考えられます。

  • 任意の PHP コード実行
  • Web サーバからアクセス可能な任意のファイルの削除

対策方法・回避方法

対応方法については、本エントリの「本問題への対応方法」をご覧ください。
この問題に対する回避方法はありません。

本問題への対応方法

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

OpenPNE 3

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

OpenPNE 3.8.9.1
[.zip 版ダウンロード] [修正パッチ]
OpenPNE 3.6.13.1
[.zip 版ダウンロード] [修正パッチ]
マイナーバージョンアップ手順

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

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

パッチ適用手順

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

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

バージョンアップ、パッチ適用後の注意点

本問題の対応を実施すると、「次回から自動ログイン」を設定していたユーザでも再度ログイン操作を行う必要があります。

謝辞

本脆弱性は、Secunia Research の Egidio Romano 氏よりご報告を頂きました。
報告者の方、および、本問題の解決にあたられた関係者各位に対して厚く御礼申し上げます。

This vulnerability is reported by Egidio Romano of Secunia Research.
We really appreciate him and all persons who worked very hard to release this advisory.

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

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

https://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

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

【緊急リリース】すべてのバージョンの 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 版ダウンロード] [修正パッチ]
マイナーバージョンアップ手順

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

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

パッチ適用手順

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) を用意しています。

https://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

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

【緊急リリース】OpenPNE 3.4.21, 3.6.9, 3.8.5 以下の管理画面に存在する XSS 脆弱性対応のお知らせ (OPSA-2013-002)

05 / 08 水曜日 2013

OpenPNE 3.4.21, 3.6.9, 3.8.5 の管理画面にて利用可能な「携帯版配色設定」という機能には XSS 脆弱性が存在します。なお、この「携帯版配色設定」機能を利用していない場合や、携帯版を無効にしている場合でも、同様に本脆弱性の影響を受けることに注意してください

本日 (5/8)、この問題の対策版として OpenPNE 3.4.21.1, 3.6.9.1, 3.8.5.1 のリリースをおこないましたので、内容を確認のうえバージョンアップまたはパッチの適用を、どちらも難しい場合は回避策の実施をお願いいたします。

本問題について

影響を受けるシステム

以下のバージョンの OpenPNE (管理画面の「携帯版配色設定」機能を有するバージョン) を使用しているすべてのサイト

  • OpenPNE 3.4.21 以下
  • OpenPNE 3.6.9 以下
  • OpenPNE 3.8.5 以下

※OpenPNE 3.2 系列、 OpenPNE 3.0 系列は問題となる機能を有していないため、本脆弱性の影響を受けません。

脆弱性の説明

管理画面の「携帯版配色設定」機能において、ログイン済みの管理者に特定の形式のリクエストを送信させることにより、管理者のブラウザ上で任意のスクリプトを実行されてしまう可能性があります。

想定される影響

管理者のブラウザ上で任意のスクリプトを実行されてしまうことから、たとえば以下のような深刻な影響が考えられます。

  • 管理者のセッション ID を窃用されてしまうことによる、管理者へのなりすまし
  • 管理画面の各種機能を悪用した SNS 上のコンテンツの改竄

対策方法・回避方法

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

回避方法

後述の根本対応がすぐにおこなえない場合、以下のいずれかひとつ、あるいは両方の対策を実施することで、この問題による影響を一時的に回避することができます。

  • こまめに管理画面からログアウトする
  • 管理画面にログインしたまま、メールやサイト (SNS 内、外を問わない) に記載された URL やリンクをクリックしない

管理画面を IP アドレス制限、 Basic / Digest 認証、公開鍵認証等によって保護することは、本問題の回避策としてはそれほど有効ではありません。一方で、管理画面のホスト名や、フロントコントローラのスクリプトファイル名 (デフォルトは pc_backend.php) を推測されにくいものに変更することは有効だといえますが、これらはあくまで保険的な回避策であり、いずれにしても前述の 2 つの回避策の実施は必要です。

本問題への対応方法

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

OpenPNE 3

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

OpenPNE 3.8.5.1
[.zip 版ダウンロード] [修正パッチ]
OpenPNE 3.6.9.1
[.zip 版ダウンロード] [修正パッチ]
OpenPNE 3.4.21.1
[.zip 版ダウンロード] [修正パッチ]
マイナーバージョンアップ手順

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

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

パッチ適用手順

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

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

謝辞

本脆弱性は、情報セキュリティ早期警戒パートナーシップに基づき IPA によって報告がなされ、 JPCERT/CC による調整をしていただきました。

報告者の方、および、本問題の解決にあたられた関係者各位に対して厚く御礼申し上げます。

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

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

https://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

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

【緊急告知】すべてのバージョンの OpenPNE 3 における、サーバ上ファイル漏洩の脆弱性についての注意喚起 (OPSA-2012-002)

12 / 03 月曜日 2012

すべてのバージョンの OpenPNE 3 にはサーバ上ファイルの漏洩に繋がる脆弱性が存在します。この脆弱性は OpenPNE 3 が使用している Web アプリケーションフレームワークの symfony において発覚した、以下の脆弱性 (CVE-2012-5574) に由来するものです。

Security release: symfony 1.4.20 released – Symfony

http://symfony.com/blog/security-release-symfony-1-4-20-released
Secunia Advisory SA51372 : Symfony Arbitrary File Disclosure Vulnerability
http://secunia.com/advisories/51372/

本脆弱性は、 OpenPNE 3 およびバンドルプラグインのソースコードに変更を加えずに運営している場合においては、影響が極めて限定的なものとなるため、緊急の対策版リリースは実施しません (脆弱性への修正は通常リリースにておこなう予定です)。

しかしながら、サイトの運用状況や、ソースコードの変更内容によっては、本脆弱性により無視のできない影響を受けることがあります。 OpenPNE 3 によるサイトを運営する方は、本エントリの内容を確認し、脆弱性によって発生するリスクを受容できないと判断できる場合は、早急な対策をおこなうことを強く推奨します。

本問題について

影響を受けるシステム

「画像以外のファイルアップロード機能を、 OpenPNE 3 のソースコードを改変するか、もしくはプラグインを導入することによって追加しているサイト」 (以下、「影響を受けるシステム A」と呼称します) は、本脆弱性によって甚大な影響を受ける可能性があります

また、以下の OpenPNE を使用しているサイト (以下、「影響を受けるシステム B」と呼称します) は、本脆弱性による限定的な影響を受ける可能性があります。

  • OpenPNE 3.8.3 以下、 OpenPNE 3.6.6 以下、 OpenPNE 3.4.21 以下、 OpenPNE 3.2.7.6 以下、 OpenPNE 3.0.8.5 以下のすべてのバージョン

「影響を受けるシステム B」において、画像のファイルアップロード機能を有するプラグインを使用している場合、その機能も同様に限定的な影響を受けます。バンドルプラグインのなかで該当するものは以下の通りです。

  • opAlbumPlugin
  • opCommunityTopicPlugin
  • opDiaryPlugin
  • opMessagePlugin

脆弱性の説明

symfony にて提供されているフォームフレームワークには、ファイルの送信をおこなう際のリクエストの検証に不備があり、特定の形式のパラメータを含むことで、 Web アプリケーションが設置されているサーバ上のファイル をアップロードすることができてしまうという問題があります。

この実装上の問題を悪用し、 Web サーバの権限で読み込み可能な任意のファイルを Web サーバの公開領域にアップロードさせることで、攻撃者はそのファイルの内容 (データベースの接続情報など) を取得することができます。

OpenPNE では、このフォームフレームワークを使用してフォームの構築や入力値の検証をおこなっています。したがって、ファイルのアップロードを受け付けるほとんどすべての場面において本脆弱性の影響を受けることになります。

想定される影響

  • 「影響を受けるシステム A」においては、本脆弱性によって、 Web サーバの権限によって読み取り可能なサーバ上のすべてのファイルの情報 (データベースの接続情報なども含まれます) を悪意のある攻撃者によって不正に取得される危険性があります
  • 「影響を受けるシステム B」においては、本脆弱性によって、 Web サーバの権限によって読み取り可能な サーバ上のすべての画像ファイルの情報を悪意のある攻撃者によって不正に取得される危険性があります

このうち、「影響を受けるシステム A」に関する影響は甚大であると考えられます。

一方で、「影響を受けるシステム B」については、影響はほとんど限定的です。 OpenPNE 自身に同梱された画像ファイルは既に世間一般に公開されているものです。また、画像ファイルアップロード機能によりアップロードされた画像自体には公開範囲の制限がありません。そのため、この脆弱性を利用することで攻撃者が新たに取得可能になる情報はないと考えられます。ただし、運用上の都合等によって サーバ上に秘密の画像を設置しているようなケースでは、本脆弱性によりその画像を取得される危険があります

対策方法

以下のいずれかの対応をおこなうことで、本脆弱性の影響を防ぐことができます。

  • 1. symfony の配布するパッチを適用する
  • 2. ファイルアップロードが可能な機能に対するアクセスを、 Web サーバの設定等によって制限する

ただし、「2. ファイルアップロードが可能な機能に対するアクセスを、 Web サーバの設定等によって制限する」については、お使いのプラグイン等によって設定方法が異なるため、ここでは、「1. symfony の配布するパッチを適用する」の対応についてのみ説明いたします。

パッチの適用方法

  • 1. http://trac.symfony-project.org/changeset/33598?format=diff&new=33598 から入手できる対策パッチを、 OpenPNE を設置しているディレクトリにアップロードします
  • 2. SSH でログインし、 1. のディレクトリに移動します
  • 3. 以下のコマンドを実行します

$ patch -d ./lib/vendor/symfony -p3 < パッチファイル名

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

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

https://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

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

ページの先頭に戻る