Date: Mon, 1 Jun 1998 01:45:09 -0700 (PDT)
From: [email protected]
To: [email protected]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 [email protected] < /dev/null