主要脆弱性情報 脆弱性タイトル usememos/memosにおけるjsファイル経由のCSPバイパス 報告日時 2022年12月23日 脆弱性タイプ CWE-79: クロスサイトスクリプティング (XSS) - 格納型 深刻度 高 (7.1) 影響を受けるバージョン 0.9.0 状態 修正済み 発見者 Christy__ (@christynorl) - 中級レベル 修正者 STEVEN (@boojack) - 未検証 説明 メンテナー各位、最新バージョン0.9.0でコミットc07b4aにより修正が提出されました。しかし、多数のテストの結果、この修正は100%安全ではないことがわかりました。適用されているCSP(コンテンツセキュリティポリシー)が非常に単純であり、バイパス可能です。 検証手順 1. '123.js' という名前のjsファイルを作成し、内容は以下の通りとします。 2. リソースセクションからjsファイルをアップロードし、そのjsファイルのパスをコピーします。例として、パスは以下のようになります: 3. 'hello.html' という名前のhtmlファイルを作成し、内容は以下の通りとします。 4. 最後に、hello.htmlをプレビュー表示します。 提案 より安全なCSPの使用を推奨します。あるいは、より適切な方法があるかもしれません。プロジェクトのさらなる改善に寄与できれば幸いです。以下が私の提案です: 影響 1. 管理者アカウントやCookieの盗難。攻撃者が管理者としてバックエンドにログインし、バックエンドデータを改ざんすることができます。 2. ユーザーの個人情報やログインアカウントの盗難。サイト利用者に対して重大な脅威となります。 3. ウェブサイトへのマルウェア仕込みにより、ユーザーのPCにトロイの木馬が感染する。 4. 広告やスパムの送信により、ユーザーの通常の使用に影響を及ぼす。 発生箇所 resource.go L268 処理状況 3年前、報告が提出され、usememos/memosチームに連絡されました。 3年前、STEVENにより脆弱性が検証されました。 3年前、STEVENにより脆弱性が0.10.0バージョンで修正済みとしてマークされました。 3年前、脆弱性情報が公開されました。