LINUX.ORG.RU
ФорумTalks

В проприетарных драйверах NVIDIA обнаружена новая local root уязвимость

 , ,


2

4

В списке рассылки Full-Disclosure один из open source разработчиков из Intel опубликовал сообщение о том, что анонимный источник передал ему рабочий экземпляр эксплоита, который позволяет получить root-права любому локальному пользователю, который использует проприетарные драйверы для видеокарт NVIDIA.

Автор эксплоита послал сообщение об уязвимости в NVIDIA более месяца назад, однако, так и не получив ответа от компании, он передал код Dave Airlie. Эксплоит использует возможности устройства /dev/nvidia0, экспортируемого драйверами, которое позволяет менять параметры VGA-окна. Схема работы состоит в том, что программа двигает окна по экрану до тех пор, пока она не найдёт физическую область памяти, которая принадлежит ядру.

Используйте эксплоит на свой страх и риск - в прошлом уже была ситуация, когда под видом экплоита распространялся троян, который открывал на компьютере удалённый доступ к root shell.

вычитал тут -> http://www.opennet.ru/opennews/art.shtml?num=34466

★★★★★

Сегодня проверю у себя.

cruxish ★★★★
()

Не работает.



    brainfucker@FuckingComputer:/tmp$ sudo -u nobody ./nvidia-exploit.bin
    ./nvidia-exploit.bin: 1: ./nvidia-exploit.bin: /bin: Permission denied
    : not foundploit.bin: 2: ./nvidia-exploit.bin: *
    ./nvidia-exploit.bin: 3: ./nvidia-exploit.bin: CRX_75DAF8CB7768: not found
    : not foundploit.bin: 4: ./nvidia-exploit.bin: *
    ./nvidia-exploit.bin: 5: ./nvidia-exploit.bin: CRX_75DAF8CB7768: not found
    : not foundploit.bin: 6: ./nvidia-exploit.bin: *
    ./nvidia-exploit.bin: 7: ./nvidia-exploit.bin: CRX_75DAF8CB7768: not found
    ./nvidia-exploit.bin: 8: ./nvidia-exploit.bin: CRX_75DAF8CB7768: not found
    : not foundploit.bin: 9: ./nvidia-exploit.bin:
    : not foundploit.bin: 11: ./nvidia-exploit.bin:
    : not foundploit.bin: 12: ./nvidia-exploit.bin: */
    : not foundploit.bin: 13: ./nvidia-exploit.bin:
    : not foundploit.bin: 32: ./nvidia-exploit.bin:
    : not foundploit.bin: 38: ./nvidia-exploit.bin:
    : not foundploit.bin: 40: ./nvidia-exploit.bin:
    : not foundploit.bin: 48: ./nvidia-exploit.bin:
    ./nvidia-exploit.bin: 49: ./nvidia-exploit.bin: static: not found
    : not foundploit.bin: 49: ./nvidia-exploit.bin:
    ./nvidia-exploit.bin: 50: ./nvidia-exploit.bin: static: not found
    : not foundploit.bin: 50: ./nvidia-exploit.bin:
    : not foundploit.bin: 51: ./nvidia-exploit.bin:
    ./nvidia-exploit.bin: 52: ./nvidia-exploit.bin: Syntax error: "(" unexpected

firestarter ★★★☆
()

двигает окна по экрану до тех пор, пока она не найдёт физическую область памяти, которая принадлежит ядру.

лооол.

Bad_ptr ★★★★★
()

Не работает.

[*] IDT offset at 0xffffffff81968000
[*] Abusing nVidia...
[*] CVE-2012-YYYY
[*] 64-bits Kernel found at ofs 0
[*] Using IDT entry: 220 (0xffffffff81968dc0)
[*] Enhancing gate entry...
[*] Triggering payload...
[1]    19251 killed     ./a.out

xyzz
()
Ответ на: комментарий от winddos
artifth@whiteblade ~/src » whoami
artifth
artifth@whiteblade ~/src » ./expl
[*] 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

Artificial_Thought ★★★★
()

когда под видом экплоита распространялся троян

точнее эксплоит с недокументированными возможностями

true_admin ★★★★★
()
Ответ на: комментарий от krakatau

Для начала надо проверить работает ли эксплоит с grsecurity.
А то он вполне сможет сбежать на hardened gentoo.

winddos ★★★
()
Ответ на: комментарий от Artificial_Thought

brain@Brain-PC:~/Загрузки$ ./exp1.c
./exp1.c: строка 1: /bin: Это каталог
./exp1.c: строка 2: 1.mp3: команда не найдена
./exp1.c: строка 3: 1.mp3: команда не найдена
./exp1.c: строка 4: 1.mp3: команда не найдена
./exp1.c: строка 5: 1.mp3: команда не найдена
./exp1.c: строка 6: 1.mp3: команда не найдена
./exp1.c: строка 7: 1.mp3: команда не найдена
./exp1.c: строка 8: 1.mp3: команда не найдена
./exp1.c: строка 12: The.Last.Templar.BDRip.720p.mr.Doff/: Это каталог
./exp1.c: строка 49: static: команда не найдена
./exp1.c: строка 50: static: команда не найдена
./exp1.c: строка 52: ошибка синтаксиса около неожиданной лексемы `('
./exp1.c: строка 52: `static void poke_byte(volatile uint32_t *m, uint32_t ofs, uint8_t val)'

может надо откуда-то из другого места запускать ?

i_gnatenko_brain ★★★★
()
Ответ на: комментарий от Artificial_Thought

