The OpenNET Project / Index page

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

Уязвимость в Glibc ld.so, позволяющая поднять свои привилегии в системе

12.12.2017 13:31

Компания Qualys выявила две уязвимости в системной библиотеке GNU libc. Первая проблема (CVE-2017-1000408) проявляется начиная с glibc 2.1.1 и может привести к утечке содержимого памяти процессов через манипуляцию с переменной окружения LD_HWCAP_MASK. Вторая уязвимость (CVE-2017-1000409) затрагивает выпуски начиная с glibc 2.5 и может привести к повышению своих привилегий в системе.

Уязвимость вызвана переполнением буфера в компоновщике ld.so и может быть эксплуатирована через указание специально подобранных данных в переменной LD_LIBRARY_PATH перед запуском suid-программ. Для эксплуатации переполнения буфера локальный атакующий должен иметь возможность создания жесткой ссылки на исполняемый SUID-файл в каталог, содержащий двоеточие в имени. Также требуется, чтобы применяемая в дистрибутиве версия ld.so передавала переменную окружения LD_LIBRARY_PATH в функцию _dl_init_paths().


   $ mkdir -p '/var/tmp/:/lib:/usr/lib:'
   $ cd '/var/tmp/:/lib:/usr/lib:'
   $ env -i LD_LIBRARY_PATH='$ORIGIN/../../../../../../../../$LIB' LD_PRELOAD='os-release:rootshell.so' 
LD_HWCAP_MASK="$(((1<<25)-1))" ./su

   ERROR: ld.so: object 'os-release' from LD_PRELOAD cannot be preloaded (invalid ELF header): ignored.

   # id
   uid=0(root) gid=0(root) 

