関連するソリューション
セキュリティサービス
セキュリティ製品
サイバー・セキュリティ・ソリューション部
テクニカルスペシャリスト
ボル カーステン
Windowsのメモ帳は非常にシンプルなアプリで、脆弱性があるとは思わない方が多いでしょう。どのようにしてメモ帳を利用して任意のコードを実行できるのか、不思議に思うかもしれません。Windows 11のメモ帳の脆弱性により、Markdownリンクを介してファイルが静かに実行される可能性があります。
この脆弱性の識別子は「CVE-2026-20841」です。
参考URL:https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-20841
Markdownについては後ほど説明します。メモ帳を利用して任意コードを実行させるという考え自体は面白いかもしれませんが、脆弱性自体は非常に単純です。ネット上の掲示板でこの脆弱性について出回っているFUD(恐怖、不確実性、疑念)について掘り下げたいと思います。この脆弱性は実在しますが、成立にはユーザー操作が必要であり、直ちに深刻な被害へ直結する性質のものではありません。
むしろ注目すべきは、こうした問題が生じた背景です。
アプリの機能肥大化とその影響
次に、特にWindowsのシンプルなアプリで直面している機能の肥大化の問題を強調したいと思います。今回の原因は、新しい機能をメモ帳に追加したことです。また、ゼロトラストについても少し触れたいと思います。これは、このコラムで提示するゼロトラストの問題を理解する上で非常に重要です。
脆弱性の修正とその背景
Microsoftは、Windows 11のメモ帳におけるリモートコード実行の脆弱性を修正しました。この脆弱性により、攻撃者は被害者に特定のMarkdownリンクをクリックさせることで、ローカルまたはリモートのプログラムを実行させることが可能でした。その際、Windowsのセキュリティ警告は表示されませんでした。これは事実です。後ほど簡単なPOC「概念実証」を紹介します。
長い間、メモ帳は非常にシンプルなアプリでした。テキストを入力するだけのものでしたが、最近Windowsが長年提供していたリッチテキストフォーマットエディタであるWordpadが削除されました。それに伴い、メモ帳に新機能を追加し、異なるテキストエディタタイプをレンダリングまたは編集できるようにする必要がありました。Markdownがその一例です。
Markdownの利便性とリスク
Markdownは、フォーマットされたテキストをプレーンテキスト形式で表現できる非常に便利な形式です。基本的に、レンダリングされていないバージョンにて、「# Heading level 1」を書くことで、それが大きいことを示します。レンダリングすると、これが表示されます。
例:
Wordのようなファイルサイズではなく、Wordのようなファイルを作成することができる非常に便利な形式です。しかし、外部リソースをファイル内に含めることの問題は、例えばリンクや画像など安全性が確認されていない場所に向かうと、より深刻な問題を引き起こす可能性があるということです。

セキュリティの観点からの考察
この脆弱性の簡単なPOCを紹介します。Markdownでシステム上のファイルへのハイパーリンクを作成する際に、file://と[]を使用する方法について説明します。
Markdownでは、リンクを作成するために以下の構文を使用します。
[リンクテキスト](URL)
この構文を使って、システム上のファイルへのリンクを作成することができます。具体的には、file://プロトコルを使用してファイルのパスを指定します。
例:Markdown形式のレンダリング前

Markdown形式のレンダリング後
ここで、[POC_脆弱性]はリンクテキストで、クリックすると指定したファイルパスにアクセスします。
「file:///C:/windows/system32/cmd.exe」はリンク先のURLで、file://プロトコルを使用してローカルファイルを指定しています。
「Ctrl」キーを押しながら、「POC_脆弱性」をクリックするとリンクを踏むことができます。なお、脆弱性修正後は以下のように警告ポップアップが表示されます。

現在、ローカルのcmd.exeを実行するだけだと思うかもしれませんが、例えば、ネットワークプロトコル(SMBなど)を使用してネットワーク経由でこれらのファイルをダウンロードし、実行することができます。ユーザーを説得してクリックさせることができれば、好きなファイルを実行させることができます。脆弱性修正前にはリンクが安全でない可能性があるというポップアップが表示されませんでしたが、ユーザーからのクリックは必要となっています。
セキュリティ警告が表示されることを強調したいです。脆弱性にはセキュリティ警告がないとされていましたが、実際に、Microsoftや信頼できる発行者によって署名されていないファイルを実行しようとしているので、このセキュリティ警告が表示されます。
署名されていないファイルの例

Microsoftや信頼できる発行者によって署名されていないファイルを実行した場合、実際のセキュリティ警告

最終的にはファイルを実行できます。これはバッチファイルですが、EXEやPythonなどでも実行可能です。この脆弱性は実際に存在しましたが、この脆弱性は、人々が思っているほどすごくないと考えています。RCE(リモートコード実行)を得るには、ユーザーにファイルをダウンロードさせるだけでなく、それをメモ帳でMarkdownとして開き、表示されたリンクをCtrlクリックして実行させる必要があります。再度言いますが、この警告は脆弱性修正前には存在しませんでした。

しかし、こちらはまだ表示されていました。完全に何もなかったというわけではありませんでした。ある程度の警告がありました。
ゼロトラストの重要性
ゼロトラストエンドポイント保護プラットフォームは、ハッカーによるネットワークへの侵入を防ぐために設計されています。例えば、会社Aの端末でユーザーが疑わしいPowerShellスクリプトをダウンロードして実行しようとしている場合、ゼロトラストソフトウェアはこのスクリプトの実行を検出してブロックします。SOCの担当者はアラートを受け取り、アクセスを拒否するか、ゼロトラストリングフェンシング技術を使用してスクリプトを実行し、ユーザーのファイルやインターネットアクセスを拒否することができます。プロセスごとにアクセス可能な範囲を境界(リング)で制限することが可能です。
機能追加の影響と今後の課題
現在のメモ帳の状態に関する問題は、エンジニアなどを責めるものではありません。これは非常に一般的なミスです。このような問題に対抗する方法の一つは、リングフェンシングゼロトラスト技術を使用して、メモ帳プロセスがインターネットにアクセスしないようにすることです。しかし、これも機能の肥大化と関連していますが、Windows 11からCopilotの機能がメモ帳に追加されました。これにより、メモ帳がインターネットへアクセスする設計が前提となっています。機能の肥大化により、プロセスが持つべき権限が不明確になっています。
結論
新しい機能などを追加することで、これらのツールに与える権限を制限することが難しくなっています。本来、シンプルなアプリもインターネットなどへのアクセスを与えるべきなのか、判断が難しくなっていますので、与える権限の範囲を制限するのが非常に困難です。本来シンプルなメモ帳アプリでも、現在はインターネットへのアクセスが前提となっています。本稿で強調したいのは、これまで安全だと考えられてきた従来型アプリにも、生成AIなどの新機能が追加されているということです。それによりまた新しい脆弱性が発生する可能性があります。シンプルなアプリでもしっかり監視しましょう。これまで攻撃対象みなされていなかったアプリも、今後は標的となる可能性があります。
当サイトの内容、テキスト、画像等の転載・転記・使用する場合は問い合わせよりご連絡下さい。
エンジニアによるコラムやIDグループからのお知らせなどを
メルマガでお届けしています。
