A flaw in tnftp exists where it fails to properly validate file names provided by the server. Successful exploitation allows overwriting local files, but requires that a user connects to a malicious ftp server and downloads files.
dff05585de9e9d4b5e8f328f1cf7e188ee8c4a393bf6e1515fd472aea30727e7
From djb@cr.yp.to Wed Dec 15 14:22:51 2004
Date: 15 Dec 2004 08:28:52 -0000
From: D. J. Bernstein <djb@cr.yp.to>
To: securesoftware@list.cr.yp.to, lukem@netbsd.org
Subject: [remote] [control] tnftp 20030825 does not check for directory
escapes
Yosef Klein, a student in my Fall 2004 UNIX Security Holes course, has
discovered a remotely exploitable security hole in tnftp, an FTP client,
version 20030825 (current at least in FreeBSD ports). I'm publishing
this notice, but all the discovery credits should be assigned to Klein.
You are at risk if you use tnftp to download a batch of files from an
FTP server. Anyone who provides an FTP response to tnftp (not
necessarily the legitimate server administrator; an attacker can modify
FTP responses passing through the network) then has complete control
over your account: he can read and modify your files, watch the programs
you're running, etc.
The bug is triggered by the server sending a file name with slashes,
such as /home/you/.cshrc. The mget() function in cmds.c blindly uses the
server's file name (cp) as a local file name (tp passed to recvrequest);
users normally expect file-transfer programs to check for escapes from
the current directory.
---D. J. Bernstein, Associate Professor, Department of Mathematics,
Statistics, and Computer Science, University of Illinois at Chicago