"Helyi root" sebezhetőség a 2.4/2.6 Linux kernelekben

 ( trey | 2009. augusztus 14., péntek - 8:14 )

Tavis Ormandy és Julien Tinnes - a Google Security Team tagjai - egy olyan sebezhetőséget fedeztek fel a Linux kernelben, amelynek sikeres kihasználása esetén a helyi támadó root jogokhoz juthat.

Feltehetően 2001 óta az összes 2.4/2.6 kernelverzió érintett:

  • Linux 2.4, from 2.4.4 up to and including 2.4.37.4
  • Linux 2.6, from 2.6.0 up to and including 2.6.30.4

A sebezhetőségre készült exploit, amely megtalálható itt.

Linus a bejelentés napján commit-olta a javítást.

A részletek itt.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

hirtelen meglestem
2.6.26-2-xen-686 nem müxik
2.6.18-6-686 müködött

Core2Duo T7100, 4G, Ubuntu 9.04, 2.6.31-rc5

Gondolom attol fugg, hogy engedelyeztel -e regi alighasznalt protokoll(oka)t.


Amit nem lehet megirni assemblyben, azt nem lehet megirni.

Ubuntu LiveCD-n működik, Debian-on saját kernellel (2.6.27.6) meg nem:

 [+] MAPPED ZERO PAGE!
unable to find a vulnerable domain, sorry

> [+] MAPPED ZERO PAGE!
> unable to find a vulnerable domain, sorry

sudo echo 0 > /proc/sys/vm/mmap_min_addr

azt ugy nehezen. inkabb sudo sh -c 'echo 0 > /proc/sys/vm/mmap_min_addr', nem?

jode ez csiteles, akkormar sudo su - egyszerubb :>

oscon@osconsfortress:~$ cat /proc/sys/vm/mmap_min_addr
0
oscon@osconsfortress:~$ uname -a
Linux osconsfortress 2.6.27-oscon #1 SMP Mon Aug 3 11:05:22 CEST 2009 i686 GNU/Linux

Aztán a másik userrel megnéztem az exploitot.

cedegaska@osconsfortress:~/u/wunderbar_emporium$ sh wunderbar_emporium.sh
 [+] MAPPED ZERO PAGE!
Unable to obtain symbol listing!
Unable to obtain symbol listing!
Unable to obtain symbol listing!
Unable to obtain symbol listing!
Unable to obtain symbol listing!
Unable to obtain symbol listing!
Unable to obtain symbol listing!
Unable to obtain symbol listing!
Unable to obtain symbol listing!
Unable to obtain symbol listing!
Unable to obtain symbol listing!
Unable to obtain symbol listing!
unable to find a vulnerable domain, sorry

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

20:45 < Mizu> amiota ubuntu van azota csinalja
20:45 < Mizu> debian alatt nem csinalta
20:45 < Mizu> ott mukodott faszan

Fedora 11 (2.6.29.6-217.2.3.fc11.i586 kernel) nem megy.
Csaba

Az aktuális (9.04-es) befrissített Ubuntut töri.

nekem nem törte. Pedig szintén up to date vagyok:

[+] Personality set to: PER_SVR4
I: caps.c: Limited capabilities successfully to CAP_SYS_NICE.
I: caps.c: Dropping root privileges.
I: caps.c: Limited capabilities successfully to CAP_SYS_NICE.
UNABLE TO MAP ZERO PAGE!

és itt megállt.

Ha nincs pulseaudio (pl. CentOS) akkor védett vagyok?

Szerk.: valszeg csak egy setuid exe kell, ami berántja a megadott binárist. De mi van még ilyen a pulse-n kívül?

X?

nem vagy vedett, es a problemanak (nem a spender-fele exploitnak) nincs sok koze a setuidos binarisokhoz.

Köszi.

De akkor mire jó a pulseaudiós bohóckodás?

gondolom ugyanaz mint az elozo exploitban irja a szerzo:
"Bypassing the null ptr dereference protection in the mainline kernel
via two methods ->
if SELinux is enabled, it allows pulseaudio to map at 0
UPDATE: not just that, SELinux lets any user in unconfined_t map at
0, overriding the mmap_min_addr restriction! pulseaudio is not
needed at all! Having SELinux enabled actually *WEAKENS* system
security for these kinds of exploits!
if SELinux is disabled, use personality SVR4 to auto-map at 0 "

