Biuletyn Bezpieczeństwa PLOUG od 2003-02-07 do 2003-04-10

Wojciech Dworakowski
wojtekd@securing.pl

W omawianym okresie wykryto stosunkowo poważne zagrożenia
związane zarówno z Oracle Database Server jak i Oracle Application Server. Większość
zagrożeń wiąże się z atakami typu buffer overflow.

Warto również zwrócić baczną uwagę na błąd w
standardowej konfiguracji Oracle 9iAS (moduł WebDAV).

Zauważmy, że ryzyko związane ze wszystkimi omawianymi błędami
można ograniczyć przez zastosowanie zasady najmniejszych przywilejów. Czyli
wyłączenie zbędnej funkcjonalności i ograniczenie uprawnień do niezbędnego
minimum.

Uwaga: W Oracle Security Alert #51 (http://otn.oracle.com/deploy/security/pdf/2003alert51.pdf)
jest zalecana prawidłowa kolejność nakładania łat związanych z opisywanymi
błędami. Według informacji producenta, największy priorytet powinna mieć łata
na pierwszy z omawianych błędów (nr 2620726).

Błąd w procedurze uwierzytelniania Oracle Database Server

Produkty podatne na zagrożenie:
Oracle Database Server – Wszystkie wersje od 8.0.x wzwyż (również 9.2)

Data publicznego ujawnienia: 11.02.2003
(data powiadomienia Oracle o błędzie: 30.09.2002)

Opis:
W procedurze uwierzytelniania istnieje poważny błąd pozwalający na
zdalne wykonanie kodu intruza. Podatność istnieje przy podawaniu nazwy użytkownika.

Stopień zagrożenia: wysoki

Szczegóły techniczne:
Serwer Oracle nie sprawdza długości wprowadzanej nazwy użytkownika. W związku
z tym, procedura uwierzytelniania jest podatna na atak typu buffer-overflow.
Intruz dysponujący dużą wiedzą techniczną będzie w stanie wykonać swój
dowolny kod na serwerze z uprawnieniami użytkownika „oracle” (na
unixach) i LOCAL_SYSTEM (na Windows). Może to prowadzić do przejęcia kontroli
nad bazą danych i systemem operacyjnym.
Większość aplikacji klienckich dla Oracle obcina zbyt długą nazwę użytkownika
po stronie klienta. Aby pomyślnie wykorzystać opisywane zagrożenie, intruz
musiałby napisać swój moduł kliencki, przy wykorzystaniu odpowiedniego API.
Jednakże odkrywca błędu Mark Litchfield znalazł jedną taką aplikacje
kliencką w standardowej instalacji Oracle. Jest to program: ORACLE_HOME/bin/loadpsp.

Usunięcie zagrożenia:
Łata na błąd nr 2620726.
Uwaga: Wg informacji producenta, łata ta jest dostępna jedynie dla najbardziej
aktualnych wersji patchset-u (tzn.: 9.2.0.2, 9.0.1.4, 8.1.7.4, 8.0.6).
Błąd zostanie poprawiony w wersji 9.2.0.3

Błąd w procedurze „bfilename”

Produkty podatne na zagrożenie:
Oracle Database Server – Wszystkie wersje od 8.0.x wzwyż (również 9.2)

Data publicznego ujawnienia: 11.02.2003
(data powiadomienia Oracle o błędzie: 30.09.2002)

Opis:
W procedurze bfilename istnieje poważny błąd mogący prowadzić do możliwości
zakłócenia pracy serwera lub wykonania dowolnych operacji na systemie
operacyjnym. Błąd może zostać wykorzystany jedynie przez użytkowników, którzy
mają dostęp do tych procedur (posiadają konto w bazie i wcześniej pomyślnie
się uwierzytelnili). Warto zwrócić uwagę, że w niektórych konfiguracjach
procedura ta może być osiągalna przez Internet (np. przez mod_plsql).

Stopień zagrożenia: średni

Szczegóły techniczne:
Jednym z parametrów procedury bfilename jest nazwa katalogu. Podając
bardzo długą wartość tego parametru i odpowiednio manipulując jego zawartością,
intruz może wykorzystać metodę buffer overflow do wykonania dowolnego kodu na
serwerze. Kod ten zostanie wykonany z uprawnieniami użytkownika „oracle”
(na unixach) i LOCAL_SYSTEM (na Windows). Może to prowadzić do przejęcia
kontroli nad bazą danych i systemem operacyjnym. Uwaga: Standardowo procedura
ta jest dostępna dla grupy PUBLIC.

Usunięcie zagrożenia:
Łata na błąd nr 2642117.
Uwaga: Wg informacji producenta, łata ta jest dostępna jedynie dla najbardziej
aktualnych wersji patchset-u bazy (tzn.: 9.2.0.2, 9.0.1.4, 8.1.7.4, 8.0.6) i nie
zadziała na wcześniejszych.
Błąd zostanie poprawiony w wersji 9.2.0.3

Błędy w procedurach: TZ_OFFSET, TO_TIMESTAMP_TZ

Produkty podatne na zagrożenie:
Oracle Database Server – Wszystkie wersje od 8.1.x wzwyż (również 9.2)

Data publicznego ujawnienia: 11.02.2003
(data powiadomienia Oracle o błędzie: 30.09.2002)

