>From a quick glance across the source, ssh rejects attempts to forward privileged
ports for non-root users while parsing the command line arguments - the config file
is read further down in the code, without performing a similar test. The immediate
fix is chmod -s (which will get rid of potential similar holes in ssh as well...) - the
more reasonable method is to move the check into add_local_forward():
--- readconf.c Sun Aug 3 00:55:40 1997
+++ readconf.c.orig Sun Aug 3 00:57:21 1997
@@ -204,11 +204,6 @@
Forward *fwd;
if (options->num_local_forwards >= SSH_MAX_FORWARDS_PER_DIRECTION)
fatal("Too many local forwards (max %d).", SSH_MAX_FORWARDS_PER_DIRECTION);
- if (port < 1024 && original_real_uid != UID_ROOT)
- {
- fatal("Privileged ports can only be forwarded by root.\n");
- exit(1);
- }
fwd = &options->local_forwards[options->num_local_forwards++];
fwd->port = port;
fwd->host = xstrdup(host);
Sevo