オープンソースのプロジェクト管理ツール「Kaneo」の開発者 Andrej Acevski 氏は5月29日、クラウドホスティング版(cloud.kaneo.app)が悪用され、わずか3時間足らずで14,520件のフィッシング招待メールが送信されたことを発見した。攻撃者は使い捨てメールサービスを利用して942のアカウントを一括登録し、各アカウントにフィッシングの文言を含むワークスペース名(例:„
Paul Brown from BANKING OPERATION invited you to join 3.4090_BTC receipt“)を設定。さらにKaneoのワークスペース招待機能を使い、事前に用意した受信者リストに対して、それぞれ約100通の招待メールを送信した。これらのメールはAcevski氏がDKIM認証を設定済みのResendドメインから送信されたため、すべて正当な送信者署名が付与されており、受信者が「承諾」をクリックすると、トラッキングサフィックス付きのcraftum.ioフィッシングリンクにリダイレクトされる。攻撃は日本時間の正午ごろに終了。Resendのレート検知機能が攻撃開始から約90分後に自動で停止させたが、Acevski氏が割り当て量超過のアラートを受け取ったのは事後であった。
Acevski氏はブログで、本攻撃は何らの脆弱性を利用したものではなく、攻撃者が単に「ツールを本来の使い方通りに利用した」だけだと指摘。問題の根源は、セルフホスト版とクラウドホスト版の脅威モデルの根本的な違いにある。セルフホスト版では運営者と利用者が同一であり、悪用の動機はないが、クラウド版では運営者が全ユーザーのメール送信に関してドメインの評判管理責任を負う。クリーンアップにかかった時間はわずか約1時間。1つのPostgresトランザクションで942アカウントを凍結し、947のワークスペースを削除、14,533件の招待をカスケード削除した。その後の対策強化(登録時のCAPTCHA、使い捨てメールのブロック、招待APIのレート制限、ワークスペース名のフィルタリング、ゲストアカウントからの招待禁止)には約1日を要し、これらの変更はセルフホストユーザーには提供されない。本記事はr/selfhostedで広く議論を呼び、開発者たちはクラウドホストとセルフホストにおける信頼境界の本質的な違いについて改めて考えさせられる内容となった。