Date: Wed, 25 Nov 1998 00:54:18 +0400 From: Casper <casper@acc.am> To: "freebsd-isp@FreeBSD.ORG" <freebsd-isp@FreeBSD.ORG>, "freebsd-security@FreeBSD.ORG" <freebsd-security@FreeBSD.ORG> Subject: Again about logical bug in SSH2.0 & FBSD - patch Message-ID: <365B1CFA.52F840DF@acc.am>
next in thread | raw e-mail | index | archive | help
Below is a small patch made by me. It working about one week on my home
FreeBSD 3.0 - SNAP 16.08.98 /*- really old for developer! :)-*/machine ,
and i have no problems ...
I'll try to patch sftpd as soon as possible ....
Feel free to write all messages and suggessions to nightmar@acc.am
In ssh distribution ./apps/ssh/sshchsession.c
look for lines like this ( beginning on /*line 695 of 1786 (38%),
character 21335 of 59636 (35%) */ in version 2.0.10) and apply the patch
provided :
[--cut--]
[-- original code --]
/* Get the user's shell, and the last component of it. */
shell = ssh_user_shell(session->common->user_data);
shell_no_path = strrchr(shell, '/');
if (shell_no_path)
shell_no_path++;
else
shell_no_path = shell;
/* Start the command. */
switch (op)
{
case SSH_SESSION_SHELL:
[-- end original code --]
[-- comment these lines -]
/* Start the shell. Set initial character to '-'. */
/* buf[0] = '-';
strncpy(buf + 1, shell_no_path, sizeof(buf) - 1);
buf[sizeof(buf) - 1] = 0;*/
/* Execute the shell. */
/* argv[0] = buf;
argv[1] = NULL;*/
/* print motd, if "PrintMotd yes" and it exists */
/* if(session->common->config->print_motd)
{
f = fopen("/etc/motd", "r");
if (f)
{
while (fgets(linebuf, sizeof(linebuf), f))
fputs(linebuf, stdout);
fclose(f);
}
}*/
/* execve(shell, argv, env); */
[-- end comment these lines -]
[-- insert these lines --]
argv[0] = "/usr/bin/login";
argv[1] = "-f";
argv[2] = session->common->user; /*-i didn't check the code that
generates this string and /usr/bin/login source, so potential
buffer -overrun in login ... i hope that i'm wrong :) ... -*/
argv[3] = NULL;
execve("/usr/bin/login", argv, env);
[-- end insert these lines --]
/* Executing the shell failed. */
perror(shell);
exit(254);
[--cut--]
See ya !
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-isp" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?365B1CFA.52F840DF>
