Usunięcie Krytycznej luki bezpieczeństwa w kernelu Linux, wszystkie wersje od roku 2001.

Wszystko należy wykonywać z konta root.

Przechodzimy do katalogu /usr/src/linux/net następnie usuwamy plik socket.o
otwieramy w ulubionym edytorze plik socket.c i odnajdujemy wpis: (okolice linii 710)

if (more)
flags |= MSG_MORE;

return sock->ops->sendpage(sock, page, offset, size, flags);

zmieniamy wpis aby wyglądał następująco:

if (more)
flags |= MSG_MORE;

return kernel_sendpage(sock, page, offset, size, flags);

zapisujemy i wychodzimy z edytora. Teraz przechodzimy do katalogu /usr/src/linux
i wykonujemy po kolei polecenia:

make
make bzImage
make install

Teraz pozostaje tylko restart systemu i problem rozwiązany.

Autor: Krzysztof Wnuk

  • Max
    sie 26th, 2009 at 12:34 | #1

    A właściwie, to na co ta luka pozwalała :P?

  • sie 26th, 2009 at 14:38 | #2

    Poniżej jest dokładny artykuł na ten temat
    http://www.klodzko.linux.pl/?p=572

  • Max
    wrz 6th, 2009 at 10:37 | #3

    Super artykuł.

    :) To ja jeszcze dodam ze w nowych kernelach w serii 2.6.x
    nie ma potrzeby wpisywania make bzImage

    Wystarczy po prostu napisać make :)

    Podobnie mechanizm make jest tak skonstruowany, aby nie kompilować wszystkiego od nowa jeżeli obiekty są już gotowe, dlatego kompiluje tylko wtedy kiedy zobaczy zmianę źródła..
    Nie ma potrzeby kasowania obiektu „socket.o”, ale dla pewności można to zrobić :-)

    Pozdrawiam…
    :-)

Zostaw komentarz