
Markdown Preview Enhancedの脆弱性まとめ。他のMarkdown拡張は安全か
約950万インストールの人気VS Code拡張Markdown Preview Enhancedに、悪意あるMarkdownファイルを開いてプレビューするだけでパソコンを乗っ取られる脆弱性が3件見つかりました。CVE-2026-49492/49493/50733でCVSSは各8.8。図や数式を描く処理が文章をコードとして実行する欠陥で、3件は0.8.28で修正、その後0.8.29・0.8.30でも別の弱点が修正されました。対象バージョンと最新版への更新手順をまとめます。
目次
約950万インストールの人気VS Code拡張Markdown Preview Enhancedに、悪意あるMarkdownファイルを開いてプレビューするだけでパソコンを乗っ取られる脆弱性が3件見つかりました。CVE-2026-49492/49493/50733でCVSSは各8.8。図や数式を描く処理が文章をコードとして実行する欠陥で、3件は0.8.28で修正、その後0.8.29・0.8.30でも別の弱点が修正されました。対象バージョンと最新版への更新手順をまとめます。
プログラマーの多くが使うコードエディタ「Visual Studio Code(VS Code)」向けの人気拡張機能Markdown Preview Enhancedには、悪意あるMarkdownファイルを開いてプレビューするだけでパソコンを乗っ取られかねない脆弱性(情報セキュリティ上の欠陥)が2026年6月に3件まとめて見つかっています。管理番号はCVE-2026-49492・CVE-2026-49493・CVE-2026-50733で、いずれも深刻度を10点満点で表すスコア(CVSS v3.1)は8.8、4段階で上から2番目の「重要(High)」。この3件と、直後に見つかった別の弱点(CVE-2026-11422など)はバージョン0.8.30までにすべて修正済みです。手元の拡張機能が0.8.30以降なら追加の対応は不要、それより古いなら更新が必要です。
あわせて、Markdownまわりでよく使われる他のVS Code拡張についても、脆弱性として登録されているものがあるかを調べました。Markdown PDF(yzane)には2件の登録があり、vscode-pdf・Markdown All in One・Live Server には登録が見当たりません(2026年8月20日時点)。まずその早見表から示します。
Markdown Preview Enhancedは、文章を装飾するための記法「Markdown」をきれいに表示しつつ、図やグラフ、数式までその場で描けるようにする拡張機能で、VS Code向けだけで1,008万インストールに達する定番ツールです。3件はいずれも2026年6月5日に公開されたバージョン0.8.28で修正済みですが、拡張機能の自動更新を切っている人や、しばらく更新していない人は古いまま使っている可能性があります。攻撃に必要なのは、利用者が細工された.mdファイルを開いてプレビューする(または書き出す)ことだけで、ログインやパスワードは要りません。
Markdown系のVS Code拡張、どれに脆弱性があるか
GitHubが公開しているセキュリティ情報のデータベース(GitHub Advisory Database)で「markdown vscode」を引くと11件が出てきます。そのうち7件がMarkdown Preview Enhanced、2件がMarkdown PDFで、残りはJava用とGit用の拡張です。よく一緒に使われる拡張について、登録の有無と現在の版をまとめました。
| 拡張機能 | 登録された脆弱性 | いまの最新版 | どうすればいいか |
|---|---|---|---|
| Markdown Preview Enhanced | 7件 (2022年〜2026年) | 0.8.30 (2026年6月8日) | 0.8.30以降なら 対処は不要 |
| Markdown PDF (yzane) | 2件 (いずれも1.5.0) | 2.2.0 (2026年7月29日) | 2.x へ上げる (後述) |
| vscode-pdf (tomoki1207) | 登録なし | — | 対処は不要 |
| Markdown All in One | 登録なし | — | 対処は不要 |
| Live Server | 登録なし | — | 対処は不要 |
「登録なし」は「調べた範囲で脆弱性として登録された記録が見当たらない」という意味で、「絶対に安全」という意味ではありません。公表されていない問題まで否定できるものではないので、どの拡張も最新版に保っておくのが前提です。

