SA-05:09.htt

piątek, 13 maja 2005 15:59

FreeBSD-SA-05:09.htt                                 Security Advisory
The FreeBSD Project

Temat: Ujawnienie informacji podczas używania HTT

Kategoria: core
Moduł: sys
Ogłoszono: 2005-05-13
Poprawiono: 2005-05-13
Podziękowania: Colin Percival
Podatne wersje: Wszystkie wydania FreeBSD/i386 i FreeBSD/amd64.
Poprawiono: 2005-05-13 00:13:00 UTC (RELENG_5, 5.4-STABLE)
2005-05-13 00:13:00 UTC (RELENG_5_4, 5.4-RELEASE-p1)
2005-05-13 00:13:00 UTC (RELENG_5_3, 5.3-RELEASE-p15)
2005-05-13 00:13:00 UTC (RELENG_4, 4.11-STABLE)
2005-05-13 00:13:00 UTC (RELENG_4_11, 4.11-RELEASE-p9)
2005-05-13 00:13:00 UTC (RELENG_4_10, 4.10-RELEASE-p14)
Nazwa CVE: CAN-2005-0109

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

0. Przegląd historii

v.1.0 2005-05-13 Pierwsze wydanie
v.1.0 2005-05-13 Dodanie szczegółów

I. Podstawy

Współdzielenie zasobów procesora pomiedzy kilkoma wykonywaniami wątkami określa sie jako "symultanicznej wielowąkowości". "Hyper-Threading Technology" lub jak kto woli HTT jest nazwą używaną do implementacji symultanicznej wielowątkowości na platformie Intel Pentium 4 , Mobile Pentium 4 oraz procesorów Xeon. HTT umożliwia współdzielenia zasobów procesora pomiedzy kilkoma wątkami, włączając cache pamieci. FreeBSD wspiera HTT przy wkompilowanej opcji SMP w kernel.

II. Opis problemu

Podczas wspierania HTT przez system, specjalnie spreparowany wątek może monitorowac wykonywanie innego.

NOTA: Podobny problem występuje w innych implementacjach symultanicznej wielowątkowości, lub nawet w niektórych systemach z brakiem jej. Jednakże, obecny przegląd jest przykładem dla systemów posiadających i wspierających HTT, gdzie współdzielenie pamieci cachowanej jest wykorzystywane.

III. Wpływ

Informacja może dostać ujawniona dla lokalnych uzytkowników, umożliwiając w wielu przypadkach eskalacje uprawnień. Na przyklad, jest możliwość kradzieży kluczy kryptograficznych używanych w aplikacjach takich jak OpenSSH lub z włączonym SSL w serwisach www.

IV. Obejście

Systemy które nie używają wsparcia dla procesorów z HTT nie są podatne. W systemach które są podatne, wada w bezpieczeństwie może zostać usunięta poprzez skonfigurowanie "machdep.hlt_logical_cpus".

# echo "machdep.hlt_logical_cpus=1" >> /boot/loader.conf

System po tym zabiegu powinien zostać ponownie uruchomiony.
Uzycie tego sposobu nie jest polecany dla systemów "dual-core", jak również sposób ten dezaktywuje jeden z rdzeni procesorów.

V. Rozwiązanie

Wyłączyć HTT na procesorach wspierających.

NOTA: W przyszłości, w pracach przy rozwoju kryptograficznych bibliotekach oraz programów szeregujących, rozwiąże to problem wielu lub wiekszości użytkowników, bez konieczności dezaktywowania HTT.

Wykonać jedno z poniższych:

1) Uaktualnić wadliwy system do 4-STABLE lub 5-STABLE, lub do RELENG_5_4, RELENG_5_3, RELENG_4_11 lub 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, 5.3 i 5.4.
a) Pobrać odpowiednią łatkę z lokalizacji podanych poniżej. Sprawdzić podpis PGP, narzędziem jakie posiadasz.

[FreeBSD 4.10]
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:09/htt410.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:09/htt410.patch.asc

[FreeBSD 4.11]
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:09/htt411.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:09/htt411.patch.asc

[FreeBSD 5.x]
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:09/htt5.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:09/htt5.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łąź
Ścieżka Zmiany
- -------------------------------------------------------------------------
RELENG_4
src/sys/i386/i386/mp_machdep.c 1.115.2.23
src/sys/i386/include/cpufunc.h 1.96.2.4
RELENG_4_11
src/UPDATING 1.73.2.91.2.10
src/sys/conf/newvers.sh 1.44.2.39.2.13
src/sys/i386/i386/mp_machdep.c 1.115.2.22.2.1
src/sys/i386/include/cpufunc.h 1.96.2.3.12.1
RELENG_4_10
src/UPDATING 1.73.2.90.2.15
src/sys/conf/newvers.sh 1.44.2.34.2.16
src/sys/i386/i386/mp_machdep.c 1.115.2.20.2.1
src/sys/i386/include/cpufunc.h 1.96.2.3.10.1
RELENG_5
src/sys/amd64/amd64/mp_machdep.c 1.242.2.11
src/sys/amd64/include/cpufunc.h 1.145.2.1
src/sys/i386/i386/mp_machdep.c 1.235.2.10
src/sys/i386/include/cpufunc.h 1.142.2.1
RELENG_5_4
src/UPDATING 1.342.2.24.2.10
src/sys/amd64/amd64/mp_machdep.c 1.242.2.7.2.4
src/sys/amd64/include/cpufunc.h 1.145.6.1
src/sys/conf/newvers.sh 1.62.2.18.2.6
src/sys/i386/i386/mp_machdep.c 1.235.2.6.2.3
src/sys/i386/include/cpufunc.h 1.142.6.1
RELENG_5_3
src/UPDATING 1.342.2.13.2.18
src/sys/amd64/amd64/mp_machdep.c 1.242.2.2.2.2
src/sys/amd64/include/cpufunc.h 1.145.4.1
src/sys/conf/newvers.sh 1.62.2.15.2.20
src/sys/i386/i386/mp_machdep.c 1.235.2.3.2.2
src/sys/i386/include/cpufunc.h 1.142.4.1
- -------------------------------------------------------------------------

VII. Odnośniki
http://www.daemonology.net/hyperthreading-considered-harmful/

Najnowsza wersja jest dostępna pod adresem:
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:09.htt.asc

-----BEGIN PGP SIGNATURE-----
iD8DBQFChJA4FdaIBMps37IRAo8nAJ9w7xtIF0atnxiKDhFOpBXEZQDtZQCghWdM
qc5lGST7l+iJEYN/7zTNUPY=
=WqEa
-----END PGP SIGNATURE-----