SHIRASAGI にクロスサイト・スクリプティング脆弱性が2つとパストラバーサル脆弱性がありました。この脆弱性は v1.17.0 以前のシラサギに存在し、v1.18.0 で修正されています。
修正方法
SHIRASAGI本体の更新に加え nginx 設定(apache httpd をご利用の場合は apache httpd 設定)の変更が必要で、手順は以下の通りとなります。
- SHIRASAGI 開発マニュアル
のSHIRASAGI の更新
を参考にSHIRASAGI本体をv1.18.0へバージョンアップする。
- nginx をご利用の方は、SHIRASAGI 開発マニュアル
のNginx のインストールの(2) プロキシーの設定
を参考に、HTML ファイルに対して "Content-Disposition: attachment" ヘッダを付与するように修正。
- apache httpd をご利用の方は、SHIRASAGI 開発マニュアル
のApache のインストールの(2) VirtualHost設定
を参考に、HTML ファイルに対して "Content-Disposition: attachment" ヘッダを付与するように修正。
SHIRASAGI におけるクロスサイトスクリプティングの脆弱性1について
この攻撃を成立させるには、下記のいずれかの条件が必要となります。
- 被害者を以下のような URL に誘導する。
https://(グループウェアが動作するドメイン)/.g1/schedule/todo/-/readables/64046161e138237ff2c15eae?calendar[path]=javascript:alert(0) - 被害者が画面上部の「カレンダーへ戻る」ボタンを押下すると攻撃が成立し、calendar[path]に指定したJavaScriptが実行される。
SHIRASAGI におけるクロスサイトスクリプティングの脆弱性2について
この攻撃を成立させるには、下記のいずれかの条件が必要となります。
- SHIRASAGI にクロスサイト・スクリプティング脆弱性が組み込まれた HTMLファイルをアップロードする。
HTMLファイルの内容:<script>alert(0)</script>
- アップロード機能は掲示板、ToDo、ワークフローなど、各所に存在し、同様の問題が存在する。
SHIRASAGI におけるパストラバーサルの脆弱性について
この攻撃を成立させるには、下記のいずれかの条件が必要となります。
- 次のような内容を持つ細工したzipファイルを作成する。
Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2023-08-01 09:00:00 ..... 2500 2500 ../../../../../../../../../var/www/shirasagi/app/views/layouts/ss/login.html.erb ------------------- ----- ------------ ------------ ------------------------ 2023-08-01 09:00:00 2500 2500 1 files
- シラサギのオープンデータサイトにログインし、データセットフォルダーにアクセスする。
- 上部メニューのインポートから 1 で作成したファイルをアップロードする。
- 任意の階層のファイルへの書き込みや、erb ファイルの改ざんなどによる任意のコードの実行が可能。
1で例示したzipファイルのアップロードすると、ログイン画面が書き換わる。