どのバージョンが対象で、どう更新すればいいのか
0.8.28より前のすべてのMarkdown Preview Enhancedが、3件(CVE-2026-49492/49493/50733)の対象です。3件は0.8.28で塞がれましたが、その直後に0.8.29・0.8.30でも別のコード実行の弱点が相次いで修正されました(後述するCVE-2026-11422を含む)。このため、いま更新するなら最新の0.8.30以降にしておくのが安全です。VS Codeの拡張機能のバージョンは、左側の拡張機能アイコンから「Markdown Preview Enhanced」を開けば確認できます。
| 使っているバージョン | 状態 | いますべきこと |
|---|---|---|
| 0.8.30 以降 (最新・推奨) | すべて修正済み | 対処は不要 |
| 0.8.28〜0.8.29 | 今回の3件は修正済み (別の弱点が残る) | 0.8.30以降へ 更新する |
| 0.8.28 より前すべて (0.8.27 以前) | 影響あり (3件すべて) | 0.8.30以降へ 更新する |
| バージョン不明 | 確認が必要 | 拡張機能画面で バージョン確認 |
VS Codeは拡張機能を自動更新する設定が初期状態で有効ですが、社内ポリシーや手動運用で自動更新を切っている環境もあります。拡張機能の一覧で「Markdown Preview Enhanced」に更新ボタンが出ていれば押し、出ていなければ右クリックから更新を確認してください。なお、この拡張機能はかつて別のコード実行の脆弱性(CVE-2025-65716)も報告されており、最新版を保つこと自体が有効な守りになります。
自分が入れている拡張のバージョンを確認する
VS Codeの左端にある拡張機能のアイコン(四角が4つ並んだもの)を開き、拡張機能の名前をクリックすると、名前の下に版番号が出ます。ここが0.8.30以降であれば、この記事で扱う一連の弱点はすべて塞がれています。
配布元のページからも最新版と公開日を確かめられます。Marketplaceの拡張機能ページで「Version History」を開くと、版番号と更新日の一覧が出ます。Markdown Preview Enhancedは0.8.30(2026年6月8日)が最新で、そこから2か月以上あたらしい版が出ていません。つまり0.8.30が現時点での到達点で、それ以上は上げようがない状態です。

拡張機能が勝手に新しくならない設定にしている場合は、古い版のまま止まっていることがあります。VS Codeの設定で拡張機能の自動更新を切っている覚えがあるなら、この機会に一度確認しておくことを勧めます。
何が起きるのか。Markdownを開いて表示するだけでコードが実行される
Markdown Preview Enhancedの売りは、ただ文章を整形するだけでなく、文章の中に書いた図やグラフ、回路のタイミング図、数式などをその場で描画してくれる点です。便利な反面、これらを描くために文章の中身を「データ」ではなく「実行できるコード」として処理してしまう箇所があり、そこが今回の3件の弱点になりました。
攻撃の流れはどれも共通しています。攻撃者は、図や特定の記法を含む細工したMarkdownファイルを用意し、それを利用者に開かせます。利用者がプレビュー(表示)したり、HTMLやPDFに書き出したりした瞬間に、ファイルに仕込まれた命令が利用者のパソコン上で実行されます。NVD(米国の脆弱性データベース)のCVSS内訳でも、ネットワーク越しに(AV:N)、特別な権限なしで(PR:N)成立し、必要なのは利用者がファイルを開く操作だけ(UI:R)で、結果として情報の盗み出し・改ざん・サービス停止のすべてに影響が及ぶ(C:H/I:H/A:H)とされています。
CVE-2026-49492:外部ファイルをシェル経由で開く際のコマンド実行(CWE-78)
1件目は、プレビューから外部のファイルやリンクを開く処理に潜む欠陥です。Markdown Preview Enhancedは、図のファイル名やLaTeX(数式組版ソフト)の設定などをもとに、外部のファイルやリンクをシェル(OSにコマンドを渡す仕組み)経由で開きます。ところがこの入力の検証が不十分で、特にWindows環境では、図のファイル名などに紛れ込ませた命令文がそのままOSのコマンドとして実行されてしまいます。技術的には「OSコマンドインジェクション(CWE-78)」にあたります。
CVE-2026-49493:Bitfield図の処理でコードを実行される(CWE-94)
2件目は、ビット列を図示する「Bitfield」という記法のコードブロックを処理する部分の欠陥です。Markdown Preview Enhancedは、この内容をinterpretJS()という処理に渡し、最終的にvm.runInNewContext()という仕組みでJavaScriptとして評価します。このため、Bitfieldブロックに書かれた内容が信頼できないものであっても、そのままコードとして実行されてしまいます。技術的には「コードインジェクション(CWE-94)」で、修正版では実行ではなくデータとして読み取る方式(JSON5.parse)に置き換えられました。
CVE-2026-50733:WaveDrom図のeval()による任意コード実行
3件目は、回路のタイミング図を描く「WaveDrom」という記法の処理です。Markdown Preview Enhancedは、WaveDromの内容をeval()という、文字列をそのままプログラムとして実行する危険な関数で評価していました。VulnCheckの解説によれば、この欠陥は通常のプレビューだけでなく、プレゼンテーション表示やHTMLへの書き出し、さらにはMarkdown内に直接埋め込んだ<script type="WaveDrom">からも発火し、最終的に任意のコード実行や勝手なファイル書き込みにつながります。修正版では、危険なeval()をやめて厳密なデータ解析(JSON5.parse)に置き換えられました。
なぜMarkdownのプレビューがこれほど狙われるのか
Markdownはもともと、見出しや箇条書きを手軽に書くための単純な記法です。ところがMarkdown Preview Enhancedのような高機能な拡張は、図・グラフ・数式・回路図・スライドまで描けるよう、さまざまな描画エンジンを内側に抱えています。便利さと引き換えに、文章の中身を「実行できるもの」として扱う窓口が増え、そのどれか一つでも入力の検証が甘ければコード実行につながる、という構造的な弱さを持っています。
実際、Markdownのプレビューを起点にしたコード実行は繰り返し見つかっています。同じMarkdown Preview Enhancedでは2026年初頭にもCVE-2025-65716が報告され、Windowsの標準メモ帳にMarkdownのRCE(CVE-2026-20841)が見つかるなど、「Markdownを開くだけ」を突く攻撃面が広く注目されています。セキュリティ各社は、VS Code拡張に潜むこうした欠陥が開発者をRCEや情報持ち出しの危険にさらしていると警告しています。
開発者にとって拡張機能は「便利だから入れたまま」になりがちですが、拡張は本体と同じ権限で動き、扱うのはソースコードや認証情報という価値の高いデータです。オープンソースの部品やツールを取り込むほど攻撃面が広がるという点では、ライブラリの依存関係と同じ目で拡張機能も見直す必要があります。今回のように修正が出たら素早く取り込むことが、いちばん地味で確実な対策です。
Markdown PDF(yzane)の脆弱性はどうなったか
MarkdownをPDFに変換する拡張Markdown PDF(405万インストール)には、2024年8月に2件が登録されています。CVE-2024-7738は本来読めないはずのファイルを読み出せてしまうもの(CVSS 3.3・低)、CVE-2024-7739は変換の過程でスクリプトが混入するもの(CVSS 4.3・中)で、いずれもMarkdown Preview Enhancedの8.8と比べると深刻度は低めです。
大事なのはどちらも当時の1.5.0に対する指摘だということです。1.5.0は2023年9月の版で、その後この拡張は2026年4月に2.0.0へ作り直され、いまの最新は2.2.0(2026年7月29日)です。

