Glibc, PaX i problemy ...
Piotr Zięcik
kosmo w miechow.com
Nie, 30 Sty 2005, 12:40:53 CET
Dnia niedziela, 30 stycznia 2005 12:32, Jakub Bogusz napisał:
> 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)
Dokładnie - pomyliłem się z tym EPERM.
> > > 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ć?
Czy ja go wtedy nie używam? Wtedy glibc nie próbuje ustawić wykonywalnego
stosu dla biblioteki, więc nie ma błędu przy ładowaniu binarki i dopóki nie
zacznie ona wykonywać stosu wszystko działa. W przeciwnym wypadku trzeba by
zdjąć restrykcje z mprotect() i pozwolić na wykonywanie stosu dla programów
koszystających z tak "uszkodzonej" biblioteki. W tym przypadku błędu też nie
będzie bo PaX zostanie po prostu wyłączony.
Więcej informacji o liście dyskusyjnej pld-devel-pl