n-a mers la mine 4.4-STABLE si 4.5-STABLE
On Tue, 23 Apr 2002, Catalin Macsim wrote: > > ----------------------------------------------------------------------------- > Pine Internet Security Advisory > > ----------------------------------------------------------------------------- > Advisory ID : PINE-CERT-20020401 > Authors : Joost Pol <[EMAIL PROTECTED]> > Issue date : 2002-04-22 > Application : Multiple > Version(s) : Multiple > Platforms : FreeBSD confirmed, maybe others. > Vendor informed : 20020406 > Availability : http://www.pine.nl/advisories/pine-cert-20020401.txt > > ----------------------------------------------------------------------------- > > Synopsis > > It is possible for a local user to execute a suid application with > stdin, stdout or stderr closed. > > Impact > > HIGH. Local users should be able to gain root privileges. > > Description > > Consider the following (imaginary) suid application: > > -- begin of imaginary code snippet > > FILE * f = fopen("/etc/root_owned_file", "r+"); > > if(f) { > > fprintf(stderr, "%s: fopen() succeeded\n", > argv[0]); > > fclose(f); > } > > -- end of imaginary code snippet > > Now, consider the following (imaginary) exploit: > > -- begin of imaginary exploit snippet > > while(dup(1) != -1); > > close(2); > > execl("/path/to/suid_application", > "this text will endup in the root_owned_file", 0); > > -- end of imaginary exploit snippet > > Exploitation has been confirmed using the S/KEY binaries. > > Solution > FreeBSD source trees have been updated on the 21th of april 2002. > Please cvsup > > > ______________________ > > ============================================================================= > FreeBSD-SA-02:23.stdio Security > Advisory > The FreeBSD > Project > > Topic: insecure handling of stdio file descriptors > > Category: core > Module: kernel > Announced: 2002-04-22 > Credits: Joost Pol <[EMAIL PROTECTED]> > Affects: All releases of FreeBSD up to and including 4.5-RELEASE > 4.5-STABLE prior to the correction date > Corrected: 2002-04-21 13:06:45 UTC (RELENG_4) > 2002-04-21 13:08:57 UTC (RELENG_4_5) > 2002-04-21 13:10:51 UTC (RELENG_4_4) > FreeBSD only: NO > > I. Background > > By convention, POSIX systems associate file descriptors 0, 1, and 2 > with standard input, standard output, and standard error, > respectively. Almost all applications give these stdio file > descriptors special significance, such as writing error messages to > standard error (file descriptor 2). > > In new processes, all file descriptors are duplicated from the parent > process. Unless these descriptors are marked close-on-exec, they > retain their state during an exec. > > All POSIX systems assign file descriptors in sequential order, > starting with the lowest unused file descriptor. For example, if a > newly exec'd process has file descriptors 0 and 1 open, but file > descriptor 2 closed, and then opens a file, the new file descriptor is > guaranteed to be 2 (standard error). > > II. Problem Description > > Some programs are set-user-id or set-group-id, and therefore run with > increased privileges. If such a program is started with some of the > stdio file descriptors closed, the program may open a file and > inadvertently associate it with standard input, standard output, or > standard error. The program may then read data from or write data to > the file inappropriately. If the file is one that the user would > normally not have privileges to open, this may result in an > opportunity for privilege escalation. > > III. Impact > > Local users may gain superuser privileges. It is known that the > `keyinit' set-user-id program is exploitable using this method. There > may be other programs that are exploitable. > > IV. Workaround > > None. The set-user-id bit may be removed from `keyinit' using the > following command, but note that there may be other programs that can > be exploited. > > # chmod 0555 /usr/bin/keyinit > > V. Solution > > 1) Upgrade your vulnerable system to 4.5-STABLE; or to either of the > RELENG_4_5 (4.5-RELEASE-p4) or RELENG_4_4 (4.4-RELEASE-p11) security > branches dated after the respective correction dates. > > 2) To patch your present system: > > a) Download the relevant patch from the location below, and verify the > detached PGP signature using your PGP utility. > > # fetch > ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:23/stdio.patch > # fetch > ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:23/stdio.patch.asc > > b) Execute the following commands as root: > > # cd /usr/src > # patch < /path/to/patch > > c) Recompile your kernel as described in > http://www.freebsd.org/handbook/kernelconfig.html and reboot the > system. > > VI. Correction details > > The following list contains the revision numbers of each file that was > corrected in FreeBSD. > > Path Revision > Branch > - > ------------------------------------------------------------------------- > sys/sys/filedesc.h > RELENG_4 1.19.2.4 > RELENG_4_5 1.19.2.3.6.1 > RELENG_4_4 1.19.2.3.4.1 > sys/kern/kern_exec.c > RELENG_4 1.107.2.14 > RELENG_4_5 1.107.2.13.2.1 > RELENG_4_4 1.107.2.8.2.2 > sys/kern/kern_descrip.c > RELENG_4 1.81.2.11 > RELENG_4_5 1.81.2.9.2.1 > RELENG_4_4 1.81.2.8.2.1 > sys/conf/newvers.sh > RELENG_4_5 1.44.2.20.2.5 > RELENG_4_4 1.44.2.17.2.10 > - > ------------------------------------------------------------------------- > > VII. References > > PINE-CERT-20020401 > <URL:http://www.pine.nl/advisories/pine-cert-20020401.txt> > > > -------------------------------------- > Catalin Macsim Phone: 092-756838 > Network Coordonator - Nordnet Botosani > Network Administrator - Petar Software > > __________________________________________________________ > Send 'unsubscribe rofug' to [EMAIL PROTECTED] to unsubscribe > -- Alexandru Balan Technical Support __________________________________________________________ Send 'unsubscribe rofug' to [EMAIL PROTECTED] to unsubscribe

