The OpenNET Project
 
Search (keywords):  SOFT ARTICLES TIPS & TRICKS SECURITY
LINKS NEWS MAN DOCUMENTATION


[linux-security] Two points


<< Previous INDEX Search src Set bookmark Go to bookmark Next >>
Date: Mon, 1 Jun 1998 01:45:09 -0700 (PDT)
From: samboy@mr.samiam.org
To: linux-security@redhat.com
Subject: [linux-security] Two points


# Your described "multi-DES" is essentially an ECB cypher 

All block ciphers are ECB ciphers unless you use CFB or some other
technique to make them not ECB ciphers.

I fail to see where his cipher would allow for partial-known-plaintext,
nor how it could not be implemented in a CFB manner.

His idea is pretty interesting: He uses Karn's encryption in such a way
to get rid of the obvious problems with the algolrythm, and the varient
is a change in the hashes used with his modified Karn.  

More information here:

	http://www.infoweb.co.cr/tecapro/godsave/

I didn't come to discuss crypto though, but to announce my patch for
libc-5.3.12, the libc on RedHat 4.2 systems.  I lost some of the "why libc
is insecure" discussion, leaving me with only a patch for libc-5.4.44.
Which I was able to apply 1/2 to libc-5.3.12--the other half has changed
too much.

I am wondering if there would be anything wrong with not allowing getenv
calls inside libc itself when and if the program is suid, by replacing
_all_ getenv()s with __libc_secure_getenv.

I have both source and i386 RPMs utilizing the included patch here:

	http://linux.samiam.org/blackdragon/

- Sam

*** libc-5.3.12/libc/nls/msgcat.c.secenv        Sun May 31 20:08:59 1998
--- libc-5.3.12/libc/nls/msgcat.c       Sun May 31 20:12:41 1998
***************
*** 115,120 ****
--- 115,122 ----
  #include <sys/mman.h>
  #endif
  
+ extern char *__libc_secure_getenv(const char *);
+ 
  nl_catd catopen( name, type)
  const char *name;
  int type;
***************
*** 134,146 ****
        if (stat(catpath, &sbuf)) return(NLERR);
      } else {
  #if BROKEN_SETLOCALE
!       if ((lang = (char *) getenv("LANG")) == NULL) lang = "C";
  #else
        /* Query the locale from the previous setlocale call in msgcat-libc.c*/
        if ((lang = (char *) setlocale(LC_MESSAGES,(char *) NULL)) == NULL)
                lang="C";
  #endif
!       if ((nlspath = (char *) getenv("NLSPATH")) == NULL) 
        {
  #if OLD_NLS_PATHS
            nlspath = "/nlslib/%L/%N.cat:/nlslib/%N/%L";
--- 136,148 ----
        if (stat(catpath, &sbuf)) return(NLERR);
      } else {
  #if BROKEN_SETLOCALE
!       if ((lang = (char *) __libc_secure_getenv ("LANG")) == NULL) lang = "C";
  #else
        /* Query the locale from the previous setlocale call in msgcat-libc.c*/
        if ((lang = (char *) setlocale(LC_MESSAGES,(char *) NULL)) == NULL)
                lang="C";
  #endif
!       if ((nlspath = (char *) __libc_secure_getenv ("NLSPATH")) == NULL) 
        {
  #if OLD_NLS_PATHS
            nlspath = "/nlslib/%L/%N.cat:/nlslib/%N/%L";
*** libc-5.3.12/libc/nys/nis/src/nis_names.c.secenv     Sun May 31 20:14:09 1998
--- libc-5.3.12/libc/nys/nis/src/nis_names.c    Sun May 31 20:16:18 1998
***************
*** 29,34 ****
--- 29,35 ----
  #include "nis_conf.h"
  #include "xalloc.h"
  
+ extern char *__libc_secure_getenv(const char *);
  
  nis_name nis_local_directory(void)
  {
***************
*** 101,107 ****
  
  nis_name nis_local_group(void)
  {
!     return getenv("NIS_GROUP");
  }
  
  
--- 102,108 ----
  
  nis_name nis_local_group(void)
  {
!     return __libc_secure_getenv("NIS_GROUP");
  }
  
  
***************
*** 248,254 ****
        return rnames;
      }
  
!     path = getenv("NIS_PATH");
      if (path == NULL)
        path = "$";
      
--- 249,255 ----
        return rnames;
      }
  
!     path = __libc_secure_getenv("NIS_PATH");
      if (path == NULL)
        path = "$";
      

-- 
----------------------------------------------------------------------
Please refer to the information about this list as well as general
information about Linux security at http://www.aoy.com/Linux/Security.
----------------------------------------------------------------------

To unsubscribe:
  mail -s unsubscribe linux-security-request@redhat.com < /dev/null

<< Previous INDEX Search src Set bookmark Go to bookmark Next >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру