vuln.sg  

vuln.sg Vulnerability Research Advisory

BitKinex の FTP/WebDAV クライアントにおけるディレクトリトラバーサルの脆弱性

by Tan Chew Keong タン チュー ケオン
Release Date: 2008-06-04

   [en] [jp]

概要

BitKinex の FTP/WebDAV クライアントには、ディレクトリトラバーサルの脆弱性が存在します。悪意のある人は、この脆弱性を利用し FTP/WebDAV クライアントの作業ディレクトリを越えたディレクトリにファイルを転送する事ができます。


問題を確認したバージョン
問題

BitKinex の FTP/WebDAV クライアントには、ディレクトリトラバーサルの脆弱性が存在します。悪意のある人は、この脆弱性を利用し FTP/WebDAV クライアントの作業ディレクトリを越えたディレクトリにファイルを転送する事ができます。

BitKinex の FTP クライアントは、MLSD/LIST コマンドに対するレスポンスを適切に検査しないから、ディレクトリトラバーサルの脆弱性が存在します。そのうえ、BitKinex の WebDAV クライアントは、PROPFIND コマンドに対するレスポンスを適切に検査しないから、ディレクトリトラバーサルの脆弱性も存在します。

ユーザーが、FTP/WebDAV サーバーから悪意のあるディレクトリをダウンロードしたら、攻撃者にユーザーの権限で FTP/WebDAV クライアントの作業ディレクトリを越えたディレクトリに任意のファイルを作成される可能性があります。


脆弱性のテスト

脆弱性のテストのためのファイルは こちらです。テストの方法は下記です。


Instructions for testing FTP client:

  1. Unzip the POC file into a directory. This gives BitKinexFTPPOC.exe and BitKinexWebDAVPOC.exe.
  2. BitKinexFTPPOC.exe is a POC FTP server that will send filenames with directory traversal characters in response to LIST commands.
  3. Go to the command prompt and run BitKinexFTPPOC.exe on a system. It will listen on FTP Port 21.
  4. Ensure that BitKinex is configured to use Passive mode.
  5. Use BitKinex to connect to the POC FTP server. You can use any username/password.
  6. You'll see a directory named /testdir on the POC FTP server (see below).
  7. If you traverse into that directory you'll see a file (testfile.txt) with directory traversal characters in its filename (see below).
  8. Now, if you attempt to download the /testdir directory into C:\aaaa\bbbb\cccc\etc, you'll notice that testfile.txt will be written into C:\ instead of into C:\aaaa\bbbb\cccc\etc\testdir\testfile.txt.

Hence, by tricking a user to download a directory from a malicious FTP server, an attacker can potentially leverage this issue to write files into a user's Startup folder and execute arbitrary code when the user logs on.


Instructions for testing WebDAV client:

  1. BitKinexWebDAVPOC.exe is a POC WebDAV server that will send filenames with directory traversal characters in response to PROPFIND commands.
  2. Go to the command prompt and run BitKinexWebDAVPOC.exe on a system. It will listen on Port 80.
  3. Using BitKinex's WebDAV client, connect to port 80 of the POC WebDAV server. Use any username and password.
  4. You'll see a directory named /testdir on the POC WebDAV server.
  5. Follow the same instructions as above to confirm the directory traversal vulnerability.
 


対策

悪意のある FTP/WebDAV サーバーからディレクトリをダウンロードしないで下さい。


発見と報告の経緯

2008年05月13日 - 脆弱性の発見。
2008年05月13日 - ベンダーに報告しました。
2008年05月14日 - ベンダーから答えを受け取りました。
2008年05月19日 - ベンダーにメールしました。
2008年05月19日 - ベンダーによると、この脆弱性はバージョン 3.0 に修正します。
2008年06月04日 - 本脆弱性の公開。


Contact
For further enquries, comments, suggestions or bug reports, simply email them to