- Use the Source Luke ! -

Az ilyenek kellenek, különben hogyan rootolnánk az androidos telefonokat :)

latod, ebben is jobb az osx :-]

Hi!

Neha mar kezdek csalodni... Egy honapja sincs egy masik egesz hasonlo esetnek.

De legalabb az osregi kernelt hasznalo, nehany shell usert kiszolgalo szerveremen nem megy:
2.6.17-pp3

PS: Biztos, hogy jo otlet kitenni az exploitot?

By(t)e
TBS::Antiemes

"Linus a bejelentés napján commit-olta a javítást. "

Ha disztró fejlesztő lennék, rögtön buildelném az új kernel csomagot és dobnám fel a security repóba. Amikor a vmsplice sebezhetőség volt, a főbb distrók 1-2 napon belül adták a frissítést. Addig meg a rendszergazda dolga áthidalni azt a pár napot, persze helyzetfüggő, lehetnek komoly problémák belőle, nem akarom lekicsinyleni az ilyen eseteket. De pl. amikor az említett eset volt, az egyik magyarországi egyetemet én elsős infós értesítettem a sebezhetőségről. Másnapra frissített debiannal meg korlátozott héjjal találkoztam, addig meg minden default, nulla frissítéssel.

********************
"...ha nem tévedek!" (Sam Hawkens)
http://holo-media.hu

Nálam is működik (Ubuntu 9.04, legfrissebb).

Én azt nem értem, hogy miért kell ezen fennakadni és bárkit a linuxos oldalról nevetségessé tenni. Már maga a forráskód is ez a fennhéjázó stílus:

and nice work Linus on trying to silently fix an 8 year old
vulnerability, leaving vendors without patched kernels for their users.

És persze nagyszerű keselyű újságírónk, Sting is első akart lenni, hogy beszámoljon utált operációs rendszere újabb bakijáról.

Na, az ilyet nem szeretem.

> miért kell ezen fennakadni és bárkit a linuxos oldalról nevetségessé tenni.

Szerencsétlen nyomorgó lelkek az önbecslésüket ápolgatják ilyen módon.

szeretnél te ilyen szerencsétlen nyomorgó lélek lenni

Köszi, ezt dicséretnek vettem.

dícséret, csak nem rád nézve

akkor mi a fenenek linkeled?

Hogy alátámasszam teóriámat, miszerint írhatsz te akármilyen jó programot, lehetsz bármilyen jó programozó, valakiknek úgyis csak azon fog járni az eszük, hogyan űzzenek csúfot belőled.

Én nem vagyok egy nagy hupper (=HUP hozzászóló). Szívesen olvasom a HUP-ot, de azt elég visszataszítónak találom, hogy sokan csak azzal töltik itt az idejüket, hogy belerúgjanak egy nagyot a Unix/Linux rendszerekbe, vagy másokba. Stingről is ez a véleményem, meg úgy általában azokról, akiknek semmi sem jó, csak a hibát keresik, a jó dolgokat meg nem látják meg. Tipikusan olyan emberekről van szó, akik maguk nem igazán tesznek le az asztalra semmit. Persze, azokat a vívmányokat, amit szerény, szorgalmas emberek hosszú évtizedes munkával létrehoztak, csendben ők is használják, de ha bármi egy picit (vagy nagyon) hibás, akkor megy a pofázás és anyázás. (Bocs.) Így könnyű élni. Nulla munka, duma ezerrel.

Kár a HUP-ért is, mert szakmai oldalról nagyon hasznos anyag, viszont a hozzászólások komoly része egyszerűen vagdalkozás.

Azzal természetesen egyetértek, hogy egy 8 éves hiba ciki, és javítani kell. De kérem szépen: ki az közülünk, aki tökéletes, és tökéletes programokat ír megállás nélkül? Nem akkor van gond, hanem ha az ember lusta a javításra, nem ismeri el a hibáját, hanem hagyja, hogy további hetekig-hónapokig-évekig megmaradjon egy bug. Vagyis ha már Linus hozzáállásáról kell szót ejteni, akkor szerintem egyértelműen pozitív, amit csinált: azonnal nekiült és megpatchelte a kernelt. Az meg, hogy nem verte nagy dobra, szintén megmagyarázható: minek? Úgyis jönnek a keselyűk, megteszik helyette...

Csodálkozol, hogy ilyet ír, ha azt látja, hogy van rá kereslet? Röviden: ne olvasd.

----------------
Lvl86 Troll

Nem akarom a HUP kozonseget megvedeni, mert nincs ra szuksege, mindossze szeretnem felhivni a figyelmedet egy momentumra: az oldal egyebek mellett gozkieresztesi celokat is szolgal, erdemes ilyen szemmel is olvasni a cikket. Nem mondom, hogy nincsenek olyanok, akik nem direkte olyanok, amilyenek, de ezek jol elkulonithetok azoktol, akik inkabb csak bosszankodni kivannak egy-egy egy-ket napos szivatos session utan.
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

"Én azt nem értem, hogy miért kell ezen fennakadni és bárkit a linuxos oldalról nevetségessé tenni."

trying to silently fix an 8 year old vulnerability

En erre tippelnek.

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

Miért kell a kedves cikkíronak azt rebesgetni, hogy remote sebezhetőségről van szó? Blikk 2.0

### ()__))____________)~~~ ###
#"Ha én veletek, ki ellenetek?"
#ASUS eee 900 //Ubuntu9.04//Xfce//

 [+] Personality set to: PER_SVR4
Pulseaudio does not exist!

Most mar tudom, megeri uldozni mindenhonnan.
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Mint a setuid root binarisokat altalaban. :)

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

passwd, su, sudo? :-)
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Ez nalam is megy. debian 4.0 bughalmaz rendszeren.

Meg egy exploit. Ugyan ezt eri el.

Ha villanyt oltasz a sötétnek
És halkan kicipzározod őt
És magadba rakod a régi semmit
A megszokott soha el nem jövőt

http://szolarenergia.hu

cedegaska@osconsfortress:~/exploit2$ cat /proc/sys/vm/mmap_min_addr
0
cedegaska@osconsfortress:~/exploit2$ uname -a
Linux osconsfortress 2.6.27-oscon #1 SMP Mon Aug 3 11:05:22 CEST 2009 i686 GNU/Linux
cedegaska@osconsfortress:~/exploit2$ cat /etc/debian_version
5.0.2
cedegaska@osconsfortress:~/exploit2$ sh run.sh
padlina z lublina!
mprotect: Permission denied

hmm...ezsemegy.

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

20:45 < Mizu> amiota ubuntu van azota csinalja
20:45 < Mizu> debian alatt nem csinalta
20:45 < Mizu> ott mukodott faszan

paxctl -m exploit

Már így is felengedtem a TPE-t, meg a network restrictiont hogy egyáltalán elinduljon a gönc, még mit csináljak?

Hagyjam a kulcsot a zárban? Root ként futtassam, vagy mi kéne még ? Indítsak különféle server processzeket, iptablest totál accept re állítsam, vagy még mi kéne? :-)

De lásd kivel van dolgot, még ezt is megtettem, csak a te kedvedért:

cedegaska@osconsfortress:~$ uname -a
Linux osconsfortress 2.6.27-oscon #1 SMP Mon Aug 3 11:05:22 CEST 2009 i686 GNU/Linux
cedegaska@osconsfortress:~$ cat /proc/sys/vm/mmap_min_addr
0
root@osconsfortress:~# paxctl -v /home/cedegaska/exploit2/exploit
PaX control v0.5
Copyright 2004,2005,2006,2007 PaX Team 

- PaX flags: -----m-x-e-- [/home/cedegaska/exploit2/exploit]
        MPROTECT is disabled
        RANDEXEC is disabled
        EMUTRAMP is disabled

Na nézzük, akkor:

cedegaska@osconsfortress:~/exploit2$ ./run
padlina z lublina!
socket: Address family not supported by protocol

