SA-05:04.ifconf

piątek, 15 kwietnia 2005 15:31

FreeBSD-SA-05:04.ifconf                                 Security Advisory
The FreeBSD Project

Temat: Odkrycie pamięci jądra w funkcji ifconf()

Kategoria: core
Moduł: sys_net
Ogłoszono: 2005-04-15
Podziękowania: Ilja van Sprundel
Podatne wersje: Wszystkie wydania FreeBSD 4.x
Wszystkie wydania FreeBSD 5.x do 5.4-RELEASE
Poprawiono: 2005-04-15 01:51:44 UTC (RELENG_5, 5.4-STABLE)
2005-04-15 01:52:03 UTC (RELENG_5_4, 5.4-RELEASE)
2005-04-15 01:52:25 UTC (RELENG_5_3, 5.3-RELEASE-p9)
2005-04-15 01:52:40 UTC (RELENG_4, 4.11-STABLE)
2005-04-15 01:52:57 UTC (RELENG_4_11, 4.11-RELEASE-p3)
2005-04-15 01:53:14 UTC (RELENG_4_10, 4.10-RELEASE-p8)

Ogólna informacja dotycząca Ogłoszeń Bezpieczeństwa FreeBSD, włączając opisy powyżej, gałęzi bezpieczeństwa oraz poniższych sekcji proszę odwiedzić:
<URL:http://www.freebsd.org/security/>.


I. Podstawy

Flaga SIOCGIFCONF z ioctl pozwala użytkownikowi procesu wysłanie zapytania do jądra, o ukazanie listy istniejących interfejsów sieciowych i skopiowanie ich do buforu procesu danego użytkownika.

II. Opis problemu

W momencie generowania listy interfejsów, jądro zapisuje część informacji do buforu bez wcześniejszego wyzerowania go. Co w rezultacie poprzednie informacje zawarte w buforze mogą zostać odkryte przez proces wywołujący.

III. Wpływ

Do 12 bajtów pamieci jądra może zostać odkryte dla procesu użytkownika. Pamięć ta może zawierać tajne informacje, takie jak części pliku cache lub bufora terminala. Informacje te moga zostać użyte bezpośrednio, lub w niektórych przypadkach mogą przyczynić się do uzyskania wyższych praw. Na przykład bufor terminala może zawierać hasło wpisane przez użytkownika.

IV. Obejście

Brak.

V. Rozwiązanie

Wykonać jedno z poniższych:

1) Uaktualnić wadliwy system do 4-STABLE lub 5-STABLE, lub do RELENG_5_3, RELENG_4_11, RELENG_4_10 z danej gałęzi bezpieczeństwa wydanej po dacie poprawki.

2) Aby załatać obecny system:

Poniższe poprawki zostały sprawdzone w działaniu z FreeBSD 4.10, 4.11 i 5.3.

a) Pobrać odpowiednią łatkę z lokalizacji podanych poniżej. Sprawdzić podpis PGP, narzędziem jakie posiadasz.

[FreeBSD 4.x]

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:04/ifconf4.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:04/ifconf4.patch.asc

[FreeBSD 5.3]

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:04/ifconf5.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:04/ifconf5.patch.asc

b) Zatwierdzić poprawkę:

# cd /usr/src
# patch < /path/to/patch

c) Przekompilować kernel tak jak opisano w handbooku:
<URL:http://www.freebsd.org/handbook/kernelconfig.html> a następnie przeładować system.

VI. Szczegóły poprawki:
Poniższa lista zawiera numery poszczególnych wersji plików które zostały poprawione.


Gałąź Wersja
Ścieżka
- -------------------------------------------------------------------------
RELENG_4
src/sys/net/if.c 1.85.2.29
RELENG_4_11
src/UPDATING 1.73.2.91.2.4
src/sys/conf/newvers.sh 1.44.2.39.2.7
src/sys/net/if.c 1.85.2.28.2.1
RELENG_4_10
src/UPDATING 1.73.2.90.2.9
src/sys/conf/newvers.sh 1.44.2.34.2.10
src/sys/net/if.c 1.85.2.25.2.1
RELENG_5
src/sys/net/if.c 1.199.2.15
RELENG_5_4
src/UPDATING 1.342.2.24.2.3
src/sys/net/if.c 1.199.2.14.2.1
RELENG_5_3
src/UPDATING 1.342.2.13.2.12
src/sys/conf/newvers.sh 1.62.2.15.2.14
src/sys/net/if.c 1.199.2.7.2.3
- -------------------------------------------------------------------------

Najnowsza wersja jest dostępna pod adresem:
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:04.ifconf.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (FreeBSD)
iD8DBQFCdsQnFdaIBMps37IRAqv+AJ4iFgJn+lud8kW+IPTuDe/fRNaKWwCeIMwY
llpfOaeaHq82l+ndg0F3uUM=
=NwqA
-----END PGP SIGNATURE-----