本文へ移動
English version →
重大 9.3 急ぎ度: 早めに

SunEditorに脆弱性2件、3.4.0で修正版あり

WebエディターのSunEditorに、保存された内容から閲覧者のブラウザーでスクリプトが実行される脆弱性が2件公表されました。自社サイトや社内システムに3.4.0未満が入っていないか確認し、3.4.0へ更新してください。

CVE-2026-124493 公開 更新 執筆・監修: 佐々木 航 人が監修しながらAIを活用して執筆

同じ発表の脆弱性 2 件

この記事でまとめた分です。発表元の告知には、ほかの脆弱性も載っていることがあります。

画像は生成 AI で作成したイメージです

急ぎ度: 早めに

2件ともCVSS v4は9.3の重大な脆弱性ですが、修正版の3.4.0が公開済みで、更新で解消できるため、早めの更新を勧めます。

関係があるか

SunEditorをnpmで取り込んだり、CDNから読み込んだりして、投稿画面や編集画面を作っているWebアプリが対象です。編集した内容を別の利用者が表示する作りだと、影響を受けやすくなります。

製品影響を受ける版修正版
SunEditor(npmパッケージ suneditor) 3.4.0未満(GitHubの勧告では3.3.1以下) 3.4.0

確かめ方

  1. 1プロジェクトのpackage.jsonとロックファイルで、suneditorの版が3.4.0未満でないかを確認します。ほかのパッケージ経由で入っている場合もあるので、依存の入れ子も調べます。
  2. 2HTMLにCDNのscriptタグを直接書いている場合は、URLに含まれる版を確認します。
  3. 31件目は、エディターの設定に type: 'document:header' または type: 'document:header,page' を使っている場合の問題です。既定の設定ではないので、ソースコードで該当の指定があるかを検索します。
  4. 42件目の細かい条件は、GitHubのSunEditorのセキュリティアドバイザリで確認してください。

何が起きたか

JavaScript製のリッチテキストエディターSunEditorの3.4.0未満に、保存型のクロスサイトスクリプティング(XSS)の脆弱性が2件あります。エディターに保存された内容が原因で、その内容を表示した利用者のブラウザー上で、攻撃者が仕込んだスクリプトが動きます。

  • CVE-2026-124493: 文書の見出しを一覧にするパネルが、見出しの文字列をHTMLとして組み立てるため、保存された内容がスクリプトとして実行される(CVSS v4は9.3)
  • CVE-2026-124494: サニタイザーのURL正規化が一部の文字参照を誤って処理し、安全性の検査をすり抜けたリンクが保存される。そのリンクをクリックするとスクリプトが実行される(CVSS v4は9.3)

1件目では、サニタイザー自体は正しく動いていました。問題は、無害化されたあとの文字列を、表示用のパネルが再びHTMLとして解釈する処理にあります。見出しを更新する別の処理は安全な書き方で、影響を受けるのはエディターの初期化時です。

GitHubのセキュリティアドバイザリは2026年10月23日付で、CVEは11月8日に公表されました。

攻撃の流れ

  1. 1

    細工した内容を保存

    攻撃者が、見出しやリンクに細工した内容をエディター経由で保存させます。

  2. 2

    無害化をすり抜ける

    1件目は表示パネルの組み立て、2件目はURLの正規化の不備により、保存内容が無害化されないまま残ります。

  3. 3

    閲覧者が表示・操作

    1件目は編集画面の読み込み時、2件目は保存されたリンクのクリック時にスクリプトが動きます。

  4. 4

    ブラウザーで実行

    閲覧者のブラウザー上で、攻撃者のスクリプトが閲覧者の権限で動作します。

  5. 5

    情報窃取・操作

    セッションCookieの窃取や、閲覧者になりすました操作につながります。

公開されている情報をもとにした流れの例です。

どう悪用されるか

どちらも、細工した内容がエディター経由で保存され、それを別の利用者が表示することで成立します。CVSS v4の評価では、ネットワーク越しに攻撃でき、攻撃条件は低く、事前の権限は不要とされています。