A fenébe...

Lehet, hogy nincs net ? pingeljünk egyet.:

cedegaska@osconsfortress:~$ ping hunger.hu
PING hunger.hu (xxx.yyy.zzz.aaa) 56(84) bytes of data.

A fene, net az van, csak te nem válaszolsz :-) / ip cimet azért kivettem, mégse legyen bent a gugli cacheben miattam /.

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

20:45 < Mizu> amiota ubuntu van azota csinalja
20:45 < Mizu> debian alatt nem csinalta
20:45 < Mizu> ott mukodott faszan

Már így is felengedtem a TPE-t, meg a network restrictiont hogy egyáltalán elinduljon a gönc

Már így is sokszor megbeszéltük, hogy a TPE mi és ki ellen véd(het), ne rágjuk át magunkat rajta újból.

még mit csináljak?

A `paxctl -m exploit` parancsot a támadó kiadhatná a saját gépén is és feltölthetné utána a binárist, úgyhogy ennek security szempontból jelentősége túlságosan nincs, hacsak nem enforcolod a mprotect korlátozásokat a grsec RBAC-ban. Persze akkor is kihasználható továbbra is egy olyan alkalmazáson keresztül, amelynél fel van oldva az mprotect restrictions.

Hagyjam a kulcsot a zárban? Root ként futtassam, vagy mi kéne még ? Indítsak különféle server processzeket, iptablest totál accept re állítsam, vagy még mi kéne?

Ügyes vagy, hogy megtudod patchelni a grsec-kel a kernelt, ezt akarod hallani? ;)

De lásd kivel van dolgot, még ezt is megtettem, csak a te kedvedért

Az én kedvemért nem kell ezt megtenni, csak jelezni szerettem volna, hogy miért van a hibaüzenet és azt hogyan lehet feloldani, mert láthatólag nem értetted. Ahogy ezt se:

socket: Address family not supported by protocol


A fenébe... Lehet, hogy nincs net ?

Nem, az üzenet csak azt jelzi, hogy az adott protocol nem támogatott (jelen esetben a PPP over X). Érthető módon nem fordított be a kernelbe ennek támogatását, mert nincs rá szükséged. A sebezhetőség ettől még kihasználható más 'attack vector'-on keresztül is, pl. INET6).

Persze neked nyilván azon keresztül se lehet kihasználni, mert használsz grsec-et, amiben van PaX KERNEXEC és ez megfogja az összes ilyen jellegű kernel hibának a kihasználását.

Úgyhogy igen, biztonságban vagy ez ellen a kernel sebezhetőség ellen is, járhatsz örömödben indiántáncot. :)

Ehh. ma nem vagy humorodnál látom :)

Én csak egy egységsugarú melós vagyok, én csak próbálkozok itten a hírek alapján, nem értem én ezeket az elvont fogalmakat. De hát csak nem akar sikerülni. ;-)

A sebezhetőség ettől még kihasználható más 'attack vector'-on keresztül is, pl. INET6).

Aszittem ennél jobban ismerjük már egymást. ipv6 az egységsugarú melósnak ? valami más protokoll esetleg ? (nem, ha arra gondolsz, akkor sctp sincs)

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

20:45 < Mizu> amiota ubuntu van azota csinalja
20:45 < Mizu> debian alatt nem csinalta
20:45 < Mizu> ott mukodott faszan

Táncolj Oscon, táncolj!

 \0/   \0_   _0_   _0|  \/           JEEEE JEEEE JEEEE, nem vagyok érintett,
  |     |     |     |   |            mert képes vagyok megpatchelni a kernelt
 /|     |\    |\   /|   |0  0-/-/    és átírni a -grsec stringet -oscon -ra!

LOL

Kar hogy nem a skype-s animalt :D -t tudom ide beszurni.
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

HSZ törölve más topicban Hunger által elkövetett gerinctelen személyeskedés miatt.

http://milw0rm.com/exploits/9436

Ha villanyt oltasz a sötétnek
És halkan kicipzározod őt
És magadba rakod a régi semmit
A megszokott soha el nem jövőt

http://szolarenergia.hu