SA-06:03.cpio
środa, 11 stycznia 2006 21:23
FreeBSD-SA-06:02.ee Security Advisory
The FreeBSD Project
Temat: Różne błędy w cpio
Kategoria: contrib
Moduł: contrib_cpio
Ogłoszono: 2006-01-11
Podziękowania: Imran Ghory, Richard Harms
Podatne wersje: Wszystkie wersje
Poprawiono: 2006-01-11 08:02:16 UTC (RELENG_6, 6.0-STABLE)
2006-01-11 08:03:18 UTC (RELENG_6_0, 6.0-RELEASE-p2)
2006-01-11 08:03:55 UTC (RELENG_5, 5.4-STABLE)
2006-01-11 08:04:33 UTC (RELENG_5_4, 5.4-RELEASE-p9)
2006-01-11 08:05:54 UTC (RELENG_5_3, 5.3-RELEASE-p24)
2006-01-11 08:06:47 UTC (RELENG_4, 4.11-STABLE)
2006-01-11 08:07:18 UTC (RELENG_4_11, 4.11-RELEASE-p14)
2006-01-11 08:08:08 UTC (RELENG_4_10, 4.10-RELEASE-p20)
Nazwa CVE: CVE-2005-1111, CVE-2005-1229, CVE-2005-4268
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
Narzędzie cpio, kopiuje pliki do lub z archiw cpio lub tar.
II. Opis problemu
Liczba zagadnień związanych z cpio jakie zostały odkryte:
* Podczas tworzenia nowego pliku, cpio zamyka plik, zanim ustawi prawa dostępu na nim (CVE-2005-1111)
* Podczas rozpakowywania plików cpio nie oczyszcza nazw plików, nawet z użyciem opcji --no-absolute-filenames. (CVE-2005-1229)
* Dodanie dużych plików (większych jak 4GB) do archiwum cpio na 64-bitowej platformie, zewnetrzny bufor może zostać przepełniony.(CVE-2005-4268)
III. Wpływ
* Pierwszy problem udostępnia atakującemu lokalnie zmianę praw dostępu do plików należących do użytkownika wykonującego cpio, w momencie gdy mają oni prawa zapisu do katalogu gdzie dany plik jest rozpakowywany.
* Brak poprawnego oczyszczenia nazw plików, umożliwia atakującemu nadpisanie dowolnego pliku, w momencie rozpakowywania przez cpio.
* Nadpisanie bufora na 64-bitowej pratformie, może umożliwić DoS, lub wykonać dowolny kod z prawami użytkownika używającego cpio.
IV. Obejście
Użycie różnych narzędzi do stworzenia oraz wypakowania archiwów cpio np. pax(1) lub ( na FreeBSD 5.3 lub pożniejszych ) tar(1). Jeżeli nie jest to możliwe, nie rozpakowywać nieznanych archiw oraz przy korzystaniu z 64-bitowej platformy nie dodawać nieznanych plikow do archiw cpio.
V. Rozwiązanie
NOTA: Rozwiązanie opisywane poniżej przedstawia przypadek dla użycia bez scieżki absolutnej domyślnie. Jeżeli jest to wymagane przy rozpakowaniu plików, należy użyć parametru --absolute-filenames.
Wykonać jedno z poniższych:
1) Uaktualnić wadliwy system do 4-STABLE, 5-STABLE, 6-STABLE lub do RELENG_6_0, RELENG_5_4, 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, 5.3, 5.4, 6.0.
a) Pobrać odpowiednią łatkę z lokalizacji podanych poniżej. Sprawdzić podpis PGP, narzędziem jakie posiadasz.
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-06:03/cpio.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-06:03/cpio.patch.asc
b) Wykonać będąc zalogowanym jako root:
# cd /usr/src
# patch < /path/to/patch
# cd /usr/src/gnu/usr.bin/cpio
# make obj && make depend && make && make install
VI. Szczegóły poprawki
Poniższa lista zawiera numery poszczególnych wersji plików które zostały poprawione.
Gałąź
Ścieżka Przegląd
- -------------------------------------------------------------------------
RELENG_4
contrib/cpio/copyin.c 1.6.6.2
contrib/cpio/copyout.c 1.2.8.1
contrib/cpio/cpio.1 1.3.6.1
contrib/cpio/extern.h 1.2.8.1
contrib/cpio/global.c 1.1.1.1.8.1
contrib/cpio/main.c 1.3.2.1
RELENG_4_11
src/UPDATING 1.73.2.91.2.15
src/sys/conf/newvers.sh 1.44.2.39.2.18
contrib/cpio/copyin.c 1.6.6.1.12.1
contrib/cpio/copyout.c 1.2.36.1
contrib/cpio/cpio.1 1.3.34.1
contrib/cpio/extern.h 1.2.36.1
contrib/cpio/global.c 1.1.1.1.36.1
contrib/cpio/main.c 1.3.30.1
RELENG_4_10
src/UPDATING 1.73.2.90.2.21
src/sys/conf/newvers.sh 1.44.2.34.2.22
contrib/cpio/copyin.c 1.6.6.1.10.1
contrib/cpio/copyout.c 1.2.30.1
contrib/cpio/cpio.1 1.3.28.1
contrib/cpio/extern.h 1.2.30.1
contrib/cpio/global.c 1.1.1.1.30.1
contrib/cpio/main.c 1.3.24.1
RELENG_5
contrib/cpio/copyin.c 1.7.8.1
contrib/cpio/copyout.c 1.2.32.1
contrib/cpio/cpio.1 1.3.30.1
contrib/cpio/extern.h 1.2.32.1
contrib/cpio/global.c 1.1.1.1.32.1
contrib/cpio/main.c 1.3.26.1
RELENG_5_4
src/UPDATING 1.342.2.24.2.18
src/sys/conf/newvers.sh 1.62.2.18.2.14
contrib/cpio/copyin.c 1.7.12.1
contrib/cpio/copyout.c 1.2.38.1
contrib/cpio/cpio.1 1.3.36.1
contrib/cpio/extern.h 1.2.38.1
contrib/cpio/global.c 1.1.1.1.38.1
contrib/cpio/main.c 1.3.32.1
RELENG_5_3
src/UPDATING 1.342.2.13.2.27
src/sys/conf/newvers.sh 1.62.2.15.2.29
contrib/cpio/copyin.c 1.7.10.1
contrib/cpio/copyout.c 1.2.34.1
contrib/cpio/cpio.1 1.3.32.1
contrib/cpio/extern.h 1.2.34.1
contrib/cpio/global.c 1.1.1.1.34.1
contrib/cpio/main.c 1.3.28.1
RELENG_6
contrib/cpio/copyin.c 1.7.14.1
contrib/cpio/copyout.c 1.2.40.1
contrib/cpio/cpio.1 1.3.38.1
contrib/cpio/extern.h 1.2.40.1
contrib/cpio/global.c 1.1.1.1.40.1
contrib/cpio/main.c 1.3.34.1
RELENG_6_0
src/UPDATING 1.416.2.3.2.7
src/sys/conf/newvers.sh 1.69.2.8.2.3
contrib/cpio/copyin.c 1.7.16.1
contrib/cpio/copyout.c 1.2.42.1
contrib/cpio/cpio.1 1.3.40.1
contrib/cpio/extern.h 1.2.42.1
contrib/cpio/global.c 1.1.1.1.42.1
contrib/cpio/main.c 1.3.36.1
- -------------------------------------------------------------------------
VII. Odnośniki
[CVE-2005-1111]
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-1111
http://marc.theaimsgroup.com/?l=bugtraq&m=111342664116120
https://savannah.gnu.org/patch/?func=detailitem&item_id=4006
https://savannah.gnu.org/patch/?func=detailitem&item_id=4007
[CVE-2005-1229]
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-1229
http://marc.theaimsgroup.com/?l=bugtraq&m=111403177526312
https://savannah.gnu.org/patch/?func=detailitem&item_id=4005
[CVE-2005-4268]
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-4268
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=172669
Najnowsza wersja jest dostępna pod adresem:
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-06:03.cpio.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (FreeBSD)
iD8DBQFDxL4mFdaIBMps37IRAqQnAJ9Js/Joq8LJJT1kX6DXStgJMliqJQCfdZCx
bxuCX+ps+C0MR5UcLOExHvM=
=7laG
-----END PGP SIGNATURE-----