SA-05:07.ldt

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-----

Hosting @mc2 || Copyright © 2024 FreeBSD - Inside. Wszelkie prawa zastrzeżone.