Bugtraq mailing list archives
Re: Adobe Acrobat creates world writable ~/AdobeFnt.lst files
From: Darren Moffat <Darren.Moffat () eng sun com>
Date: Wed, 22 Aug 2001 13:34:19 -0700 (PDT)
Adobe Acrobat creates world writable ~/AdobeFnt.lst files...Another possible workaround would be to create a shared object that replaced the open/chmod calls that change the permissions on the file, this could then be LD_PRELOAD'd so that acroread doesn't do the wrong
thing.
Using truss on Solaris we can easily see that acroread actually makes an explicit call to set the permissions to 0666.And what if that call fails?
What call ? Note this code doesn't compile and is intended only as an outline of what could be done. dlsym is how this is done on Solaris but there are equivalent calls in most systems that have dynamic linking. include <sys/types.h> #include <dlfcn.h> #include <stdio.h> #include <stdlib.h> static int fd = -1; int open(const char *path, int oflag, ...) { static int (*fptr)(const char *path, int oflag, ...) = 0; if (fptr == 0) { fptr = dlsym(RTLD_NEXT, "open"); if (fptr == NULL) { (void) printf("dlopen: %s\n", dlerror()); return NULL; } } if (strcmp(path, fntlst) == 0) fd = ((*fptr)(path, oflag)); return (fd); else { return ((*fptr)(path, oflag)); } } int fchmod(int fildes, mode_t mode) { static int (*fptr)(int fildes, mode_t mode) = 0; if (fptr == 0) { fptr = dlsym(RTLD_NEXT, "fchmod"); if (fptr == NULL) { (void) printf("dlopen: %s\n", dlerror()); return NULL; } } if ((fd != -1) && (fildes == fd)) { mode = 0600; } return ((*fptr)(fildes, mode)); } int close(int fildes) { static int (*fptr)(int fildes, mode_t mode) = 0; if (fptr == 0) { fptr = dlsym(RTLD_NEXT, "fchmod"); if (fptr == NULL) { (void) printf("dlopen: %s\n", dlerror()); return NULL; } if (fd == fildes) { fd = -1; } return ((*fptr(fildes)); }
chattr +i will do miracles, I imagine.
The world is not Linux on ext2fs. Also that may break something else, you don't really want AdobeFnt.lst being an imutable file, you just want correct permissions on it. -- Darren J Moffat
Current thread:
- Adobe Acrobat creates world writable ~/AdobeFnt.lst files Michael Paoli (Aug 22)
- <Possible follow-ups>
- Re: Adobe Acrobat creates world writable ~/AdobeFnt.lst files Darren Moffat (Aug 22)
- Re: Adobe Acrobat creates world writable ~/AdobeFnt.lst files wim (Aug 22)
- Re: Adobe Acrobat creates world writable ~/AdobeFnt.lst files Darren Moffat (Aug 22)
- Re: Adobe Acrobat creates world writable ~/AdobeFnt.lst files Scott Howard (Aug 22)
- Re: Adobe Acrobat creates world writable ~/AdobeFnt.lst files Darren Moffat (Aug 23)