The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"В ядре Linux 3.8 выявлена уязвимость"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"В ядре Linux 3.8 выявлена уязвимость"  +/
Сообщение от opennews (ok) on 14-Мрт-13, 10:33 
В списке рассылки oss-security опубликован (http://www.openwall.com/lists/oss-security/2013/03/13/8) концептуальный прототип эксплоита (http://stealth.openwall.net/xSports/clown-newuser.c), демонстрирующего новую уязвимость в ядре Linux, позволяющую непривилегированному пользователю, имеющему привилегированный доступ в изолированном контейнере, получить права root во внешней системе. Проблема проявляется только в ядре 3.8 (http://www.opennet.me/opennews/art.shtml?num=36153), в котором появилась возможность применения пространств имён для непривилегированных пользователей. Исправление пока доступно в виде патча (https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux....). Проблема не проявляется при использовании sysctl fs.protected_hardlinks=1.


Уязвимость вызвана недопустимостью комбинации флагов CLONE_NEWUSER и CLONE_FS при клонировании процесса, что позволяет нескольким процессам, работающим в разных пространствах имён, совместно использовать одну корневую директорию после манипуляций с созданием chroot и корректировки данных в /proc/pid/uid_map.


URL: http://www.openwall.com/lists/oss-security/2013/03/13/8
Новость: http://www.opennet.me/opennews/art.shtml?num=36391

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "В ядре Linux 3.8 выявлена уязвимость"  +11 +/
Сообщение от бедный буратино (ok) on 14-Мрт-13, 10:33 
Опять массовая? Только в этом случае пострадавших уже четверо, а не как в прошлый раз?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "В ядре Linux 3.8 выявлена уязвимость"  +6 +/
Сообщение от Аноним (??) on 14-Мрт-13, 11:34 
Она не может быть массовой. Так как 3.8 в продакшене на серверах используют только самые упоротые.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "В ядре Linux 3.8 выявлена уязвимость"  –1 +/
Сообщение от NickFaces (ok) on 14-Мрт-13, 11:43 
Да и даже в арчике то все еще 3.7 ядрышко. Так что как обычно, пока на него перейдет народ уже более менее все залатают.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

18. "В ядре Linux 3.8 выявлена уязвимость"  +/
Сообщение от pavlinux (ok) on 14-Мрт-13, 14:12 
3.8 следует пропустить, оно ваще поддерживаться не будет.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

2. "В ядре Linux 3.8 выявлена уязвимость"  +8 +/
Сообщение от G.NercY.uR on 14-Мрт-13, 10:47 
Идёт нескончаемая борьба пытливых умов с руками разработчиков.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "В ядре Linux 3.8 выявлена уязвимость"  +/
Сообщение от АнОним on 14-Мрт-13, 11:48 
И продолжается с переменным успехом :)
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

20. "В ядре Linux 3.8 выявлена уязвимость"  –1 +/
Сообщение от nrndda on 14-Мрт-13, 15:02 
14:55|nrndda@nrndda-core ~ $ grep -i namespace /usr/src/linux/.config
CONFIG_NAMESPACES=y
14:55|nrndda@nrndda-core ~ $ cc -Wall clown-newuser.c -static
14:55|nrndda@nrndda-core ~ $ ./a.out
[**] clown-newuser -- CLONE_NEWUSER local root (C) 2013 Sebastian Krahmer

[+] Found myself: '/home/nrndda/a.out'
[*] Parent waiting for boomsh to appear ...
[*] Setting up chroot ...
[+] Done.
[*] Cloning evil child ...
[-] clone: Invalid argument

^C
14:56|nrndda@nrndda-core ~ $ uname -a
Linux nrndda-core 3.8.2-gentoo #3 SMP PREEMPT Tue Mar 5 19:25:13 MSK 2013 x86_64 Intel(R) Core(TM)2 Duo CPU E4700 @ 2.60GHz GenuineIntel GNU/Linux
14:59|nrndda@nrndda-core ~ $ sudo sysctl -a | grep protected_hardlinks
fs.protected_hardlinks = 0

Второй запуск приводит к:
15:00|nrndda@nrndda-core ~ $ ./a.out
[**] clown-newuser -- CLONE_NEWUSER local root (C) 2013 Sebastian Krahmer

[+] Found myself: '/home/nrndda/a.out'
[*] Parent waiting for boomsh to appear ...
[*] Setting up chroot ...
[-] link: File exists

