Niebezpieczna dziura w httpd

Autor: Andrzej Gorbiel (A.Gorbiel_at_Ga-Wyb.Krakow.PL)
Data: Sat 25 Feb 1995 - 18:06:52 MET


Przesylam informacje z najblizszego KiB, ktora moze zainteresowac
niektorych rootow. Chodzi o dosc sliski blad w NCSA httpd (Unix).
Dalej zalaczam fragment biuletynu CERT, w ktorym jest stosowny "patch".
(W biultynie CIAC jest tylko pierwsza jego czesc).

BTW.
Przypominam, ze aktualne info o naszym serwisie mozna otrzymac,
wysylajac __pusty__ list na adres: Redakcja_at_Ga-Wyb.Krakow.PL.
List MUSI zawierac __w polu Subject:__ napis: "send gazeta.faq".

Andrzej

========================================================================

                     Komputery i Biuro nr 09/95
                          28 lutego 1995

               Cotygodniowy dodatek do Gazety Wyborczej

=========================================================

(...)

Dziura w pajeczynie

Program sluzacy do obslugi serwerow WWW -- najpopularniejszego
sposobu prezentacji informacji w sieci Internet okazal sie bledny.
Dziura zostala wykryta dopiero teraz. Internetowym komputerom nalezacym
do uczelni, biznesu i organizacji rzadowych grozi penetracja ze strony
hackerow.

Blad znaleziono w oprogramowaniu serwera WWW, autorstwa NCSA. Jest to
darmowa wersja programu dostarczana wraz z pelnym tekstem zrodlowym.
Wykorzystywana jest glownie przez uczelniane i rzadowe komputery
informacyjne sieci Internet, a takze przez czesc firm prywatnych.

Usterka dotyczy wylacznie wersji na system Unix. Jest dosc subtelna.
Serwer nie sprawdza dlugosci polecenia, ktore wysyla laczacy sie z nim
uzytkownik sieci. Jesli polecenie nie miesci sie w buforze, powoduje
zamazanie informacji na tzw. stosie programu (czesc pamieci
przechowujaca robocze dane).

Zwykle grozi to zaburzeniem dzialania programu, jednak umiejetnie
wykorzystana dziura pozwala potencjalnemu wlamywaczowi przejac kontrole
nad komputerem.

Informacje o bledzie podal we wtorek Wall Street Journal. Potwierdzily
ja zarowno CIAC, jak i CERT -- dwie amerykanskie organizacje zajmujace
sie bezpieczenstwem systemow komputerowych. W ich biuletynach
administratorzy moga przeczytac, w jaki sposob uniknac ryzyka wlamania,
poki blad nie doczeka sie oficjalnej poprawki ze strony NCSA.

W 1988 blizniaczy blad w programie finger (podajacym podstawowa
informacje o uzytkowniku komputera) zostal wykorzystany w slynnym
Internet Worm (Robak Internetu). Samoreplikujacy sie ``robak'',
uwolniony przez autora -- Roberta Morrisa, studenta Cornel University, w
ciagu kilkudziesieciu godzin calkowicie sparalizowal siec w USA.
``Infekcja'' objela wtedy lacznie 6000 komputerow, a straty wyniosly 96
milionow dolarow.

Dopiero od tego zdarzenia sprawa bezpieczenstwa Internetu na powaznie
zainteresowaly sie agencje rzadowe. Aby w przyszlosci zapobiec podobnym
incydentom, powstala wtedy CERT (Computer Emergency Response Team).

Andrzej GORBIEL

=============================================================================
CA-95:04 CERT Advisory
                               February 17, 1995
                     NCSA HTTP Daemon for UNIX Vulnerability
-----------------------------------------------------------------------------

The CERT Coordination Center has received reports that there is a
vulnerability in the NCSA HTTP Daemon V.1.3 for UNIX. Because of this
vulnerability, the daemon can be tricked into executing shell commands.

If you have any questions regarding this vulnerability, please send
e-mail to Beth Frank at the NCSA, efrank_at_ncsa.uiuc.edu.

-----------------------------------------------------------------------------

I. Description

     A vulnerability in the NCSA HTTP Daemon allows it to be tricked into
     executing shell commands.

II. Impact

     Remote users may gain unauthorized access to the account (uid) under
     which the httpd process is running.

III. Solution

     The following solution was provided by the HTTPD Team at SDG at
     NCSA.

     Step 1:

       In the file httpd.h, change the string length definitions
       from:
                /* The default string lengths */
                #define MAX_STRING_LEN 256
                #define HUGE_STRING_LEN 8192
        to:
                /* The default string lengths */
                #define HUGE_STRING_LEN 8192
                #define MAX_STRING_LEN HUGE_STRING_LEN

     Step 2:

        Install the following patch, which performs the functionality of
        strsubfirst (i.e., copy src followed by dest[start] into dest) without
        the use of a temporary buffer.

----------------------------------cut here-------------------------------------

*** util.c.bak Sat May 7 21:47:15 1994
--- util.c Thu Feb 16 04:17:07 1995
***************
*** 158,168 ****

  void strsubfirst(int start,char *dest, char *src)
  {
! char tmp[MAX_STRING_LEN];

! strcpy(tmp,&dest[start]);
! strcpy(dest,src);
! strcpy(&dest[strlen(src)],tmp);
  }

  /*
--- 158,174 ----

  void strsubfirst(int start,char *dest, char *src)
  {
! int src_len, dest_len, i;

! if ((src_len=strlen(src))<start){ /** src "fits" in dest **/
! for (i=0;dest[i]=src[i];i++);
! for (i=src_len;dest[i]=dest[i-src_len+start];i++);
! }
! else { /** src doesn't fit in dest **/
! for (dest_len=strlen(dest),i=dest_len+src_len-start;i>=src_len;i--)
! dest[i] = dest[i-src_len+start];
! for (i=0;i<src_len;i++) dest[i]=src[i];
! }
  }

  /*

---------------------------------cut here-------------------------------------

After you apply this patch, recompile httpd, kill the current running process,
and restart the new httpd.

---------------------------------------------------------------------------
The CERT Coordination Center thanks Steve Weeber, Carlos Varela, and
Beth Frank for their support in responding to this problem.
---------------------------------------------------------------------------

(...)

-- ,
Andrzej Gorbiel <A.Gorbiel_at_Ga-Wyb.Krakow.PL>
Gazeta Wyb*rcza Oddz. Katowice, (++48-32)512-130 ext.225, fax (++48-32)512-472



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 15:49:55 MET DST