On Sun, Jan 30, 2005 at 11:51:30AM +0100, Paweł Sikora wrote: > On Sunday 30 of January 2005 10:57, Kosmo wrote: > > Witam. > > > > Jakiś czas temu pisałem na liście że po upgradzie glibc'a rozwaliło mi > > maszykę. Sprawa została zbadana: > > > > Nowy glibc zaczął respektować flagi w nagłówku PT_GNU_STACK bibliotek. > > Między innymi jest tam informacja czy dana biblioteka ma mieć wykonywalny > > stos. Część binarek u nas chce mieć taki fikuśny stos (np. libgcrypt), co > > powoduje wywalenie się programu podczas ładowania bibliotek dzielonych > > (glibc wykonuje mprotect(), który zwraca EPERM) i ogólną rozwałkę systemu.
A nie chodzi o to, że PaX zwraca EACCES przy próbie wywołania mprotect() dla binarek, które właśnie wykonywalnego stosu sobie życzą? (w starszym glibcu był dołączony taki hack ignorujący EACCES w takim przypadku - ale to tylko ukrywanie problemu) > > Na wcześniejszym glibcu takich negatywnych efektów nie zaobserwowałem > > (wszystko miało non-exec na stosie i restrykcje na mprotect()), a na nowym > > po wyczyszczeniu tej fagi na wszystkich bibliotekach za pomocą execstack > > wszystko pięknie hula. Proponuję więc, aby czyścić tą flagę podczas > > budowania rpm'ów. To po kiego trzymać PaX, jak nie chcesz go używać? > nie! nie będziemy dla popsutych programów przewalać wszystkich binarek. > jak ktoś chce używać pax-a, to powinien wiedzieć co się z tym wiąże > i kilka kłopotliwych bibliotek na serwerze sobie oflaguje odpowiednio > albo autorzy je poprawią, bo w większości przypadków wykonywalny stos, > to wina źle napisanych wstawek w asm., które z reguły go nie potrzebują. > z sytuacji są przynajmniej 3 wyjścia: > > [1] dodać .section .note.GNU-stack,"",@progbits; .previous > do plików .S które nie wykorzystują wykonywalnego stosu. > [2] kompilować te programy przekazując do gcc -Wa,--noexecstack. > [3] linkować z flagą -Wl,-z,noexecstack. > > w ostateczności dla niereformowalnych wyjątków można %post puścić > execstack, a nie protezować wszystkie binaria. %post? To psuje zainstalowany pakiet (zmienia pliki). -- Jakub Bogusz http://cyber.cs.net.pl/~qboosh/ _______________________________________________ pld-devel-pl mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl
