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

Címkék

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ások

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

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

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.

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?

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 :)

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.

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...

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.

 [+] 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.

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

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 <pageexec@freemail.hu>

- 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