From 81c42da8eab8db75b274dfad67c774e1de33b4b7 Mon Sep 17 00:00:00 2001 From: deraadt <> Date: Mon, 5 Aug 1996 00:34:46 +0000 Subject: if port 20 incoming, kill it and try again --- src/lib/libc/net/rcmd.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/lib') diff --git a/src/lib/libc/net/rcmd.c b/src/lib/libc/net/rcmd.c index 643604f3b3..86f35664e4 100644 --- a/src/lib/libc/net/rcmd.c +++ b/src/lib/libc/net/rcmd.c @@ -153,6 +153,7 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p) (void)close(s2); goto bad; } +again: FD_ZERO(&reads); FD_SET(s, &reads); FD_SET(s2, &reads); @@ -170,6 +171,14 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p) goto bad; } s3 = accept(s2, (struct sockaddr *)&from, &len); + /* + * XXX careful for ftp bounce attacks. If discovered, shut them + * down and check for the real auxiliary channel to connect. + */ + if (from.sin_family == AF_INET && from.sin_port == htons(20)) { + close(s3); + goto again; + } (void)close(s2); if (s3 < 0) { (void)fprintf(stderr, -- cgit v1.2.3-55-g6feb