円記号を含むファイル名がトラバーサルを引き起こす問題について

この問題は整理すると、

  • Unicode では円記号(U+00A5)とバックスラッシュ(U+005C)が個別の文字として定義されている
  • NTFS*1 のファイル名には円記号(U+00A5)を含むことができる
  • 歴史的な理由により、U+00A5の円記号は Unicode 以外の文字コードへの変換にて 0x5C(バックスラッシュ)に変換されることが多い

ということから、ファイル名を Unicode で扱わなかった場合に円記号(U+00A5)が 0x5C のディレクトリ区切り記号に変換されてしまい、結果としてファイル名が相対パスとして扱われてしまうということになります。
この問題自体は、IPA経由で Microsoft へも連絡したのですが、

ご指摘のとおり、"..¥(U+00A5)" を含むファイルパスをアプリケーション内部で処理する方法に問題がある場合、相対パスとして解釈され意図しない動作につながる可能性はあるものと考えられます。しかしながら、この動作はアプリケーション側で正しく Unicode を想定せずに処理を実装したことにより発生する問題であり…
(中略)
…この動作は Unicode に関するアプリケーションのサニタイズまたは入力値検査を不正に回避できる可能性であり、オペレーティングシステムのアクセス制御を回避することはできません。そのため、オペレーティングシステム(Win32 API) 上の脆弱性ではないと考えます

という、Windows 自体の問題ではなく、個々のアプリケーションの問題であるという明確な回答をもらっています。

ちなみに、
http://d.hatena.ne.jp/hideakii/20051108#20051108fn2

そもそもこれって脆弱性ってことになるのか考案者に確認するの忘れてたので余計に深く追求しなかった

デモで実演された、テキストエディタディレクトリトラバーサルしてファイルを開いてしまうというのは、アプリケーションの不具合ではあるかも知れませんが、それ自体が何かの脅威を含むわけではありませんので、脆弱性ではありません。

*1:NTFSに限らず、FAT32 でも長いファイル名には含めることができるかも