条件はCVE-2026-124493とCVE-2026-124494で異なります。1件目は、エディターを document:header 系の設定で初期化している場合に限られます。閲覧者が画面を読み込むだけで自動的にスクリプトが動き、追加の操作は要りません。2件目は、保存されたリンクを閲覧者がクリックしたときに動きます。

悪用されると、閲覧者のブラウザー上で攻撃者のスクリプトが動きます。1件目の勧告には、セッションCookieの窃取と、閲覧者になりすました操作が挙げられています。管理者が内容を確認する画面でエディターが動く場合は、管理者のセッションが狙われる点にも注意が必要です。

今すぐやること

  1. 1

    SunEditorの利用箇所を洗い出す

    自社開発のWebアプリ、社内ポータル、CMS、外部委託で作ったシステムを対象に、依存関係とCDN参照を調べます。入れ子の依存も含めて版を確認します。

    npm ls suneditor
  2. 2

    3.4.0へ更新して再デプロイする

    package.jsonの指定とロックファイルを3.4.0に更新し、ビルドして本番へ反映します。CDNのscriptタグで版を指定している場合は、URLの版も3.4.0に変えます。2件とも3.4.0で修正されます。

  3. 3

    保存済みの内容を点検する

    更新前に保存された見出しやリンクに、身に覚えのない内容がないかを確認します。外部の利用者が投稿できる画面は、優先して見ます。

  4. 4

    外部委託先や製品ベンダーに確認する

    自社で組み込んでいなくても、購入した製品や委託先のシステムが内部でSunEditorを使っている場合があります。使用有無と更新時期を問い合わせます。

  5. 5

    2件目の詳細を確認する

    CVE-2026-124494の条件や影響範囲は、GitHubのSunEditorのセキュリティアドバイザリで確認します。

すぐ更新できないとき

すぐに更新できない場合、1件目は、エディターの設定から document:header と document:header,page の指定を外せば、条件から外れます。ただし、設定の変更で防げるのは1件目だけで、2件目は更新が確実です。あわせて、セッションCookieにHttpOnly属性を付けておくと、Cookieの窃取は難しくなります。ただし、閲覧者になりすました操作は防げません。

背景

SunEditorは、npmで配布されているJavaScript製のWYSIWYGエディターです。ブログやお知らせの投稿画面、問い合わせ対応の返信欄、社内ポータルの記事編集など、文字の装飾を使う画面に組み込まれます。ライブラリなので、利用者に見える製品名には出てこないまま、アプリの中に入り込んでいることが多くなります。更新の担当も、製品の管理者ではなく、アプリの開発チームです。

今回の2件は、どちらもサニタイザーを通ったあとに内容が危険な形に戻る点が共通しています。1件目は、無害化済みの見出しの文字列を、文書パネルが再びHTMLとして取り込んでしまうために起きます。2件目は、サニタイザー自身のURL正規化が一部の文字参照を空文字にしてしまい、安全性の検査と、ブラウザーが実際に解釈するリンクの内容がずれるために起きます。「無害化しているから大丈夫」と考えていた自社アプリでも、エディター側を更新しない限り、この問題は残ります。

よくある質問

Q.SunEditorを直接インストールした覚えがなくても、影響を受けますか。
A.ほかのパッケージや製品がSunEditorを内部で使っていると、依存の入れ子として入っていることがあります。npm ls suneditor は、入れ子になった依存も表示します。購入した製品や委託先のシステムは、ベンダーに使用有無を問い合わせます。

この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。

影響パッケージ

パッケージ影響を受ける版 → 修正版
JiHong88suneditor
3.4.0 未満→ 3.4.0
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。

SunEditor before 3.4.0 contains a stored cross-site scripting vulnerability in the DocumentType constructor that injects header textContent into innerHTML without HTML escaping. Attackers can store entity-encoded HTML in h1-h6 headers that executes JavaScript when editors using document:header mode initialize, enabling session cookie theft.

出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory

参照URL

当サイトでは、アクセス解析と広告の効果測定のために Cookie を使います。株式会社Game のサイト共通の設定です。 詳しく