Opis:
W procedurach TZ_OFFSET i TO_TIMESTAMP_TZ istnieją poważne błędy mogące
prowadzić do możliwości zakłócenia pracy serwera lub wykonania dowolnych
operacji na systemie operacyjnym. Błędy mogą zostać wykorzystane jedynie
przez użytkowników, którzy mają dostęp do tych procedur (posiadają konto w
bazie i wcześniej pomyślnie się uwierzytelnili). Warto zwrócić uwagę, że
w niektórych konfiguracjach procedury te mogą być dostępne z Internetu (np.
przez mod_plsql).

Stopień zagrożenia: wysoki

Szczegóły techniczne:
Procedura TZ_OFFSET przyjmuje jeden parametr – nazwę strefy czasowej.
Podając bardzo długą nazwę tego parametru i odpowiednio manipulując jego
zawartością, intruz może wykorzystać metodę buffer overflow do wykonania
dowolnego kodu na serwerze. Kod ten zostanie wykonany z uprawnieniami użytkownika
„oracle” (na unixach) i LOCAL_SYSTEM (na Windows). Może to prowadzić
do przejęcia kontroli nad bazą danych i systemem operacyjnym. Analogiczny błąd
istnieje w procedurze TO_TIMESTAMP_TZ.
Uwaga: Standardowo procedury te są dostępne dla grupy PUBLIC.

Usunięcie zagrożenia:

Łaty na błąd nr 2642439 i 2642267.
Uwaga: Wg informacji producenta, łaty te są dostępne jedynie dla najbardziej
aktualnych wersji patchset-u bazy w wersji 9 (tzn.: 9.2.0.2, 9.0.1.4) natomiast
mogą być instalowane na dowolnej wersji 8.1.7.x.
Błąd zostanie poprawiony w wersji 9.2.0.3

Niebezpieczna konfiguracja standardowa WebDAV w Oracle Application Server

Produkty podatne na zagrożenie:
Oracle9i Application Server 9.0.2

Data publicznego ujawnienia: 11.02.2003
(Uwaga: błąd jest dość trywialny, więc należy zakładać, że ktoś
zauważył go wcześniej niż producent)

Opis:
Oracle Application Server 9i, wspiera WebDAV (Web Distributed Authoring and
Versioning). Rozszerzenie to pozwala na korzystanie z serwera WWW, tak jak z
serwera plików. WebDAV jest włączone w instalacji standardowej, ponadto
standardowa konfiguracja tego rozszerzenia umożliwia anonimowemu użytkownikowi
załadowanie dowolnych plików na serwer.

Stopień zagrożenia: wysoki

Szczegóły techniczne:
Standardowa konfiguracja WebDAV na Oracle 9iAS wygląda tak:

<Location /dav_public>
     DAV on
</Location>

Umożliwia to ładowanie dowolnych plików do ścieżki /dav_public
przy użyciu rozszerzeń WebDAV. W szczególności, pliki te mogą być
skryptami wykonywanymi po stronie serwera (np. JSP). Może to prowadzić do
znaczącej eskalacji przywilejów i przy sprzyjających okolicznościach do
przejęcia przez intruza kontroli nad serwerem aplikacji.

Usunięcie zagrożenia:
Błąd został usunięty w wersji 9.0.3.
Obejście błędu dla wersji 9.0.2:
W pliku konfiguracyjnym $ORACLE_HOME/Apache/oradav/conf/moddav.conf, należy
znaleźć linię:

DAV on

i zmienić ją na:

DAV off

Jeśli funkcjonalność WebDAV jest zbędna, to należy ją
wyłączyć (np. przez wykomentowanie linii odpowiedzialnej za konfigurację
WebDAV w pliku $ORACLE_HOME/Apache/Apache/conf/oracle_apache.conf)

Błąd w module WebDAV Oracle Application Server

Produkty podatne na zagrożenie:
Oracle9i Application Server 9.0.2 i 9.0.3

Data publicznego ujawnienia: 11.02.2003
(data powiadomienia Oracle o błędzie: 24.09.2002)

Opis:
Intruz działający z internetu, bez żadnych początkowych uprawnień może
zakłócić pracę serwera aplikacji lub nawet przejąć kontrolę nad tym
serwerem. Co prawda, nie został opublikowany exploit, jednak publicznie udostępnione
informacje przez odkrywcę „dziury” – Davida Litchfielda,
pozwalają przy wysokiej wiedzy technicznej intruza skonstruować pomyślnie
działający atak.

Stopień zagrożenia: wysoki

Szczegóły techniczne:
W procedurach zapisywania zdarzeń do logów serwera HTTP, istnieje błąd
typu format string, który pozwala na zdalne wykonanie dowolnego kodu na
serwerze lub zakłócenie pracy serwera.
WebDAV jest rozszerzeniem odziedziczonym z serwera Apache. Co ciekawsze, błąd
nie uaktywnia się w standardowych instalacjach Apache. Wynika to z tego, że ta
niedopracowana procedura jest wyłączona w kodzie źródłowym Apache, jednak
Oracle ją włączył, aby umożliwić logowanie zdarzenia „502 –
Bad Gateway” i stąd wynika podatność Oracle HTTP Server.

Usunięcie zagrożenia:
Łata numer: 2602262
Jeśli funkcjonalność WebDAV jest zbędna, to należy ją wyłączyć (np.
przez wykomentowanie linii odpowiedzialnej za konfigurację WebDAV w pliku $ORACLE_HOME/Apache/Apache/conf/oracle_apache.conf)