グラーツ工科大学の研究者らは、Windows、Linux、macOSのファイル通知システムを利用して、他のアカウントの活動を盗み見できることを示しました。
Windowsでは、特権を持たない一般アカウントが、別のユーザーによるFirefoxでの人気サイトへのアクセスの95.7%を検出しました。しかも、検出されたサイトはすべて、被害者のブラウザが実際に読み込んだものでした。Linuxでは別の弱点により、ローカルのキーボード操作とSSHセッションの双方で、キー入力のタイミングが漏えいしました。
各種プログラムは、ファイルが変更されたときに反応するためにこれらの通知を使っています。たとえば、LaTeXの再コンパイル後にPDFビューアがドキュメントを再描画したり、同期ツールが編集済みファイルを別のマシンにコピーしたりする仕組みです。研究者らが調べたのは、LinuxのinotifyとWindowsのReadDirectoryChangesW、macOSのFSEventsです。いずれも、一般アカウントが読み取り権限を持つ任意のディレクトリを監視対象にできます。攻撃者は、被害者のマシン上で、別の非特権アカウントとしてコードを実行します。論文は侵入経路の一例として、侵害されたLinuxサービスを挙げています。systemdは、こうしたサービスを専用のユーザーで実行することがよくあります。
手法はまず、マッピングから始まります。研究チームは日常的な操作を行いながら、システム上のすべてのファイルイベントを記録しました。そのうえで、各操作に対応してイベントが発生するファイルを絞り込み、テンプレートとして残しています。テンプレートがカバーする操作は、ターミナルコマンド、キーボードとマウスの入力、ブラウジング、印刷、仮想マシンとDockerコンテナ、Bluetooth、ネットワークやVPNの変更、USBデバイスなどです。監視にかかるコストは、測定上、CPU時間の最大0.21%でした。

