SA-05:07.ldt
piątek, 06 maja 2005 15:48
FreeBSD-SA-05:07.ldt Security Advisory
The FreeBSD Project
Temat: Lokalne ujawnienie pamięci jądra w i386_get_ldt
Kategoria: core
Moduł: sys_i386
Ogłoszono: 2005-05-06
Podziękowania: Christer Oberg
Podatne wersje: Wszystkie wydania FreeBSD/i386 4.x od 4.7-RELEASE
Wszystkie FreeBSD/i386 5.x i FreeBSD/amd64 5.x do 5.4-RELEASE
Poprawiono: 2005-05-06 02:40:19 UTC (RELENG_5, 5.4-STABLE)
2005-05-06 02:40:49 UTC (RELENG_5_4, 5.4-RELEASE)
2005-05-06 02:40:32 UTC (RELENG_5_3, 5.3-RELEASE-p12)
2005-05-06 02:39:35 UTC (RELENG_4, 4.11-STABLE)
2005-05-06 02:40:05 UTC (RELENG_4_11, 4.11-RELEASE-p6)
2005-05-06 02:39:52 UTC (RELENG_4_10, 4.10-RELEASE-p11)
Nazwa CVE: CAN-2005-1400
Dla pogłębienia informacji dotyczącej Ogłoszeń Bezpieczeństwa FreeBSD, włączając opisy pól powyżej, gałęzi bezpieczeństwa oraz poniższych sekcji proszę odwiedzić:
[URL:http://www.freebsd.org/security/]
I. Podstawy
Funkcja systemowa i386_get_idt(2) umożliwia procesowi wysłania zażądania części z lokalnej tablicy deskryptorów (Local Description Table) jądra, a następnie skopiowania ich do przestrzeni użytkownika.
II. Opis problemu
Funkcja systemowa i386_get_idt(2) wykonuje niedostateczną weryfikacje argumentów wejściowych. W szczególności negatywne lub bardzo duże wartości mogą przepuścić niezatwierdzone do skopiowania z jądra.
III. Wpływ
Pamieć jądra może zostać odkryta dla procesu użytkownika. Pamieć ta może zawierać tajne informacje takie jak plik cache'u lub bufor terminala. Informacje te mogą być bezpośrednio użyte, lub mogą mieć wpływ w pewnym przypadku przy uzyskaniu wyższych uprawnień. Na przykład, bufor terminala może zawierać wpisane hasło przez użytkownika.
IV. Obejście
Brak dla platform i386 oraz amd64; inne platformy nie sa podatne
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:07/ldt4.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:07/ldt4.patch.asc
[FreeBSD 5.x]
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:07/ldt5.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:07/ldt5.patch.asc
b) Wykonać będąc zalogowanym jako root:
# cd /usr/src
# patch < /path/to/patch
c) Przebudować cały system jak opisano w dokumentacji na stronie: <URL:http://www.freebsd.org/doc/handbook/makeworld.html>
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/i386/i386/sys_machdep.c 1.47.2.4
RELENG_4_11
src/UPDATING 1.73.2.91.2.7
src/sys/conf/newvers.sh 1.44.2.39.2.10
src/sys/i386/i386/sys_machdep.c 1.47.2.3.8.1
RELENG_4_10
src/UPDATING 1.73.2.90.2.12
src/sys/conf/newvers.sh 1.44.2.34.2.13
src/sys/i386/i386/sys_machdep.c 1.47.2.3.6.1
RELENG_5
src/sys/i386/i386/sys_machdep.c 1.92.2.3
RELENG_5_4
src/UPDATING 1.342.2.24.2.6
src/sys/i386/i386/sys_machdep.c 1.92.2.1.2.1
RELENG_5_3
src/UPDATING 1.342.2.13.2.15
src/sys/conf/newvers.sh 1.62.2.15.2.17
src/sys/i386/i386/sys_machdep.c 1.92.4.1
- -------------------------------------------------------------------------
Najnowsza wersja jest dostępna pod adresem:
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:07.ldt.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (FreeBSD)
iD8DBQFCetz/FdaIBMps37IRAsGyAJ0e/186b85KV2w0iqXy+eZe4aoGMwCfSlRm
TqqVUL/yrYbXxlyzJZNEjPs=
=/YXX
-----END PGP SIGNATURE-----