SunEditorに脆弱性2件、3.4.0で修正版あり
WebエディターのSunEditorに、保存された内容から閲覧者のブラウザーでスクリプトが実行される脆弱性が2件公表されました。自社サイトや社内システムに3.4.0未満が入っていないか確認し、3.4.0へ更新してください。
同じ発表の脆弱性 2 件
この記事でまとめた分です。発表元の告知には、ほかの脆弱性も載っていることがあります。
- CVE-2026-124493 重大 9.3
- CVE-2026-124494 重大 9.3
急ぎ度: 早めに
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プロジェクトのpackage.jsonとロックファイルで、suneditorの版が3.4.0未満でないかを確認します。ほかのパッケージ経由で入っている場合もあるので、依存の入れ子も調べます。
- 2HTMLにCDNのscriptタグを直接書いている場合は、URLに含まれる版を確認します。
- 31件目は、エディターの設定に
type: 'document:header'またはtype: 'document:header,page'を使っている場合の問題です。既定の設定ではないので、ソースコードで該当の指定があるかを検索します。 - 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
細工した内容を保存
攻撃者が、見出しやリンクに細工した内容をエディター経由で保存させます。
-
2
無害化をすり抜ける
1件目は表示パネルの組み立て、2件目はURLの正規化の不備により、保存内容が無害化されないまま残ります。
-
3
閲覧者が表示・操作
1件目は編集画面の読み込み時、2件目は保存されたリンクのクリック時にスクリプトが動きます。
-
4
ブラウザーで実行
閲覧者のブラウザー上で、攻撃者のスクリプトが閲覧者の権限で動作します。
-
5
情報窃取・操作
セッションCookieの窃取や、閲覧者になりすました操作につながります。
どう悪用されるか
どちらも、細工した内容がエディター経由で保存され、それを別の利用者が表示することで成立します。CVSS v4の評価では、ネットワーク越しに攻撃でき、攻撃条件は低く、事前の権限は不要とされています。
条件はCVE-2026-124493とCVE-2026-124494で異なります。1件目は、エディターを document:header 系の設定で初期化している場合に限られます。閲覧者が画面を読み込むだけで自動的にスクリプトが動き、追加の操作は要りません。2件目は、保存されたリンクを閲覧者がクリックしたときに動きます。
悪用されると、閲覧者のブラウザー上で攻撃者のスクリプトが動きます。1件目の勧告には、セッションCookieの窃取と、閲覧者になりすました操作が挙げられています。管理者が内容を確認する画面でエディターが動く場合は、管理者のセッションが狙われる点にも注意が必要です。
今すぐやること
-
1
SunEditorの利用箇所を洗い出す
自社開発のWebアプリ、社内ポータル、CMS、外部委託で作ったシステムを対象に、依存関係とCDN参照を調べます。入れ子の依存も含めて版を確認します。
npm ls suneditor -
2
3.4.0へ更新して再デプロイする
package.jsonの指定とロックファイルを3.4.0に更新し、ビルドして本番へ反映します。CDNのscriptタグで版を指定している場合は、URLの版も3.4.0に変えます。2件とも3.4.0で修正されます。
-
3
保存済みの内容を点検する
更新前に保存された見出しやリンクに、身に覚えのない内容がないかを確認します。外部の利用者が投稿できる画面は、優先して見ます。
-
4
外部委託先や製品ベンダーに確認する
自社で組み込んでいなくても、購入した製品や委託先のシステムが内部でSunEditorを使っている場合があります。使用有無と更新時期を問い合わせます。
-
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を直接インストールした覚えがなくても、影響を受けますか。
npm ls suneditor は、入れ子になった依存も表示します。購入した製品や委託先のシステムは、ベンダーに使用有無を問い合わせます。この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
影響パッケージ
| パッケージ | 影響を受ける版 → 修正版 | |
|---|---|---|
| JiHong88suneditor |
3.4.0 未満→ 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
- advisory github.com
- advisory vulncheck.com
- advisory nvd.nist.gov
- advisory github.com
- web github.com