(fwd) dziurawe openssh

Arek areq w topnet.pl
Sob, 15 Wrz 2001, 23:12:57 CEST



On Sat, 15 Sep 2001 15:25:33 +0200, in pl.comp.os.freebsd "Przemyslaw
Frasunek" <venglin w freebsd.lublin.pl> wrote:

znalazłem przed chwilą dziurę w freebsdowym openssh, można czytać
dowolne
pliki w systemie. rzecz jasna, nie podam na to recepty. poniżej
tymczasowy
workaround. security officer został powiadomiony, więc będzie advisory
niedługo.

--- crypto/openssh/session.c.old Sat Sep 15 15:16:53 2001
+++ crypto/openssh/session.c Sat Sep 15 15:08:56 2001
@@ -798,18 +798,10 @@
  }

 #ifdef HAVE_LOGIN_CAP
- if (newcommand == NULL && !quiet_login && !options.use_login) {
-  fname = login_getcapstr(lc, "copyright", NULL, NULL);
-  if (fname != NULL && (f = fopen(fname, "r")) != NULL) {
-   while (fgets(buf, sizeof(buf), f) != NULL)
-    fputs(buf, stdout);
-    fclose(f);
-  } else
    (void)printf("%s\n\t%s %s\n",
   "Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994",
   "The Regents of the University of California. ",
   "All rights reserved.");
- }
 #endif /* HAVE_LOGIN_CAP */

  /*
@@ -820,12 +812,7 @@
   */
  if (newcommand == NULL && options.print_motd && !quiet_login &&
      !options.use_login) {
-#ifdef HAVE_LOGIN_CAP
-  f = fopen(login_getcapstr(lc, "welcome", "/etc/motd",
-      "/etc/motd"), "r");
-#else /* !HAVE_LOGIN_CAP */
   f = fopen("/etc/motd", "r");
-#endif /* HAVE_LOGIN_CAP */
   if (f) {
    while (fgets(buf, sizeof(buf), f))
     fputs(buf, stdout);



--
* Fido: 2:480/124 ** WWW: http://www.frasunek.com/ ** NIC-HDL:
PMF9-RIPE *
* Inet: przemyslaw w frasunek.com ** PGP:
D48684904685DF43EA93AFA13BE170BF *



Więcej informacji o liście dyskusyjnej pld-devel-pl