В чём дело? Почему не работает...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "В ядре Linux 3.8 выявлена уязвимость"  –1 +/
Сообщение от nrndda (ok) on 14-Мрт-13, 15:12 
Кстати, домашняя папка расположена не на отдельном разделе.
15:09|nrndda@nrndda-core ~ $ mount | grep -iE "home"
/dev/sdb3 on /home/nrndda/temp type ext4 (rw,relatime,commit=60,data=ordered)
/dev/sdb3 on /home/nrndda/git type ext4 (rw,relatime,commit=60,data=ordered)
/dev/sdb3 on /home/nrndda/Progs type ext4 (rw,relatime,commit=60,data=ordered)
/dev/sdb3 on /home/nrndda/Games type ext4 (rw,relatime,commit=60,data=ordered)
/dev/sdb3 on /home/ni4ei type ext4 (rw,relatime,commit=60,data=ordered)
/dev/sdb3 on /home/portage type ext4 (rw,relatime,commit=60,data=ordered)
10.0.0.2:/ on /home/FTP type nfs4 (rw,nosuid,nodev,relatime,vers=4.0,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=30,retrans=2,sec=sys,clientaddr=10.0.0.3,local_lock=none,addr=10.0.0.2)

P.S. Такие странные mount из-за ssd. На hdd сбрасываются срезы(rsync) с ssd каждый час и некоторые папки находятся только на нём.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

22. "В ядре Linux 3.8 выявлена уязвимость"  –1 +/
Сообщение от nrndda (ok) on 14-Мрт-13, 15:18 
Останавливается тут:
    pid = clone(child, child_stack + sizeof(child_stack),
                CLONE_NEWUSER|CLONE_FS|SIGCHLD, NULL);
    if (pid == -1)
        die("[-] clone");
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

23. "В ядре Linux 3.8 выявлена уязвимость"  +/
Сообщение от pavlinux (ok) on 14-Мрт-13, 15:31 
$ cat /usr/src/linux/.config | grep CONFIG_USER_NS ?
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

25. "В ядре Linux 3.8 выявлена уязвимость"  –1 +/
Сообщение от nrndda (ok) on 14-Мрт-13, 15:51 
> $ cat /usr/src/linux/.config | grep CONFIG_USER_NS ?

Нету его в .config. Тем более:
Depends on: NAMESPACES [=y] && EXPERIMENTAL [=y] && UIDGID_CONVERTED [=n]
Последнее так же непонятно где включается...

В init/Kconfig стоит вот что:
config UIDGID_CONVERTED
        # True if all of the selected software conmponents are known
        # to have uid_t and gid_t converted to kuid_t and kgid_t
        # where appropriate and are otherwise safe to use with
        # the user namespace.
        bool
        default y

        # Networking
        depends on NET_9P = n

        # Filesystems
        depends on 9P_FS = n
        depends on AFS_FS = n
        depends on CEPH_FS = n
        depends on CIFS = n
        depends on CODA_FS = n
        depends on GFS2_FS = n
        depends on NCP_FS = n
        depends on NFSD = n
        depends on NFS_FS = n
        depends on OCFS2_FS = n
        depends on XFS_FS = n

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

26. "В ядре Linux 3.8 выявлена уязвимость"  +1 +/
Сообщение от pavlinux (ok) on 14-Мрт-13, 16:10 
> Последнее так же непонятно где включается...

"В Linux даже под эксплойты надо ядро перекомпилировать" (с) :)

Вот эти все выключи:

# Networking
        depends on NET_9P = n

# Filesystems
        depends on 9P_FS = n
        depends on AFS_FS = n
        depends on CEPH_FS = n
        depends on CIFS = n
        depends on CODA_FS = n
        depends on GFS2_FS = n
        depends on NCP_FS = n
        depends on NFSD = n
        depends on NFS_FS = n
        depends on OCFS2_FS = n
        depends on XFS_FS = n   # я не могу, у меня XFS везде, пичалька :(

---
Собственно из этого мини-анализа можно сделать вывод:

  Пользователям файловых систем: Plan9, AFS, CEPH, CIFS, CODA, GFS2, NCP, NFS, OCFS2 и XFS
этот эксплойт и дыра НЕ ОПАСНЫ и бесполезны.  
  

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

29. "В ядре Linux 3.8 выявлена уязвимость"  +/
Сообщение от nrndda (ok) on 14-Мрт-13, 16:29 
Да, без NFS и CIFS можно включить CONFIG_USER_NS.
Но без первого я уже не могу обойтись. Сервак с файлохранилищем там у меня..

Паника отменяется:)

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

28. "(offtopic) ext4 на ssd"  +/
Сообщение от Michael Shigorin email(ok) on 14-Мрт-13, 16:28 
> P.S. Такие странные mount из-за ssd.

Гм, а не лучше ли тогда min_batch_time в несколько тысяч выставить?

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

31. "(offtopic) ext4 на ssd"  +/
Сообщение от nrndda (ok) on 14-Мрт-13, 16:41 
Для ssd стоит. Для hdd поставил, гляну на результат.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

32. "(offtopic) ext4 на ssd"  –1 +/
Сообщение от Michael Shigorin email(ok) on 14-Мрт-13, 17:36 
> Для ssd стоит.

В #21 только commit просто был.

> Для hdd поставил, гляну на результат.

Там-то зачем...

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

