The OpenNET Project / Index page

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

Во FreeBSD найдена локальная уязвимость, приводящая к повышению привилегий

01.12.2009 08:57

В версиях FreeBSD 7.1, 7.2, 8.0 подтверждено наличие опасной уязвимости, позволяющей локальному непривилегированному злоумышленнику выполнить код с правами суперпользователя.

Уязвимость вызвана возможностью, при выполнении suid-программы через функцию execl(), запуска с повышенными привилегиями _init блока сторонней библиотеки, загруженной злоумышленником через подстановку переменной окружения LD_PRELOAD. По умолчанию при выполнении suid программ производится очистка опасных переменных окружения, но из-за ошибки в коде проверки успешности операции очистки переменных, имелась возможность передачи LD_PRELOAD вкупе с некорректно оформленным окружением.

По предварительной информации уязвимости подвержены ветки FreeBSD 7.x и 8.x, для версий FreeBSD 4.x, 5.x и 6.x проблема не проявляется. Опасность уязвимости многократно возрастает из-за наличия в открытом доступе рабочего эксплоита при том, что официальное обновление FreeBSD планируется выпустить только завтра. Тем не менее, Colin Percival, ответственный за безопасность FreeBSD (FreeBSD Security Officer), выпустил предварительный вариант патча, блокирующего проявление уязвимости.

  1. Главная ссылка к новости (http://www.theregister.co.uk/2...)
Автор новости: kegf
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/24466-freebsd
Ключевые слова: freebsd, security
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (31) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, _Nick_ (ok), 11:35, 01/12/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • –14 +/
    Ну, дырка, всё понятно. У всех бывает.

    Но непонятно несколько иное:
    "...позволяющей локальному непривилегированному злоумышленнику выполнить код с правами суперпользователя."

    1. Почему человек, пользующий уязвимость - обязательно ЗЛОумышленник?
    2. Неужто "локальный непривилегированный _пользователь_" не может "выполнить код с правами..."?

    Как-то несколько предвзято в этой фразе насчёт тех, кто будет пользоваться дырой...

     
     
  • 2.9, User294 (ok), 13:55, 01/12/2009 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > 1. Почему человек, пользующий уязвимость - обязательно ЗЛОумышленник?

    Наверное потому что легитимному администратору не требуется повышать свои права через дыры а повышение прав обычным пользователем - это как правило нежелательная и вредная активность.

     
     
  • 3.20, _Nick_ (ok), 11:28, 02/12/2009 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >Наверное потому что легитимному администратору не требуется повышать свои права через дыры
    >а повышение прав обычным пользователем - это как правило нежелательная и
    >вредная активность.

    "Почему стол - деревянный?" - "Потому что, как правило, он деревянный"

    Ещё раз: почему обязательно _ЗЛО_умышленник если пользует дыру? Обязательно ли пользователь дыры замыслил зло?

     
     
  • 4.28, Xaionaro (ok), 08:38, 03/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Если я кому-то даю ограниченные права, я не хочу чтобы у него была возможность получить права суперпользователя... Хотя бы из-за наличия на данном компьютере некоторой конфеденциальной информации.
     
     
  • 5.32, _Nick_ (ok), 15:42, 03/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >...Хотя бы из-за наличия на данном
    >компьютере некоторой конфеденциальной информации.

    Ну, это понятно. Подобных причин можно найти не одну.


    >Если я кому-то даю ограниченные права, я не хочу чтобы у него
    >была возможность получить права суперпользователя...

    Да, возможно и не хотите. Но Ваше [не]желание - лишь источник
    Вашего управленческого воздействия на объект "Операционная система".
    Т.е. Вы - субъект управления, а ОС (ну, и компьютер) - объект[ы].

    И совсем уже неважно: то ли ваше качество управления этим объектом было недостаточным,
    чтобы не допустить неприемлемого вам его поведения,
    то ли Вы недостаточно понимаете и изучили поведение и устройство объекта управления,
    а потому делаете неверные прогнозы его поведения под Вашим управлением.
    В обоих случаях возможны срывы управления (т.е. катастрофическое и непредсказуемое _для_Вас_ его поведение).
    Это всё достаточно общая теория управления.
    Практически, в случае данной новости - самипрограммисты и администраторы недостаточно изучили объект, с которым они работают и не знали заранее о её таком свойстве, _непредвиденном_ для них заранее (пока систему в продакшн не поставили).

    Вобщем, нельзя сказать, что пользователь объективного свойста ОС - ЗЛОумышленник.
    Ведь вионвен в _непредсказуемости_ поведения системы для админа не он :) а те, кто не обладал достаточными качествами и знаниями того, чем управляют.

    В простонародии - это называется ССЗБ. Но видить проблему в себе для большинства сложнее, чем указать пальцем на некоего "негодяя", обернувшим поведение системы непредсказуемым для админа образом.

    Т.е. ключ новости в словах "недостаточная проверка переменных окружения". А соответственно, и продолжать логическую линию нужно в сторону "а что же делать, чтобы проверки всегда были _достаточными_?"...

     
  • 2.14, Karpion (ok), 14:48, 01/12/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Почему человек, пользующий уязвимость - обязательно ЗЛОумышленник?

    Потому что у добронамеренного пользователя нет причин использовать уязвимости.

     
     
  • 3.21, _Nick_ (ok), 11:31, 02/12/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Почему человек, пользующий уязвимость - обязательно ЗЛОумышленник?
    >
    >Потому что у добронамеренного пользователя нет причин использовать уязвимости.

    Так называемая "уязвимость" - это объективное свойство системы.
    Не вижу причин, человека, _правильно_ понимающего работу системы (т.е. её объективное поведение и свойства) - считать злым.
    Т.е. считать злым того, кто изпользует дыру - это зло _субъективное_, с точки зрения админа системы, и не более. Ничего другого в отношении пользователя дыры в самом общем случае сказать нельзя.

     
     
  • 4.27, terr0rist (ok), 16:16, 02/12/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Предлагаю Вам предложить исправить новость следующим образом:
    "Уязвимость вызвана возможностью, при выполнении suid-программы через функцию execl(), запуска с повышенными привилегиями _init блока сторонней библиотеки, загруженной злоумышленником *** и не только злоумышленником *** через подстановку переменной окружения LD_PRELOAD. По умолчанию при выполнении suid программ производится очистка опасных переменных окружения, но из-за ошибки в коде проверки успешности операции очистки переменных, имелась возможность передачи LD_PRELOAD вкупе с некорректно оформленным окружением. "

    *** отмечены исправления ***
    Так лучше? =)
    Вопрос же ведь не в том, кто как использует дыру, в том, что ЗЛОУМЫШЛЕННИК __МОЖЕТ__ использовать это в своих злоумышленных интересах.

     
     
  • 5.31, _Nick_ (ok), 15:26, 03/12/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Вопрос же ведь не в том, кто как использует дыру, в том,
    >что ЗЛОУМЫШЛЕННИК __МОЖЕТ__ использовать это в своих злоумышленных интересах.

    А при чём тут тогда фрибзд? :)
    Раз проблема в том, что ЗЛОумышленник МОЖЕТ изпользовать различные средства чтобы творить зло?

    >Предлагаю Вам предложить исправить новость следующим образом:
    >"Уязвимость вызвана возможностью...."

    Спасибо.

    Но я бы лишь больше сконцентрировал текст новости на описании объективного поведения
    ОС в тех или иных условиях, уйдя от разсуждений о том со злым, ли добрым умыслом _может_быть_ изпользована та или иная объективная способность системы (даже если эта способность не планировалась производителем). Примено так:
    "...недостаточная проверка переменных окружения позволяет выполнить произвольный код от имени владельца SUID бинаря. Достаточно лишь иметь права запуска этого бинаря.".

     

  • 1.2, SaveMeGood (ok), 11:53, 01/12/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    1. Вы используете дыры для решения административных задач?
    2. Там говориться не о _пользователе_, а о _злоумышленнике_.
     
     
  • 2.3, _Nick_ (ok), 12:07, 01/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >1. Вы используете дыры для решения административных задач?

    вопрос не по сути.
    По сути был бы: "а администратор сервера всегда - добро, а пользователь уязвимости - зло?"
    И вот на этот вопрос ответ: нет, это не всегда так, нужно смотреть для чего установлена и поддерживается система этим администратором (к примеру, задефейсить сайты какой-нить RIAA - это добро).

    >2. Там говориться не о _пользователе_, а о _злоумышленнике_.

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

     
     
  • 3.4, zazik (ok), 12:21, 01/12/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > И вот на этот вопрос ответ: нет, это не всегда так, нужно смотреть для чего установлена и поддерживается система этим администратором (к примеру, задефейсить сайты какой-нить RIAA - это добро).

    Цель оправдывает средства? Ну и чем же вы лучше их?

     
     
  • 4.7, _Nick_ (ok), 13:14, 01/12/2009 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > Ну и чем же вы лучше их?

    Они проявляют агрессию по отношению к невинным людям,
    а "мы" - по отношению к агрессору.

     
     
  • 5.17, Vertigo (ok), 09:11, 02/12/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты ничего не слышал про законы, которые не нужно нарушать?
     
     
  • 6.23, _Nick_ (ok), 11:37, 02/12/2009 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Ты ничего не слышал про законы, которые не нужно нарушать?

    Законно-незаконно и добро-зло - разнокачественности.

    Законодательство на Земле нонче, в основном, античеловечное,
    а потому, вполне легко можно насчитать 4 варианта ситуаций:
    - законное добро
    - незаконное добро
    - законное зло (думаю, никто не станет отрицать, что много чего есть злого, закреплённого юридически...)
    - незаконное зло

     
     
  • 7.25, Vertigo (ok), 11:52, 02/12/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Добро и зло - понятия относительные, ты это понимаешь? Стало быть, при принятии каких-то решений придётся неизменно вставать на чью-либо сторону в конфликте только для того, чтобы решить что добро, а что - зло. Чтобы избежать этого, человечество придумало законы. Неидеальное решение, куча проблем и т.д. и т.п., но оно как-то работает и позволяет избегать анархии. И всё время находится кто-то, кто Лучше Знает Как Надо. И говорит - фигня вопрос, я ща всё решу с позиции Добра и Зла, а также вечной Истины. А потом ему ставят такой, например, вопрос: А как будет добрее - поднять пенсии сейчас на 100 рублей, или вложить эти деньги в развитие и через полгода поднять на 1000?; или: А можно вершить самосуд из мести, если Ты Точно Знаешь (или Сто Пудов Уверен), что обидчик виноват?; или: А можно я вон тому мужику в репу дам - он косо на меня смотрит? И пока этот наш герой думает над этими вопросами, ему приходит время заканчивать завтрак и идти в школу.
     
     
  • 8.29, _Nick_ (ok), 14:10, 03/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Очень хорошо, что Вы сразу указали на расхождения в наших взглядах Я считаю, чт... большой текст свёрнут, показать
     
  • 3.10, szh (ok), 13:55, 01/12/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > к примеру, задефейсить сайты какой-нить RIAA - это добро

    Это зло.

    1 дефейсы они будут использовать для положительного пиара себя, мол борятся с силами зла в интернете

    2 им ни холодно ни жарко от этих дефейсов, у них бизнес не на это завязан.

     
  • 3.16, User294 (ok), 18:58, 01/12/2009 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > (к примеру, задефейсить сайты какой-нить RIAA - это добро).

    В каком-то роде вы правы. На самом деле все просто: даже зло бывает во благо :-).

     
     
  • 4.18, Vertigo (ok), 09:15, 02/12/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> (к примеру, задефейсить сайты какой-нить RIAA - это добро).
    >
    >В каком-то роде вы правы. На самом деле все просто: даже зло
    >бывает во благо :-).

    Я с вас фигею, граждане. Что хорошо, а что плохо - решает уголовный кодекс и суд. И регулировать отношения в обществе можно только с помощью законов.

     
     
  • 5.19, QuAzI (ok), 09:58, 02/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Хороший... плохой... главное - у кого ружьё ;)

     
  • 5.24, _Nick_ (ok), 11:41, 02/12/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Я с вас фигею, граждане. Что хорошо, а что плохо - решает
    >уголовный кодекс и суд.

    Да Вы что?...
    Большое счастье, что это не так :)
    Отвечать на такой важный вопрос в одиночку - слишком сложная задача.
    Вот даже опросить по любому вопросу средних сто человек с улицы - точность решения (соответствие их субъективного мнения о добре-зле объективному добру-злу) будет куда выше.

    >И регулировать отношения в обществе можно только с помощью законов.

    Есть ещё очень много способов их регулировать (хотя да, на Западе, думают, что человека, посмотревшего на тебя "не так" можно и нужно засудить).

     
     
  • 6.26, Vertigo (ok), 12:01, 02/12/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Вот даже опросить по любому вопросу средних сто человек с улицы -
    >точность решения (соответствие их субъективного мнения о добре-зле объективному добру-злу) будет
    >куда выше.

    Это характерный детский взгляд на мир - думать, что в нём всё исключительно чёрное или белое.
    На досуге советую спросить средних сто человек в инете что лучше - линукс, или виндовс. Ну, или интел и амд. Или г-форс и радеон. И проанализировать ответы. А так же прикинуть, что же в данном случае будет Объективным Добром.

     
     
  • 7.30, _Nick_ (ok), 15:15, 03/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Это характерный детский взгляд на мир - думать, что в нём всё
    >исключительно чёрное или белое.

    Напрашиваетесь на шутку...  Вы только с детьми-дальтониками общались?
    Ваше высказывание было неоднозначным: с одной стороны, якобы упрекнуть меня, что
    я "упрощаю" мир, видя в нём лишь чёрно-белое (хотя на самом деле в нём наличиствуют
    множество разных частот, и некоторые из них люди видят разными цветами);
    с другой стороны, это якобы алегория о добре и зле. Но тут Вы неправы,
    ибо любое действие или бездействие - объективно относится либо к доброму поступку
    (и бездёйствие тоже), либо к злому, невизрая на то, что об этом кто думает (невзирая на субъективное понимание добра и зла).

    Или Вы думаете, что есть ещё и некие "средние" поступки? не добрые и не злые?
    Не "чёрное" и не "белое", а некое "рябое"?


    >На досуге советую спросить средних сто человек в инете что лучше -
    >линукс, или виндовс.

    БольшАя часть средних людей ответит "а что это?" по обоим пунктам.
    Вообще-то, ответ то Вы получите, но придётся разсказать всем этим людям о _новых_ для
    них вещах, чтобы узнать у них их _сознательное_ отношение (а не наобум).
    Опять же: придётся быть конкретным. либо: "в школу нужен на компф софт" или "нужно автоматизировать систему учёта билетов в касссе автовокзала" - показать опрашиваемым _изначальную_задачу_, а не _некоторые_средства_ их решения, известные Вам (может кто ещё что покруче предложит, оставив Вас с вашими и пингвинами и маздаями отдыхать).

    Но спросите что-либо _обоюдно_ известное, то, с чем все сталкиваются по жихни так или иначе - и Вы получите решение правдивее любых судов.

     
  • 4.22, _Nick_ (ok), 11:33, 02/12/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> (к примеру, задефейсить сайты какой-нить RIAA - это добро).
    >
    >В каком-то роде вы правы. На самом деле все просто: даже зло
    >бывает во благо :-).

    Э, нет. Либо налево, либо направо.
    Объективное Добро невозможно получить объективным злом.

     

  • 1.5, dq0s4y71 (ok), 12:42, 01/12/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >судя по коду, версия FreeBSD 6.4 является уязвимой.

    А можно поподробнее? А то по ссылкам говорят прямо противоположное. http://seclists.org/fulldisclosure/2009/Nov/381

     
     
  • 2.6, Maxim Chirkov (ok), 12:56, 01/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>судя по коду, версия FreeBSD 6.4 является уязвимой.
    >А можно поподробнее? А то по ссылкам говорят прямо противоположное. http://seclists.org/fulldisclosure/2009/Nov/381

    Вывод о возможной уязвимости сделан на основе просмотра кода, который правит патч http://people.freebsd.org/~cperciva/rtld.patch . rtld.c из FreeBSD 6.4 сильно отличается от FreeBSD 6.3 и имеет примерно такой же вид как в FreeBSD 7 и 8. Детально я не разбирался, но при беглом осмотре FreeBSD 6.4 вполне подвержен уязвимости. Посмотрим, что завтра в официальном отчете будет сказано.

     
     
  • 3.8, kkk111 (ok), 13:45, 01/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Ошибка не в rtld, а в lib/libc/stdlib/getenv.c. Грубо говоря, после unsetenv("LD_PRELOAD"), getenv("LD_PRELOAD") все равно может вернуть true, если среда процесса правильным образом испорчена.
     
     
  • 4.11, Maxim Chirkov (ok), 14:13, 01/12/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Ошибка не в rtld, а в lib/libc/stdlib/getenv.c. Грубо говоря, после unsetenv("LD_PRELOAD"), getenv("LD_PRELOAD")
    >все равно может вернуть true, если среда процесса правильным образом испорчена.

    Вы правы, во FreeBSD 6.4 еще старая Berkeley реализация getenv, а начиная с FreeBSD 7 новый вариант.

     

  • 1.13, kegf (ok), 14:43, 01/12/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    fixed in svn 199979/80/81 (HEAD/8-STABLE/7-STABLE)
     
     
  • 2.33, Nas_tradamus (ok), 13:31, 07/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Проверил - работает, млин!  FreeBSD 7.0-RELEASE .

    При попытке применить патч, выдавал что нет такого файла в src.

    Как-нибудь можно исправить без обновления на 8.0 ?

    Я не сильно паникую, так как у меня злоумышленники не имеют доступ в шелл. )

    А хостерам, чую, весело.

     

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



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

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