開発元はCVE番号に触れた告知を出していませんが、変更履歴を読むと2.1.0(2026年5月24日)で「Markdown本文に書かれた生のHTMLを既定で取り除く」という対策が入り、続く2.2.0では<script>・<style>・<iframe>を中身ごと削除するよう強められています。指摘されたスクリプト混入と同じ種類の入口は塞がれている方向です。
番号との対応が明示されていない以上「この2件が修正済み」と言い切ることはできません。ただ、2023年の版のまま使い続ける理由はないので、2.2.0へ上げたうえで、信頼できないMarkdownをPDFに変換しないという普通の使い方をしていれば心配は要りません。
不安なら何に乗り換えればいいか
「脆弱性が出た拡張はもう使いたくない」と考える人もいます。ただ、乗り換え先にも同じ弱点が生まれうることは知っておいたほうがいいです。図やグラフをその場で描く機能は、文書に書かれた内容を解釈して動かす仕組みなので、どの実装でも同じ種類の穴が生まれ得ます。実際、今回登録が見当たらなかった拡張も「まだ見つかっていない」だけかもしれません。
そのうえで選択肢を挙げると、次のようになります。
- VS Code標準のMarkdownプレビューに戻す。図や数式は描けませんが、拡張を入れない分だけ考えることが減ります。文章を書くだけならこれで足ります
- Markdown All in Oneに絞る。目次や書式の補助が中心で、図の描画のような重い処理を持たないぶん、今回のような穴が生まれる余地が小さい構造です
- Markdown Preview Enhancedを0.8.30で使い続ける。図も数式も要るならこれが現実的です。報告された穴は塞がれており、いまのところ悪用の報告もありません
実務的な結論を書くと、乗り換えより「最新版に保つ」ほうが効きます。今回の3件も、拡張機能の自動更新を切っていなければ、公開から数日で手元が安全な版になっていました。
公開から修正までの流れ
3件は同じ日に修正版とともに公開されました。すでに0.8.28で塞がれていますが、攻撃の仕組み自体は公開アドバイザリで説明されています。
← スワイプで移動
実際に悪用される条件と、いまの危険度はどれくらいか
過度に怖がる必要はありませんが、軽く見るのも危険です。3件とも、発火には利用者が細工されたMarkdownを開いてプレビューする(または書き出す)操作が必要です。何もしていないのに勝手に乗っ取られるタイプではありません。逆に言えば、攻撃者はまず「開かせる」ためのひと工夫を凝らす必要があります。
一方で軽視できないのは、開発者にとって「Markdownを開く」のがあまりに日常的な動作だという点です。GitHubでリポジトリをクローンしてREADMEを開く、送られてきたサンプルや仕様書の.mdを確認する、技術記事の下書きをプレビューする——こうした何気ない操作が引き金になります。Markdown Preview Enhancedはプレビューを自動で開く設定で使っている人も多く、ファイルを開いた瞬間に条件がそろう場面は珍しくありません。
なお、米国の政府機関CISAが「実際に攻撃に使われている脆弱性」をまとめたKEVカタログには、2026年7月23日時点で本3件は登録されておらず、公開から1ヶ月半を経ても広範な悪用は確認されていません。ただし攻撃の仕組みは公開アドバイザリで説明されており、1,008万インストールという母数の大きさを考えると、攻撃者にとって魅力的な標的であることは間違いありません。同じく「ファイルを開くだけ」で発火する7-Zipの脆弱性と同様、悪用が広がる前に塞いでおくのが最も低コストな対応です。
脆弱性への対応・対策:いま何をすればいいのか
やるべき対策は、基本的にMarkdown Preview Enhancedの更新ひとつです。手順は次のとおりです。
- VS Codeの拡張機能アイコンを開き、「Markdown Preview Enhanced」のバージョンを確認する
- バージョンが0.8.30より前なら、更新ボタンを押して最新の0.8.30以降へ更新する(更新ボタンが出ない場合は右クリックから更新を確認)
- 拡張機能の自動更新を切っている場合は、この機会に有効化を検討する
- 更新が終わるまでは、信頼できない相手から届いた
.mdファイルや、見慣れないリポジトリのMarkdownをむやみにプレビューしない - 類似のMarkdownプレビュー拡張やコード実行系の拡張も、あわせて最新版か確認する
特に、外部から受け取ったリポジトリやファイルを日常的に開く立場の人は、優先度を上げて更新してください。今回の攻撃は、細工されたMarkdownをプレビューするだけで成立するため、未更新のまま不特定のファイルを開く運用ほどリスクが高まります。チームでVS Codeを使っている場合は、拡張機能のバージョンを棚卸しして、0.8.30以降への更新を一括で周知するのが確実です。これからこの拡張機能を導入する場合も、インストール直後にバージョンが0.8.30以降になっているかを一度確認しておくと安心です。
よくある質問
Q. 自分のMarkdown Preview Enhancedが対象か、どう確認すればいいですか。
VS Codeの左側にある拡張機能アイコンを開き、「Markdown Preview Enhanced」を選ぶとバージョンが表示されます。0.8.30以降なら、今回の3件を含む一連の弱点がすべて修正済みで、対処は不要です。0.8.29以前は——3件自体は0.8.28で修正済みでも別の弱点が残るため——0.8.30以降へ更新してください。
Q. 自分で書いたMarkdownや、信頼できる相手のファイルを開くだけでも危ないですか。
いいえ。発火するのは、攻撃者がこの欠陥を突くために細工したMarkdownを開いたときだけです。普段自分で書いている文書や、信頼できる相手の文書では起きません。ただし、見た目は普通のMarkdownと区別がつきにくいため、信頼できないリポジトリやファイルは更新前に不用意にプレビューしないのが安全です。
Q. すでに攻撃に使われていますか。
2026年7月23日時点で、米CISAのKEVカタログへの登録はなく、公開から1ヶ月半が経っても実際に悪用されたという報告は確認されていません。ただし攻撃の仕組みは公開アドバイザリで説明されており、インストール数が多いため、古い版を使い続けるのは安全ではありません。
Q. VS Code本体や、他のMarkdown系の拡張も危ないですか。
今回の件はMarkdown Preview Enhancedという特定の拡張の問題で、VS Code標準のMarkdownプレビューの欠陥ではありません。他の拡張については、脆弱性として登録があるのはMarkdown PDF(yzane)の2件だけで、こちらは2023年の1.5.0に対する指摘です。vscode-pdf・Markdown All in One・Live Serverには、2026年8月20日時点で登録が見当たりません。ただし「登録がない」は「絶対に安全」ではないので、どれも最新版に保ってください。
Q. 不安なので別の拡張に乗り換えたほうがいいですか。
図や数式が要らないなら、VS Code標準のプレビューに戻すのが一番単純です。図が要るなら、0.8.30のMarkdown Preview Enhancedを使い続けて問題ありません。報告された穴は塞がれており、悪用の報告も出ていません。図の描画を持つ拡張はどれも同じ種類の弱点を抱えうるため、乗り換えそのものより、自動更新を切らずに最新版を保つほうが効果があります。
Q. 拡張機能に脆弱性が出ていないか、自分で調べる方法はありますか。
GitHub Advisory Databaseの検索窓に拡張機能の名前を入れると、登録されている脆弱性の一覧が出ます。拡張機能の正式名称(Marketplaceのページに出ている名前)か、配布元のID(yzane.markdown-pdf のような形)で引くのが確実です。件数がゼロなら、少なくとも公表・登録された問題は無いということになります。
まとめ
CVE-2026-49492・49493・50733は、1,008万インストールの人気VS Code拡張Markdown Preview Enhancedにある3件の脆弱性です。図や数式を描くために文章の中身をコードとして実行してしまう箇所が突かれ、攻撃者が細工したMarkdownを開いてプレビューするだけで、利用者のパソコンで任意のコードを実行されかねません。ログインや特別な権限は不要で、必要なのは「ファイルを開く」操作だけです。
3件は修正版の0.8.28で塞がれ、その後も0.8.29・0.8.30で別のコード実行の弱点(CVE-2026-11422を含む)が相次いで修正されました。0.8.30の公開後、新しい脆弱性の報告はなく、公開から1ヶ月半が経った2026年7月23日時点でも広範な悪用は確認されていません。VS Codeの拡張機能画面からバージョンを確認し、0.8.29以前なら最新の0.8.30以降へ更新してください。Markdownを開く動作は開発者にとって日常そのものです。使い続ける人もこれから入れる人も、「0.8.30以降か」のひとつだけ確認しておけば、この一連の弱点については心配いりません。
Markdownまわりでよく使う他の拡張については、脆弱性として登録があるのはMarkdown PDF(yzane)の2件だけで、こちらも2023年の1.5.0に対する指摘です。vscode-pdf・Markdown All in One・Live Serverには登録が見当たりません(2026年8月20日時点)。図を描く拡張はどれも同じ種類の弱点を抱えうるので、乗り換えを考えるより、拡張機能の自動更新を切らずに最新版を保つほうが確実です。
更新履歴
- 2026年8月20日:Markdownまわりでよく使われる他のVS Code拡張(Markdown PDF・vscode-pdf・Markdown All in One・Live Server)について脆弱性の登録の有無を調べ、早見表と個別の解説を追加。Markdown PDFに2件の登録(CVE-2024-7738/7739、いずれも1.5.0が対象)があり、2.1.0以降で同種の入口が塞がれていることを変更履歴から確認。乗り換えの選択肢と、拡張機能のバージョンの確かめ方を新設。インストール数を1,008万件に更新(Visual Studio Marketplace・GitHub Advisory Database で確認)
- 2026年7月24日:速報の書き方から、製品名で検索して来た読者向けの解説に書き換え
参照元
- ▸ NVD - CVE-2026-49492
- ▸ NVD - CVE-2026-49493
- ▸ NVD - CVE-2026-50733
- ▸ GitHub Security Advisory - GHSA-j39p-jf99-v5w8(WaveDrom / CVE-2026-50733)
- ▸ VulnCheck - Markdown Preview Enhanced Arbitrary Code Execution via WaveDrom eval
- ▸ Markdown Preview Enhanced 0.8.28 リリースノート
- ▸ Markdown Preview Enhanced CHANGELOG(0.8.29 / 0.8.30 の追加修正)
- ▸ GitHub Security Advisory - GHSA-m48c-hxqg-4j76(WaveDrom経由・CVE-2026-11422)
- ▸ Visual Studio Marketplace - Markdown Preview Enhanced
- ▸ SOCRadar - Severe VS Code Extension CVEs Expose Developers to RCE
- ▸ CWE-94: Improper Control of Generation of Code
- ▸ CWE-78: OS Command Injection
- ▸ GitHub Advisory Database - markdown vscode の検索結果
- ▸ NVD - CVE-2024-7738(Markdown PDF)
- ▸ NVD - CVE-2024-7739(Markdown PDF)
- ▸ Visual Studio Marketplace - Markdown PDF
- ▸ yzane/vscode-markdown-pdf - CHANGELOG(2.1.0 の Security hardening)

堀川 慎
Backend Engineer / AWS / Django / Go