Уязвимость проявляется только если не активна опция /proc/sys/fs/protected_hardlinks, которая включена по умолчанию в большинстве дистрибутивов, но отключена в настройках ванильного ядра Linux. Проблема также не проявляется в Glibc 2.26 и системах, в которых установлены патчи для устранения летней уязвимости CVE-2017-1000366. Несмотря на то, что в дистрибутивах проблема CVE-2017-1000409 пока помечена как неисправленная, в большинстве систем она не проявляется, так как в обновлениях ещё летом были предложены патчи с устранением уязвимости CVE-2017-1000366 в Glibc, также блокирующие и нынешнюю проблему.

  1. Главная ссылка к новости (http://seclists.org/oss-sec/20...)
  2. OpenNews: Для Glibc представлен еще один метод повышения привилегий
  3. OpenNews: Раскрыты детали атаки Stack Сlash и 15 root-эксплоитов для разных ОС
  4. OpenNews: Критическая уязвимость в Glibc, которая может привести к удалённому выполнению кода в Linux
  5. OpenNews: Удалённо эксплуатируемая уязвимость в Glibc, охватывающая большинство сетевых приложений в Linux
  6. OpenNews: Переполнение буфера в функции glob из состава Glibc
Лицензия: CC-BY
Тип: Проблемы безопасности
Короткая ссылка: https://opennet.ru/47722-glibc
Ключевые слова: glibc, ld.so
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (42) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 13:34, 12/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Все на musl! Пока чуваки на чёрных вертолётах о нём не прочитали
     
     
  • 2.11, Аноним (-), 14:42, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    CVE-2017-15650, CVE-2016-8859, CVE-2015-1817, CVE-2014-3484 - мы работаем над этим.
     

  • 1.2, Аноним (-), 13:38, 12/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Ушел пересобирать ядро
     
     
  • 2.10, анонисмус (?), 14:26, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    *дистрибутив пересобери
     
  • 2.47, Michael Shigorin (ok), 20:16, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Ушел пересобирать ядро

    Ещё припарки попробуйте от непонимания.

     
     
  • 3.64, pavlinux (ok), 17:22, 13/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > ... от непонимания.

    А почитать?

    > Уязвимость проявляется только если не активна опция /proc/sys/fs/protected_hardlinks,
    > ...., но отключена в настройках ванильного ядра Linux.




    From: Ben Hutchings <ben@decadent.org.uk>
    Subject: fs: Enable link security restrictions by default
    Date: Fri, 02 Nov 2012 05:32:06 +0000
    Bug-Debian: https://bugs.debian.org/609455
    Forwarded: not-needed

    This reverts commit 561ec64ae67ef25cac8d72bb9c4bfc955edfd415
    ('VFS: don't do protected {sym,hard}links by default').

    --- a/fs/namei.c
    +++ b/fs/namei.c
    @@ -651,8 +651,8 @@ static inline void put_link(struct namei
    path_put(link);
    }

    -int sysctl_protected_symlinks __read_mostly = 0;
    -int sysctl_protected_hardlinks __read_mostly = 0;
    +int sysctl_protected_symlinks __read_mostly = 1;
    +int sysctl_protected_hardlinks __read_mostly = 1;


    /**
      * may_follow_link - Check symlink following for unsafe situations



     

  • 1.3, Юрий (??), 13:41, 12/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Gentoo Linux 4.11.0-pf3
    glibc 2.26-r3


    не фурычет уязвимость

     
     
  • 2.46, Аноним (-), 19:19, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чучка не читатель, чукча писатель? В новости черным по белому написано:
    > Проблема также не проявляется в Glibc 2.26
     
     
  • 3.49, Аноним (-), 21:08, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +8 +/
    У него нет времени читать, он компилит же!
     
     
  • 4.51, Юрий (??), 21:39, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Не, венду очередной раз переустанавливаю.
     
  • 3.50, Юрий (??), 21:38, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот почему некоторые чукчи считают что предложения читать надо до запятой?
    "Проблема также не проявляется в Glibc 2.26 и системах, в которых установлены патчи для устранения летней уязвимости CVE-2017-1000366."
     
     
  • 4.60, Andrey Mitrofanov (?), 11:23, 13/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот почему некоторые чукчи считают что предложения читать надо до запятой?
    > "Проблема также не проявляется в Glibc 2.26 и системах, в которых установлены
    > патчи для устранения летней уязвимости CVE-2017-1000366."

    Чорд!

    " Уязвимость проявляется только если не активна опция /proc/sys/fs/protected_hardlinks, которая включена по умолчанию в большинстве дистрибутивов, но отключена в настройках ванильного ядра Linux. "


    # cat /proc/sys/fs/protected_hardlinks
    1
    # _

    --Я наследный зимбабвийский сикплойт. Пожалуйста пересоберите, перезагрузите ядро и запустите мина с-под рутом!1

     

  • 1.5, Аноним (-), 13:53, 12/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    env: ./su: No such file or directory

    :(

     
     
  • 2.9, Andrey Mitrofanov (?), 14:23, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > env: ./su: No such file or directory
    > :(

    ..."локальный атакующий должен иметь возможность создания жесткой ссылки на исполняемый SUID-файл в каталог, содержащий двоеточие в имени."

    Делай, как я:

    ...:/var/tmp/:/lib:/usr/lib:$ ln $(which su) .
    ln: не удалось создать жёсткую ссылку «./su» => «/bin/su»: Неверная ссылка между устройствами
    ...:/var/tmp/:/lib:/usr/lib:$ _


    ---Здравствуйте, я зимбабвийский наследный иксплойт. Пож, запустите меня рутом.

     
     
  • 3.19, Аноним (-), 15:55, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Неверная ссылка между устройствами
    > Пож, запустите меня рутом.

    И как тебе рут в данном случае поможет? Делай ссылку в /tmp, если он у тебя не в tmpfs, конечно.

     
     
  • 4.22, Аноним (-), 16:14, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > если он у тебя не в tmpfs, конечно.

    Расходимся, ребят. Опять мимо :(

    Для справки: почти все дистрибутивы держат /tmp в tmpfs и более того, он noexec.

     
     
  • 5.24, Аноним (-), 16:47, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > почти все дистрибутивы держат /tmp в tmpfs

    Далеко не все.

    > более того, он noexec

    А это вообще крайне редко (полагаю, что по умолчанию — вообще нигде).

    В случае чего есть ещё /var/tmp. Можешь начинать рассказывать, что у тебя и /var отдельно смонтирован.

     
     
  • 6.28, Andrey Mitrofanov (?), 17:01, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > В случае чего есть ещё /var/tmp. Можешь начинать рассказывать, что у тебя
    > и /var отдельно смонтирован.

    Пора /bin отдельно монтировать!!111

     
  • 6.33, Аноним (-), 17:09, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Можешь начинать рассказывать, что у тебя
    > и /var отдельно смонтирован.

    По умолчанию даже netinstall это делает, пока не скажешь делать по другому. Хорошо, все крупные дистрибутивы это делают, в том числе Debian. Так лучше?

     
     
  • 7.39, Аноним (-), 17:36, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Хорошо, все крупные дистрибутивы это делают, в том числе Debian. Так лучше?

    Нет, не лучше. Лучше писать правду.

     
  • 7.54, Аноним (-), 01:31, 13/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Debian этого не делает и более того апт сыплет ошибками если /tmp смонтирован с noexec
     
  • 4.26, Andrey Mitrofanov (?), 16:59, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> Неверная ссылка между устройствами
    >> Пож, запустите меня рутом.
    > И как тебе рут в данном случае поможет? Делай ссылку в /tmp,
    > если он у тебя не в tmpfs, конечно.

    Не-не, мне не надо. Не надо мне помогать.

    ...нет, не tmpfs, но да:
    ln: не удалось создать жёсткую ссылку «/tmp/su» => «/bin/su»: Неверная ссылка между устройствами

     
  • 3.40, Аноним (-), 17:38, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну сделайте вы папочку в хомяке. Наверняка же он на одном устройстве с /
     
     
  • 4.43, Andrey Mitrofanov (?), 17:43, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну сделайте вы папочку в хомяке. Наверняка же он на одном устройстве
    > с /

    Красная площадь, б.!


    user:~$ ln $(which su) .
    ln: не удалось создать жёсткую ссылку «./su» => «/bin/su»: Неверная ссылка между устройствами
    user:~$ _

     
     
  • 5.55, Аноним (-), 01:34, 13/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Ну сделайте вы папочку в хомяке. Наверняка же он на одном устройстве
    >> с /
    > Красная площадь, б.!
    > user:~$ ln $(which su) .
    > ln: не удалось создать жёсткую ссылку «./su» => «/bin/su»: Неверная
    > ссылка между устройствами
    > user:~$ _

    Это называет "руки из жопы". Эксплойт нормально запустить не может! Ж)

     
     
  • 6.59, Andrey Mitrofanov (?), 11:17, 13/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >>> Ну сделайте вы папочку в хомяке. Наверняка же он на одном устройстве
    >>> с /
    >> Красная площадь, б.!
    >> user:~$ ln $(which su) .
    >> ln: не удалось создать жёсткую ссылку «./su» => «/bin/su»: Неверная
    >> ссылка между устройствами
    >> user:~$ _
    > Это называет "руки из жопы". Эксплойт нормально запустить не может! Ж)

    Да-да, конечно-конечно, только не расстраивайся так.

    user@ghost:~$ mkdir -p '/czar/tmp/:/lib:/usr/lib:'
    user@ghost:~$ find /czar/tmp/
    /czar/tmp/
    /czar/tmp/:
    /czar/tmp/:/lib:
    /czar/tmp/:/lib:/usr
    /czar/tmp/:/lib:/usr/lib:
    user@ghost:~$ cd '/czar/tmp/:/lib:/usr/lib:'
    user@ghost:/czar/tmp/:/lib:/usr/lib:$ ln $(wich su) .
    bash: wich: команда не найдена
    ln: «.»: не допускается создавать жёсткие ссылки на каталоги
    user@ghost:/czar/tmp/:/lib:/usr/lib:$ ln $(which su) .
    ln: не удалось создать жёсткую ссылку «./su» => «/bin/su»: Операция не позволяется
    .
    .
    .
    root@novy:/czar/tmp/:/lib:/usr/lib:# ln $(which su) .
    root@novy:/czar/tmp/:/lib:/usr/lib:# _
    .
    .
    .
    user@ghost:/czar/tmp/:/lib:/usr/lib:$ env -i LD_LIBRARY_PATH='$ORIGIN/../../../../../../../../$LIB' LD_PRELOAD='os-release:rootshell.so' LD_HWCAP_MASK="$(((1<<25)-1))" ./su
    ERROR: ld.so: object 'os-release' from LD_PRELOAD cannot be preloaded: ignored.
    ERROR: ld.so: object 'rootshell.so' from LD_PRELOAD cannot be preloaded: ignored.
    Password: _


    Не быть мне хаксором.  Как бы вам :-P этого ни хотелось.

     

  • 1.7, Юрий (??), 14:06, 12/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Как всегда. Уязвимость, которая себя может проявить с вероятностью 0.00000001. На каком нибудь экзотическом дистрибутиве с криворуким одмином.
     
  • 1.8, Аноним (-), 14:10, 12/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    LD_LIBRARY_PATH не игнорируется при suid?
     
     
  • 2.25, пох (?), 16:58, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    сначала парсится, потом игнори...уп-с, стек слетел.

    и так у нас все.

     

  • 1.13, optical character recognition (?), 15:05, 12/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    В systemd не пашет ;(
     
     
  • 2.14, Anonim (??), 15:09, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +15 +/
    > В systemd не пашет ;(

    В новой версии обещают сделать работоспособной.

     
     
  • 3.23, Аноним (-), 16:17, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> В systemd не пашет ;(
    > В новой версии обещают сделать работоспособной.

    systemd-exploitd

     
     
  • 4.32, Andrey Mitrofanov (?), 17:04, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >>> В systemd не пашет ;(
    >> В новой версии обещают сделать работоспособной.
    > systemd-exploitd

    sex-ploitd.

    Как в соседней микросовтовской про порчу пPокупок.

     
  • 2.48, Michael Shigorin (ok), 20:18, 12/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В systemd не пашет ;(

    Багу вешайте -- глядишь, исправят.

     

  • 1.42, Аноним (-), 17:43, 12/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Там ещё этот rootshell.so компилять... ну его
     
  • 1.52, Аноним (-), 00:57, 13/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >к утечке содержимого памяти процессов через манипуляцию с переменной окружения
    >переполнением буфера

    c-проблемы "гениальных" программистов

     
  • 1.53, Влад (??), 01:22, 13/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    SUID - зло
     
     
  • 2.57, Аноним (-), 09:14, 13/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > SUID - зло

    Так есть же linux capabilities.

     
     
  • 3.61, Andrey Mitrofanov (?), 11:25, 13/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> SUID - зло
    > Так есть же linux capabilities.

    И используются они (LD_HWCAP_MASK= наверху) во добро?

     
     
  • 4.62, Аноним (-), 12:28, 13/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >>> SUID - зло
    >> Так есть же linux capabilities.
    > И используются они (LD_HWCAP_MASK= наверху) во добро?

    Да, острые ножи требуют аккуратного, вдумчивого и ответственного использования. А если нет, то сейчас либо ножи затупят, либо ножны получше сделают.

     

  • 1.56, Аноним (-), 03:16, 13/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В дебиане и убунте не работает нифига, там protected_hardlinks прописаны.
     
  • 1.58, Аноним (-), 10:13, 13/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >/proc/sys/fs/protected_hardlinks

    у меня в ведре нет.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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