Unicode Directory Traversal

読み:ユニコード・ディレクトリ・トラバーサル
外語:Unicode Directory Traversal 英語
品詞:名詞

UTF-8で冗長な符号化を行なうことでサニタイジングをすり抜け、それによりディレクトリトラバーサルを行なう方法。

目次

MicrosoftWebサーバーIISセキュリティホールとして有名。

かつて猛威を振るったNimdaワームは、この脆弱性を利用して全世界に広まった。なお、IISではMS00-078で、このセキュリティホールは修正されている。

仕様の問題

UTF-8はその仕様上、同じ文字を異なる符号列で表現できてしまう。

例えばASCIIの0x2F('/' スラッシュ)は、「0xC0 0xAF」「0xE0 0x80 0xAF」「0xF0 0x80 0x80 0xAF」でも表現できる。これらはUTF-8において違反であり、これらの符号列は無視されなければならないが、Nimdaワームが登場した当時は、明確な対応が明示されていなかった。

このため、この問題を適切に処理しないまま0x2Fだけをサニタイジングすると、ディレクトリトラバーサルで使われる "../.." のような文字列を通してしまう盲点を生むことになる。

セキュリティホール

外部から読み込まれたUTF-8を、そのまま加工せずに使う、完全なUTF-8処理系の場合、あまり問題になることはないと思われてはいる。

しかし、このUTF-8文字列を別の形式に変換するような場合、問題が生じる可能性がある。

IISについては実装の甘さが露呈したことは疑いようが無いが、現実にはIISに限ったことではない。

UTF-8には、このような仕様上の欠陥があるため、文字列の扱いには注意を払わないと、現在でも、今後も、この手のバグを作りんでしまう可能性が高い。RFC 2279にもこの問題に対して注意を勧告する記述がある。

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club