33. "(offtopic) ext4 на ssd"  +/
Сообщение от nrndda (ok) on 14-Мрт-13, 20:13 
ssd у меня - /dev/sda. Там стоит в опциях следующее: noatime, nodiratime, min_batch_time=20000, max_batch_time=40000,commit=60,discard,errors=remount-ro

hdd монтируется в /mnt/hdd1 (root) и /mnt/hdd2 (home), а потом с помощью bind монтируются некоторые каталоги поверх корня под ssd.

В кроне стоят правила синхронизации sdd и hdd.
0 */2 * * * ${RSYNC} --delete -a --exclude={/dev/*,/home/*,/media/*,/mnt/*,/proc/*,/run/*,/sys/*,/tmp/*,/var/log/*,/usr/portage/distfiles/*,/lost+found/*} / /mnt/hdd1/
5 */2 * * * ${RSYNC} --delete -a --exclude={/FTP/*,/portage/*,/ni4ei/*,/nrndda/Music/*,/nrndda/Games/*,/nrndda/Progs/*,/nrndda/git*,/nrndda/temp/*,/lost+found/*} /home/ /mnt/hdd2/

В результате получаем надёжную систему вне зависимости от выхода из строя ssd. Так как это был мой первый опыт с ssd, то я посчитал достаточным такой подход.
За 4-е месяца:
9 Power_On_Hours_and_Msec 0x0032   099   099   000    Old_age   Always - 1682h+47m+22.820s
12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always  -       162
230 Life_Curve_Status       0x0013   100   100   000    Pre-fail  Always -       100
231 SSD_Life_Left           0x0013   100   100   010    Pre-fail  Always -       0
241 Lifetime_Writes_GiB     0x0032   000   000   000    Old_age   Always -       636
242 Lifetime_Reads_GiB      0x0032   000   000   000    Old_age   Always -       1386

P.S. Выставление min_batch_time и max_batch_time для hdd снизило подтормаживания при синхронизации каталогов rsync'ом. Теперь полностью доволен;)

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

35. "(offtopic) ext4 на ssd"  +1 +/
Сообщение от Michael Shigorin email(ok) on 14-Мрт-13, 23:04 
> Так как это был мой первый опыт с ssd, то я посчитал достаточным такой подход.

Один работает уже три года без trim (старое ядро), второй такой же -- два+ года с trim и довольно активно, третий -- два+ месяца тоже с trim.  Живы пока все три.

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

24. "В ядре Linux 3.8 выявлена уязвимость"  +/
Сообщение от pavlinux (ok) on 14-Мрт-13, 15:41 
У меня ваще жопа!

$ gcc -Wall clown-newuser.c -static
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "В ядре Linux 3.8 выявлена уязвимость"  –1 +/
Сообщение от Аноним (??) on 14-Мрт-13, 16:26 
юзай ldconfig для перестройки кеша
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

30. "В ядре Linux 3.8 выявлена уязвимость"  +/
Сообщение от pavlinux (ok) on 14-Мрт-13, 16:35 
man ldconfig
man gcc на предмет -static
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

36. "В ядре Linux 3.8 выявлена уязвимость"  +/
Сообщение от Карбофос (ok) on 15-Мрт-13, 00:50 
статически собранное? не, не слышал
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

34. "В ядре Linux 3.8 выявлена уязвимость"  –1 +/
Сообщение от linux must _RIP_ on 14-Мрт-13, 21:08 
> Проблема проявляется только в ядре 3.8,

проблема есть в SLES10, потом не подвержены, потом начиная с ~3.6.

commit 5eaf563e53294d6696e651466697eb9d491f3946
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Mon Nov 21 17:22:31 2011 -0800

   userns: Allow unprivileged users to create user namespaces.
...
   Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
   

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

39. "В ядре Linux 3.8 выявлена уязвимость"  +/
Сообщение от Ващенаглухо email(ok) on 18-Мрт-13, 09:01 
$ ./clown-newuser
[**] clown-newuser -- CLONE_NEWUSER local root (C) 2013 Sebastian Krahmer

[+] Found myself: '/home/exploit/clown-newuser'
[*] Parent waiting for boomsh to appear ...
[*] Setting up chroot ...
[+] Done.
[*] Cloning evil child ...
[-] clone: Operation not permitted

И так висит...
^C

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

40. "В ядре Linux 3.8 выявлена уязвимость"  +/
Сообщение от pavlinux (ok) on 18-Мрт-13, 16:17 
> $ ./clown-newuser
> [**] clown-newuser -- CLONE_NEWUSER local root (C) 2013 Sebastian Krahmer
> [+] Found myself: '/home/exploit/clown-newuser'
> [*] Parent waiting for boomsh to appear ...
> [*] Setting up chroot ...
> [+] Done.
> [*] Cloning evil child ...
> [-] clone: Operation not permitted
> И так висит...
> ^C

$ strace -p `pidof clown-newuser`;

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру