Wiki.js の脆弱性 CVE-2024-34710 が FIX:アカウント乗っ取りにつながる恐れ

CVE-2024-34710: Wiki.js Vulnerability Exposes Users to Potential Account Takeover

2024/05/23 SecurityOnline — 人気のオープンソース Wiki エンジンである Wiki.js は、蓄積型 XSS (cross-site scripting ) の脆弱性 CVE-2024-34710 (CVSS:7.1) に対してパッチを適用した。この脆弱性の悪用に成功した攻撃者は、悪意のコードを注入し、ユーザー・アカウントを侵害する可能性があるが、その対象には昇格した特権を持つユーザーも含まれる。


Wiki.js は、Node.js 上に構築され、JavaScript で書かれた堅牢なオープンソース Wiki エンジンであり、共有的なナレッジ・ベース/ドキュメントなどの、あらゆる情報リポジトリを作成/管理するための、ユーザー・フレンドリーなプラットフォームを提供している。 Wiki.js は、GitHub 上で 50,000 件以上のダウンロードと、23,600 件以上のスターを獲得しており、多くの開発者や組織から信頼を集めている。

脆弱性 CVE-2024-34710 は、クライアント側のテンプレート・インジェクション・メカニズムの欠陥に起因しており、悪用に成功した攻撃者は、悪意の JavaScript を Wiki.js ページのコンテンツ・セクションに注入することが可能になる。そして、被害者が侵害されたページを読み込むたびに、この悪意のコードが実行される可能性が生じる。

この脆弱性の根本的な原因は、Wiki.js 内の mustache 式の不適切な処理にある。この式は、”dom-purify” モジュールによる処理の前にエスケープされ、結果として無効化された HTML タグが削除される。その結果として、mustache 式はエスケープされなくなり、悪意のコードのインジェクションが可能になる。

この脆弱性の悪用は、以下の例に示すように、無効な HTML タグの後にテンプレートのペイロードを注入することで達成される:

<xyzabcd>
{{constructor.constructor('alert(1)')()}}

このペイロードを含むページを、被害者がロードすると、注入された JavaScript がブラウザのコンテキストで実行される。

すでに Wiki.js 開発チームは、脆弱性 CVE-2024-34710 に対処し、バージョン 2.5.303 でパッチをリリースしている。ユーザーと管理者に強く推奨されるのは、潜在的な悪用からインストールを保護するために、この最新バージョンにアップデートすることだ。