Показано с 1 по 4 из 4.

Повышение привилегий в ядре Linux

  1. #1
    Global Moderator Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для ALEX(XX)
    Регистрация
    31.03.2005
    Адрес
    Чернигов
    Сообщений
    10,777
    Вес репутации
    3704

    Повышение привилегий в ядре Linux

    17 июля, 2009

    Программа:
    Linux kernel 2.6.30

    Опасность:
    Низкая

    Наличие эксплоита:
    Да

    Описание:

    Уязвимость позволяет локальному пользователю повысить свои привилегии на системе.
    Уязвимость существует из-за ошибки разыменования нулевого указателя в функции tun_chr_pool() в файле drivers/net/tun.c. Локальный пользователь может выполнить произвольный код на целевой системе с привилегиями учетной записи root. Для успешной эксплуатации уязвимости ядро должно быть собрано с опцией GCC -fdelete-null-pointer-checks".

    URL производителя: www.kernel.org

    Решение:
    Установите исправление из GIT репозитория производителя

    securitylab.ru

    Уязвимость в ядре Linux позволяет получить повышенные привилегии


    Исходный код для эксплуатации весьма необычной уязвимости в ядре Linux был опубликован сегодня Бредом Спенглером (Brad Spengler) – автором модуля grsecurity.
    Что же необычного в уязвимости, позволяющей просто повысить привилегии? Дело в том, что при обычном анализе исходного кода эту уязвимость практически невозможно обнаружить. Технические подробности этой ошибки немного сложны, но можно просто объяснить, что именно происходит. Уязвимый код находится в реализации net/tun. Вот что здесь происходит: разработчик инициализирует переменную (sk в примере ниже), и устанавливает ее в значение, которое может быть равно нулю. Разработчик корректно проверяет значение переменной на несколько строк ниже и если переменная равно 0 (нулю), возвращается ошибка. Код выглядит следующим образом:
    struct sock *sk = tun->sk; // initialize sk with tun->sk

    if (!tun)
    return POLLERR; // if tun is NULL return error

    Код выглядит корректно с первого взгляда. Но это до того, как компилятор начнет работать с этим кодом. При оптимизации кода, компилятор увидит, что значение переменной уже присвоено и просто удалит блок IF. Другими словами, компилятор создаст уязвимость в бинарном коде, которой не существует в исходном. Нововведение, произведенное компилятором, позволит ядру прочитать и записать данные по адресу 0x00000000, который атакующий затем сможет перенаправить в пространство пользователя и получить привилегии root на системе.
    Опубликованный эксплоит способен обойти защиту разыменования нулевого указателя в ядре, на системах с SELinux и без него, и отключить SELinux/AppArmor/LSM/auditing.
    Описание уязвимости доступно по адресу:
    http://www.securitylab.ru/vulnerability/382676.php
    Скачать эксплоит можно по адресу:
    http://grsecurity.net/~spender/cheddar_bay.tgz
    Зеркало SecurityLab.ru
    http://www.securitylab.ru/poc/382675.php


    Видео с демонстрацией эксплоита:
    http://www.youtube.com/watch?v=UdkpJ...layer_embedded
    Left home for a few days and look what happens...

  2. Реклама
     

  3. #2
    Senior Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для Lexxus
    Регистрация
    27.10.2006
    Адрес
    г. Химки
    Сообщений
    494
    Вес репутации
    410
    Уязвимость позволяет локальному пользователю повысить свои привилегии на системе
    Я, конечно, сильно извиняюсь, но...
    зачем такие сложности? Разве su (sudo su, sudo bash... ) отменили?

    P.S. "Сплойт" пофиксили еще 2 недели назад

  4. #3
    Global Moderator Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для ALEX(XX)
    Регистрация
    31.03.2005
    Адрес
    Чернигов
    Сообщений
    10,777
    Вес репутации
    3704
    Цитата Сообщение от Lexxus Посмотреть сообщение
    Я, конечно, сильно извиняюсь, но...
    зачем такие сложности? Разве su (sudo su, sudo bash... ) отменили?

    P.S. "Сплойт" пофиксили еще 2 недели назад
    Ну да.. То есть пришёл левый юзер, набрал sudo и сразу получиль права рута? Сочувствую, если у кого-то в системе это так
    Left home for a few days and look what happens...

  5. #4
    Junior Member Репутация
    Регистрация
    05.02.2009
    Сообщений
    2
    Вес репутации
    29
    Цитата Сообщение от ALEX(XX) Посмотреть сообщение
    Для успешной эксплуатации уязвимости ядро должно быть собрано с опцией GCC -fdelete-null-pointer-checks".
    А зачем такую опасную оптимизацию включать?
    Она ВСЕ проверки указателей на NULL поубивает.

    http://gcc.gnu.org/ml/gcc-help/2002-11/msg00133.html

Похожие темы

  1. Повышение привилегий в ядре Linux
    От ALEX(XX) в разделе Уязвимости
    Ответов: 0
    Последнее сообщение: 20.10.2008, 21:53
  2. Повышение привилегий в ядре Linux
    От ALEX(XX) в разделе Уязвимости
    Ответов: 1
    Последнее сообщение: 12.02.2008, 09:29
  3. Повышение привилегий в ядре Linux
    От ALEX(XX) в разделе Уязвимости
    Ответов: 0
    Последнее сообщение: 08.10.2007, 14:36
  4. Повышение привилегий в ядре Linux
    От ALEX(XX) в разделе Уязвимости
    Ответов: 0
    Последнее сообщение: 27.09.2007, 12:37
  5. Повышение привилегий в ядре Linux
    От ALEX(XX) в разделе Уязвимости
    Ответов: 0
    Последнее сообщение: 10.08.2007, 23:13

Метки для этой темы

Свернуть/Развернуть Ваши права в разделе

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Page generated in 0.00832 seconds with 20 queries