FreeBSD-SA-09:06.ktimer - helyi privilégium-szint emelés

Címkék

A FreeBSD projekt bejelentése szerint a FreeBSD 7.x szériájában bemutatkozó "per-process timers" implementációban olyan biztonsági sebezhetőség található, amelyet a rosszindulató helyi támadó privilégium szintjének emelésére használhat fel.

"Privilégium nélküli processz képes felülírni a kernel memória tetszőleges területét. Ez felhasználható a processz user ID-jának megváltoztatására ("root-tá válás" érdekében), jail-ből való kitörésre, vagy biztonsági mechanizmusok más módon történő megkerülésére."

A hibára ideiglenes megkerülő megoldás nincs, az érintett rendszert patchelni kell.

A bejelentés itt olvasható.

Hozzászólások

$ uname -s
FreeBSD
$ id
uid=1002(hunger) gid=1001(hunger) groups=1001(hunger)
$ ./bsd-ktimer
FreeBSD local kernel root exploit
by: christer/mu-b
http://www.bsdcitizen.org/ -- BSDCITIZEN 2008!@$!

* allocated pointer page: 0x00000000 -> 0x08000000 [134217728-bytes]
* allocated itimer struct: 0x20000000 -> 0x200000DC [220-bytes]
* filling pointer page... done
* found posix_clocks @ [0xc0bdafc0]
* it_page->it_clockid: 0x0CC01CA7 [access @0xBFBFECD8]
* ktimer_delete (0xD0000000)
* ktimer_delete: 0 1
$ id
uid=1002(hunger) gid=1001(hunger) euid=0(root) groups=1001(hunger)


[psc@freebsd:~]$ gcc ./bsd-ktimer.c
./bsd-ktimer.c: In function 'main':
./bsd-ktimer.c:73: warning: cast from pointer to integer of different size
./bsd-ktimer.c:73: warning: cast from pointer to integer of different size
./bsd-ktimer.c:85: warning: cast from pointer to integer of different size
./bsd-ktimer.c:85: warning: cast from pointer to integer of different size
./bsd-ktimer.c:115: warning: cast from pointer to integer of different size
./bsd-ktimer.c:118: warning: cast from pointer to integer of different size
/var/tmp//ccn6V9nF.s: Assembler messages:
/var/tmp//ccn6V9nF.s:12: Error: Incorrect register `%rax' used with `l' suffix
[psc@freebsd:~]$

Hát most neki nem állok túrni a forrást...

Egy dolgon azért én erősen meglepődtem:
A milw0rm-os exploitban az alábbi sorok találhatóak:

    * FreeBSD >= 7.0 local kernel root exploit
    * by christer/mu-b - Mon 2 June 2008
    *
    * - Tested on: FreeBSD 7.0
    * FreeBSD 7.1

Tehát a hibáról már jó ideje tudtak, és jó ideje lehetőségük is lehetett ezt kihasználni.. Ehhez képest az exploitot ma postázták milw0rm-ra ( majd 10 hónapra miután megírták ).. Javítás viszont a mai napig nincs rá ( ezzel mondjuk felmerül az a kérdés is, hogy akkor miért adták ki? )
A többi kérdést már a trollokra bízom :)

____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..

Most már nekem is kezd tisztább lenni a kép.. Ott keveredtem meg, hogy úgy értelmeztem,hogy nincs még mindig javítva a hiba ( így viszont teljesen normális ). Bár ettől még mindig kérdéses számomra, hogy ez mennyire maradhatott házon belül. Plusz kicsit sokallom a patcheléshez szükséges időt :S
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..

Váá.. Jogos.. Ebbe belekeveredtem:
"A hibára ideiglenes megkerülő megoldás nincs, az érintett rendszert patchelni kell."
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..