brain@Brain-PC:/tmp$ gcc exp1.c -v
Используются внутренние спецификации.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper
Целевая архитектура: x86_64-linux-gnu
Параметры конфигурации: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Модель многопоточности: posix
gcc версия 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/4.6/cc1 -quiet -v -imultilib . -imultiarch x86_64-linux-gnu exp1.c -quiet -dumpbase exp1.c -mtune=generic -march=x86-64 -auxbase exp1 -version -fstack-protector -o /tmp/cctNtfV2.s
GNU C (Ubuntu/Linaro 4.6.3-1ubuntu5) версия 4.6.3 (x86_64-linux-gnu)
скомпилировано GNU C версия 4.6.3, Версия GMP 5.0.2, версия MPFR 3.1.0-p3, версия MPC 0.9
эвристики GGC: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
несуществующий каталог «/usr/local/include/x86_64-linux-gnu» проигнорирован
несуществующий каталог «/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/include» проигнорирован
порядок поиска для #include "...":
порядок поиска для #include <...>:
/usr/lib/gcc/x86_64-linux-gnu/4.6/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.6/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
Конец списка поиска.
GNU C (Ubuntu/Linaro 4.6.3-1ubuntu5) версия 4.6.3 (x86_64-linux-gnu)
скомпилировано GNU C версия 4.6.3, Версия GMP 5.0.2, версия MPFR 3.1.0-p3, версия MPC 0.9
эвристики GGC: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 75e879ed14f91af504f4150eadeaa0e6
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=x86-64'
as --64 -o /tmp/cc2tN9Vn.o /tmp/cctNtfV2.s
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/4.6/collect2 --sysroot=/ --build-id --no-add-needed --as-needed --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.6/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. /tmp/cc2tN9Vn.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.6/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crtn.o

i_gnatenko_brain ★★★★
()

Чувак настолько крут, что может сишные проги без компиляции запускать, и логи сборки выкладывать вместо логов работы эксплоита (:

false ★★★★★
()
[penguin@arch Downloads]$ ./a.out 
[*] IDT offset at 0xffffffff81968000
[*] Abusing nVidia...
[*] CVE-2012-YYYY
[*] 64-bits Kernel found at ofs 0
[*] Using IDT entry: 220 (0xffffffff81968dc0)
[*] Enhancing gate entry...
[*] Triggering payload...
Убито
Dragon59 ★★
()

А можно поинтересовать, кто от моего имени на опеннете пишет?

Artificial_Thought ★★★★
()

Линус посылает нвидию -> нвидия делает бекдор и создает ботнет из линуксоидов, очевидно же :)

xorik ★★★★★
()

Хороший тред, срачегонный. ))

sluggard ★★★★★
()
[*] IDT offset at 0xc1606000
[*] Abusing nVidia...
[*] CVE-2012-YYYY
[*] 32-bits Kernel found at ofs 0
[*] Using IDT entry: 220 (0xc16066e0)
[*] Enhancing gate entry...
[*] Triggering payload...
[*] Hiding evidence...
callsetroot returned 1 (1)
[*] Failed to get root.

Fail. Версия 295.59.

BattleCoder ★★★★★
()

один из open source разработчиков из Intel опубликовал сообщение о том, что анонимный источник передал ему

Dave Airlie

Дэйв из красной шляпы.

Behem0th ★★★★★
()

косая приоритарщина, и эти люди потом рассказывают басни что главное что бы работало а не опенсорс.

Novell-ch ★★★★★
()
alex[~]$ gcc exp.c && ./a.out
[*] IDT offset at 0xc1c5d000
[*] Abusing nVidia...

:(

chinarulezzz ★★
()
$ ./a.out 
[*] IDT offset at 0xc09c1000
[*] Abusing nVidia...
[*] CVE-2012-YYYY
[*] 32-bits Kernel found at ofs 0
[*] Using IDT entry: 220 (0xc09c16e0)
[*] Enhancing gate entry...
[*] Triggering payload...
[*] Hiding evidence...
callsetroot returned 1 (1)
[*] Failed to get root.

Дрова 295.49 :)

Difrex ★★★★
()

работает

$ cat /proc/driver/nvidia/version 
NVRM version: NVIDIA UNIX x86_64 Kernel Module  280.13  Wed Jul 27 16:53:56 PDT 2011
GCC version:  gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC) 
[igor@sys-igorevich Downloads]$ ./a.out 
[*] IDT offset at 0xffffffff81ca3000
[*] Abusing nVidia...
[*] CVE-2012-YYYY
[*] 64-bits Kernel found at ofs 0
[*] Using IDT entry: 220 (0xffffffff81ca3dc0)
[*] Enhancing gate entry...
[*] Triggering payload...
[*] Hiding evidence...
[*] Have root, will travel..
sh-4.1# whoami 
root
sh-4.1# 

ukr_unix_user ★★★★
()

анонимный источник

Это, наверное, Линус успокоиться не может.

ukr_unix_user ★★★★
()
Ответ на: комментарий от BattleCoder

ядро?

Вполне возможно. На 3.4.4-3.fc17 3.5.0-2.fc17 у меня срабатывает.

Сами иксы вряд ли повлияют.

Kuzz ★★★
()

Тред о неосиливших gcc.

shahid ★★★★★
()

NVRM version: NVIDIA UNIX x86_64 Kernel Module 304.32 Thu Aug 2 18:41:39 PDT 2012

исправили вроде.

ukr_unix_user ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.