ファイル通知テンプレート攻撃の2つのフェーズ(テンプレート作成と攻撃)の概要(出典:研究論文)
Windowsはフルパスを開示
研究者らは、Cドライブのルートに監視を設定しました。すると、ドライブ全体でのファイルの作成、変更、名前変更がフルパスつきで通知されました。監視側のアカウントがアクセスできない他ユーザーのホームフォルダ内も、例外ではありませんでした。
ブラウザは、サイトごとのデータを、サイトのアドレスを含む名前のフォルダに保存します。Firefoxは、サイトがローカルストレージ、IndexedDB、キャッシュのいずれかを使うとこのフォルダを作成します。一方、EdgeはほかのChromium系ブラウザと同様、IndexedDBを使う場合にのみ作成します。研究チームは、Windows 11 24H2上で自動化したブラウザを使い、上位1,000サイトを読み込みました。応答があったのは975サイトです。サイト名のフォルダが作成されたのは、Firefoxでは検証したサイトの95.7%、Edgeでは32%でした。監視側はこれらのフォルダをすべて検知し、どちらのブラウザでも誤検出はゼロでした。論文は、Edgeの検出率が低い理由を、IndexedDBを使うサイトの割合が小さいためだと説明しています。
ドライブ全体の監視では、ほかの痕跡も捕捉されました。Prefetchファイルには、起動したプログラムの名前(sshを含む)が残ります。Zoomのデータベースファイルも、ユーザーが待機室に入る、会議に参加する、退出するといった操作ごとに、それぞれ異なる形で変化しました。Windows Defenderのスキャンでは、検査した各ファイルについてイベントが発生し、他ユーザーのドキュメント、動画、ブラウザデータのパスが監視側に渡りました。Defenderは2回目以降のスキャンで未変更のファイルをスキップしているようです。そのため論文は、この漏えいは初回スキャン時に限られるとしています。
Microsoftは研究チームに対し、この挙動は仕様どおりであり、「明らかになるのは他ユーザーのプロファイルディレクトリ内のファイル名とパスのみ」だと回答しました。ブラウザの実験では、ファイル名とパスだけで閲覧履歴を再構築できました。著者らは、Microsoftは判断を見直すべきだと主張しています。
これとは別に、Sébastien Huneault氏が2025年4月、同様の挙動をMicrosoftに報告しています(CVE-2025-27738およびCVE-2025-21197)。グラーツ大学のチームは、論文を提出してからかなり後になって、これらの報告を知ったと述べています。MicrosoftのアップデートKB5058189では、レジストリポリシーのEnforceDirectoryChangeNotificationPermissionCheckが追加されました。論文によると、これでこの挙動を緩和できます。ただし、Microsoftはこのポリシーを無効の状態で出荷しています。著者らは、論文で示したWindowsへの攻撃はすべて、初期設定のままのシステムで成立すると報告しています。
Linuxはキー入力のタイミングが漏えい
Linuxでは、フォルダの読み取り権限を持つアカウントは、そのフォルダ内のすべてのファイルについて通知を受け取ります。開く権限のないファイルも対象です。キーボードのデバイスファイルもその1つで、キーを押すたびに、キーが押された時刻と離された時刻が監視側に伝わります。どのキーかはわかりません。先行研究では、このリズムが入力テキストの再構築に役立つことが示されています。テスト用のノートPCでは、この攻撃は7人の入力者のキー入力をほぼすべて捕捉しました。
同じ手口はSSH経由でも通用しました。テストでは、サーバー上のプロセスが、リモートユーザーが入力した402回のキー入力をすべて捕捉しています。ただし、sudoなどの非表示のパスワードプロンプトに入力された内容は、捕捉できませんでした。
研究チームはさらに、ユーザーのアカウント内ですでに動作しているマルウェアが、KDEデスクトップ上で本物のパスワードウィンドウの上に偽のウィンドウを重ねて表示できることも実証しました。また、Firefoxが読み込むフォントから、人気の100サイトのうちどれを開いているかを推測できることも示しています。
パッチは一部のみ
研究チームは2025年8月から10月にかけて、Linux、Android、Windows、macOSのセキュリティチームに調査結果を報告し、4チームすべてが受理しました。Linuxカーネルの開発者は2026年初頭に部分的な緩和策を公開し、この問題にはCVE-2025-68788が割り当てられました。このパッチは、デバイスファイルについて、読み取れないファイルを経由するルートを塞ぎます。ただし、ファイルシステムのそれ以外の部分は、依然として攻撃にさらされたままです。著者らは、Linuxの監視をファイルの所有権または読み取り権限に紐づけることと、Windowsでドライブ全体の監視を禁止することを提案しています。
その他のプラットフォーム
デスクトップOS3種のうち、漏えいが最も少なかったのはmacOSでした。著者らはその要因として、2点を挙げています。1つは、FSEventsが監視側の読み取り可能なファイルに限って通知すること。もう1つは、Linuxにある読み取りアクセスのイベントがないことです。それでも、macOS Sonoma 14.2.1では、印刷、Bluetoothデバイスの変更、アプリのインストールと削除、さらにポッドキャスト、ボイスメモ、ブックといった特定アプリの起動を観測できました。
Android 16を搭載した2機種(Pixel 9aとGalaxy A54)では、権限をまったく持たないアプリがAndroidのFileObserverを使い、スコープ付きストレージが本来遮断するはずのファイルを観測しました。これにより、ダウンロードファイル、写真、スクリーンショットのほか、WhatsAppの非公開メディアフォルダも露呈しました。アプリは、受信したメディアが届いた時刻を把握し、ファイル名を読み取り、ファイルが削除されたことも確認できました。Androidでは、この手口でアプリの起動が漏えいすることが、先行研究ですでに示されていました。
著者らは、4つのプラットフォームすべてについてコードを公開しています。
翻訳元: https://www.helpnetsecurity.com/2026/09/28/cve-2025-68788-file-notification-attacks/