В командном интерпретаторе Bash выявлена (https://securityblog.redhat.com/2014/09/24/bash-specially-cr.../) опасная уязвимость (CVE-2014-6271), позволяющая организовать выполнение кода в контексте другого сеанса bash. Проблема вызвана недоработкой в организации экспорта переменных окружения и shell-функций в другие экземпляры bash, что приводит к выполнению блоков кода из специально оформленных переменных окружения, полученных от других процессов. Во многих типовых конфигурация уязвимость может быть эксплуатирована по сети, если bash указан в качестве системного shell-интерпретатора. В том числе могут быть атакованы CGI-скрипты и конфигурации OpenSSH.Текущие версии bash используют переменные окружения в том числе для экспорта функций, при этом если в переменной содержит "() {", то её содержимое воспринимается как функция. Из-за ошибки, после завершения тела функции, обработка продолжается и после символа "}". Если после функции указана команда, то bash выполнит и её (например, "VAR=() { ignored; }; /bin/id").
В случае с OpenSSH атака может быть проведена (http://www.openwall.com/lists/oss-security/2014/09/24/12) через подстановку переменной окружения SSH_ORIGINAL_COMMAND:
<font color="#461b7e">
ssh -o 'rsaauthentication yes' 0 '() { ignored; }; /usr/bin/id'
</font>Выполнив указанную команду в переменную окружения будет скопирована в том числе строка '() { ignored; }; /usr/bin/id', которая инициирует выполнение пустой функции и запуск команды /usr/bin/id на стороне удалённой системы. Аналогичные атаки могут быть проведены через переменную окружения TERM или при запуске CGI-скриптов через переменную REMOTE_USER.
Для устранения проблемы подготовлена (http://www.openwall.com/lists/oss-security/2014/09/24/11) серия патчей. Обновления пакетов с bash уже выпущены для Debian (https://lists.debian.org/debian-security-announce/2014/msg00...), Ubuntu (http://www.ubuntu.com/usn/usn-2362-1/), RHEL (https://access.redhat.com/articles/1200223), CentOS (http://lists.centos.org/pipermail/centos-announce/2014-Septe...). Оценить появление обновлений для других систем можно на следующих страницах: Fedora (https://admin.fedoraproject.org/updates/F20), openSUSE (http://lists.opensuse.org/opensuse-security-announce/), SLES (https://www.suse.com/support/update/), Slackware (http://www.slackware.com/security/list.php?l=slackware-secur...), Gentoo (http://www.gentoo.org/security/en/index.xml), OpenBSD (http://www.openbsd.org/security.html), NetBSD (http://www.netbsd.org/support/security/), FreeBSD (http://www.vuxml.org/freebsd/).URL: http://www.openwall.com/lists/oss-security/2014/09/24/10
Новость: http://www.opennet.me/opennews/art.shtml?num=40667
и в zsh!
нет в zsh такой беды
Таки нет
> Хм, проверил в дебиане на 5.0.6-1 - пишет vulnerableWheezy, 4.3.17 - нет.
Slackware 14.1 -- пишет, что уязвима
> Slackware 14.1 -- пишет, что уязвимаВ убунтах приехал апдейт. Оперативно.
> В убунтах приехал апдейт. Оперативно.Рано радовался, фикс заглючен.
openSUSE 13.1, нету.
...теперь в новой упаковке и с обновленным вкусом! Дырявый баш буквально преображает сервера...
ОПА!!! а в щлюзах на лине наверное тоже такое прокатит )
на сколько я понял это у него всегда такая уязвимость была, или же это касается только в каких то определенных вариациях ?
В шлюзах shell в составе busybox. bash слишком "толстый"
> В шлюзах shell в составе busybox. bash слишком "толстый"ну это смотря какие брать .... а если возьмём IDECO или Kerio ?
> ОПА!!! а в щлюзах на лине наверное тоже такое прокатит )
> на сколько я понял это у него всегда такая уязвимость была, или
> же это касается только в каких то определенных вариациях ?там ash обычно
>> ОПА!!! а в щлюзах на лине наверное тоже такое прокатит )
>> на сколько я понял это у него всегда такая уязвимость была, или
>> же это касается только в каких то определенных вариациях ?
> там ash обычноу нас bash и OpenSSH полноценный )
> )Нашли чему радоваться.
> у нас bash и OpenSSH полноценный )Тогда выдавайте вазелин в комплекте :)
>>> ОПА!!! а в щлюзах на лине наверное тоже такое прокатит )
>>> на сколько я понял это у него всегда такая уязвимость была, или
>>> же это касается только в каких то определенных вариациях ?
>> там ash обычно
> у нас bash и OpenSSH полноценный )Напишите ваш ip :)
насколько
каких-то
классная уязвимость!
Вот жесть
Да уж. Понятия "безопасность" и "защищенность" в мире ИТ довольно условны. А сколько еще таких уязвимостей? И я почему-то не уверен, что кто-то не знал об их существовании задолго до уведомления общественности.
> И я почему-то не уверен, что кто-то
> не знал об их существовании задолго до уведомления общественности.типичное заблуждение людей:
люди склонны (это врождённая черта людей) думать будто бы ВСЁ уже придумано ГДЕ-ТО и КЕМ-ТО .
это заблюждение происходит из врождённого свойства психики -- "неупорядоченная телеология".
---------------------------------------------
а по факту же (если включить мозг): более логично предположить, что об этой уязвимости ни кто не знал раньше.
кто-то уже использовал эту уязвимость? нет? тогда как можно предположить что кто-то о ней знал?
---------------------------------------------
или вот ещё пример:
когда кто-то меня поправляет о том что я якобы не правильно пишу\говорю на русском языке -- то это точно такая же черта людей.
они думают будто "русский язык" якобы сущетвует где-то в сферическом вакууме. а на самом деле я и есть типичный носитель русского языка (если не останется ни одного носителя русского языка -- то значит и не будет самого русского языка).
>кто-то уже использовал эту уязвимость? нет?а он вам сказал?
>>кто-то уже использовал эту уязвимость? нет?
> а он вам сказал?знал но не использовал и ни кому не говорил? хахаха :)
ну вы как дети маленькие...
задним числом то ведь -- любой дурак может всё что угодно знать :-D
Если вы взломали что-либо и поимели доход с данного мероприятия, зачем вам объявлять всему миру зачем и как вы это сделали?
> Если вы взломали что-либо и поимели доход с данного мероприятия, зачем вам
> объявлять всему миру зачем и как вы это сделали?зачем объяснять:
если ты крутишься в научно-инженерном сообществе -- то там принято делиться своими открытиями (сейчас это происходит по средствам интернета: почта, форумы, списки рассылок, баг-трекеры, ...)..
если ты НЕ крутишься в научно-инженерном сообществе -- то крайне-низка вероятность того что ты будешь обладать уровнем знаний, который позволит тебе выявить ту-или-иную громкую уязвимость (подобно этой). но даже если это произошло -- то крайне трудно удержать это в секрете от всех (а есть пословица: "что знают двое то знает и свинья").
кроме этого -- тот кого взломали -- если он очень важен -- то наверное он захочет сделать расследование на тему того как его взломали.
другими словами: слишком много "если" должно произойти, для того чтобы это могло сохраниться в тайне. логичнее предположить что эта методика -- ни как не могла существовать в тайне (об этом баге -- просто ни кто не знал).
Меньше знаешь - лучше спишь.
fix: Меньше знают - лучше спишь.
>[оверквотинг удален]
> громкую уязвимость (подобно этой). но даже если это произошло -- то
> крайне трудно удержать это в секрете от всех (а есть пословица:
> "что знают двое то знает и свинья").
> кроме этого -- тот кого взломали -- если он очень важен --
> то наверное он захочет сделать расследование на тему того как его
> взломали.
> другими словами: слишком много "если" должно произойти, для того чтобы это могло
> сохраниться в тайне. логичнее предположить что эта методика -- ни как
> не могла существовать в тайне (об этом баге -- просто ни
> кто не знал).Справедливо, но немного сомнительно... по той причине что, "реверс инженеринг" атаки сделать почти невозможно, и вряд ли жертва узнала кто это сделал "(учитывая "гипотетических" "реалити" познания ... или ... , ... об этой уязвимости, и не воспользовавшемся тем же "интеллектом" что-бы - "замести следы", или ... O_o ???)" , и пришла к нему с термо-ректальным-крипто-анализатором )) ? что-бы выведать секреты ... ))
> если ты НЕ крутишься в научно-инженерном сообществе -- то крайне-низка вероятность того
> что ты будешь обладать уровнем знаний, который позволит тебе выявить ту-или-иную
> громкую уязвимость (подобно этой).Какой же бред то несёте. Сможешь, не сможешь, определяется врождёными умственными
спобностями, и, тоже врождёнными, маниакальным интересом к технологиям и азарту,
а не "крутишься вертишишься [u]на х..[/u] в инженерном обществе".
Желание поделиться, не поделиться, определяется характером человека, и/или его текущим
социальным положением.
Известнейшие, "спалившиеся", вломщики, находившие уязвимости, через них работавшие,
не имели отношения к Вашему, "научно-инженерном сообществу" никакого.
> Известнейшие, "спалившиеся", вломщики, находившие уязвимости, через них работавшие,
> не имели отношения к Вашему, "научно-инженерном сообществу" никакого.Например?
> Например?В гугеле забанили? Первый для примера https://ru.wikipedia.org/wiki/%D0%9B%D0%...,_%D0%90%D0%B4%D1%80%D0%B8%D0%B0%D0%BD
Ну и? Вот же он сам говорит: "В какой-то момент он заметил, что я интересуюсь компьютером, и он стал учить меня. Можно сказать — он создал меня как специалиста."
> В гугеле забанили? Первый для примераДа... если вас взломал Ламо - это наверное обидно! :). Ну ладно бы у него еще фамилия Профи была...
> зачем объяснять:Дяденька, эти преставления устарели, ещё когда Вы в младших классах были -- лет десять-двенадцать тому. Когда криминальный бузинес допетрил, что и тут тоже бабки.
rtfm://"black hat" и не порите больше чушь с уверенным видом, когда ничего ВООБЩЕ не понимаете в обсуждаемом вопросе. Если очень неймётся -- облепливайте "имхо" со всех сторон, чтоб кто-нить ещё более юный не купился с разбегу.
ну что же я твоего imho не вижу? :) в этом твоём сообщении
> ну что же я твоего imho не вижу? :) в этом твоём сообщенииПотому что я _знаю_, о чём говорю, а не делаю допущения. Первые ключевые слова указаны.
ды, блин.. чы чё такой буйный-то?расслабся же! хоть чуть чуть :)
на меня вот щаз орёшь.. на мать свою орал (прочитал тут https://2ch.hk/s/res/1046617.html , но не знаю правда ли это )
какое именно выступление black hat мне надо глянуть чтобы понять о том что ты пытаешься мне сказать?
> на меня вот щаз орёшь.. на мать свою оралВы готовы подписаться под этим утверждением и отвечать за него?
> какое именно выступление black hat мне надо глянуть
Не выступление. А хотя бы немножко о том, чем такой контингент отличается от "серых" коллег.
В #34 изложено грубовато, но верно.
> Потому что я _знаю_, о чём говорю,Оптимизм - это хорошо. Но почему-то на практике вы в 50% случаев подаете какие-то жареные факты или мнения сомнительных типов как истину в последней инстанции.
>> Потому что я _знаю_, о чём говорю,
> Оптимизм - это хорошо.В надеждах, но не в оценках.
> Но почему-то на практике вы в 50% случаев подаете какие-то жареные факты
> или мнения сомнительных типов как истину в последней инстанции.Можно пример? Когда ссылаюсь на сомнительное, так и помечаю; когда знаю достоверно -- тоже подчёркиваю. Без пометок воспринимать как (PS: "заведомо") жареное/последнеинстанционное не советую.
То, что по коррелированным косвенным данным нередко удаётся понять больше, чем по вроде бы ясным прямым -- может иметь отношение к тому, что манипулировать "ясными прямыми" проще, чем всей совокупностью "вторичных волн", часть которой может долететь до отдельно взятого человека. Порой же выводы сходятся у нескольких знающих друг друга людей, при этом доводы пересекаются лишь частично, а результат заставляет вспомнить Уфимцева с его похоронами "стелсу".
А то, что такое бывает непонятно, пока уже совсем в лоб не двинет -- это нормально... ну и плюс ошибки, куда ж они денутся у людей.
Ваши бы слова да богу... куда то там. К сожалению, ситуация диаметрально противоположная.
>ситуация диаметрально противоположная.Чтоб не сказать ортогонально-перпендикулярная. Но нет, мы не такие, мы "не крутимся"ТМ.
Бред. Бага старая, и ей пользовались лет 5 как. Другое дело, что знало малое количество людей, кто не занимается дешевой рекламой типа "я крутой", а предпочитали сохранять свой контроль над системами и быть невидимками. Коммерция дело сложное.
"думать [здесь нужна запятая] будто".
"ни кто"-пишется слитно.
"как можно предположить[здесь тоже нужна запятая]что кто-то о ней знал".
"поправляет о [гораздо лучше вместо 'о' написать буковку 'в'] том [снова необходима запятая] что я якобы не".
Не, дружище, ты не якобы, ты действительно хреново знаешь русский язык. Два тебе, неуд.
И твоё рассуждение о "типичном носителе" как раз и есть очередная "неупорядоченная телегогония" ) Объясняю: язык — знаковая система, соотносящая понятийное содержание и типовое звучание (написание) [Википедия]. Это означает, что существует систематика, о которой мы говорим сейчас, позволяющая, опираясь на определённые [и определены они в учебнике языка] правила, передать смысл. Если человек их не знает, то он либо не поймёт смысл, либо не сможет его передать посредством в данном случае русского языка. Всем известный пример "казнить нельзя помиловать" помнишь? Вот тебе и приговор, поставь запятую, не ошибись)
А если серьёзно, то как это хреново, что подавляющее большинство моих современников (разных возрастов) не могут выучить один (!) родной (!) язык. Какими надо быть лодырями, чтобы не осилить, не прочесть хотя бы часть школьной программы, позволяющей хоть на интуитивном уровне, но писать, не совершая пять ошибок на абзац. Больше того, какими надо быть балбесами, чтоб не стесняться своей неграмотности, больше того, искать [и "находить"!] себе оправдания, вместо того, чтобы читать что-нибудь стоящее(на свой собственный вкус), улучшая и повышая свою грамотность.
Я конечно понимаю, что не могут все знать досконально русский язык, включая все его правила и особенности, всегда должны быть и троечники, и лодыри, и оболтусы, но почему эти не самые замечательные представители общества перестали понимать, что они в чём-то хреново соображают и что этим не кичиться нужно, а стыдиться и стараться это в себе исправить? Откуда протекла в их умы мысль, что "это не самое нужное (стараться стать лучше), смотрите лучше, какой я замечательный в том-то и том-то (каждый найдёт в себе массу умилительных черт)"? Ведь как человек ведёт себя в малом, так он и в большом будет делать. А если он, человек, даже мысли свои выразить толком не может (как он это сделает, если у него в голове сплошные "извени", "некто не знаит", "почиму", "ехай", "ихний", "прасти" и прочие режущие глаза словища), то что он может нарассуждать такими извилинами?!?
вмемориз!©
1. Новое предложение, юноша, надобно начинать с заглавной буквы, а не со строчной.2. Если вы чего-то где-то носите, это не означает того, что вы оно и есть. Так же, как и не означает того, что вы это носите правильно (см. Крылов "Мартышка и очки")
> Да уж. Понятия "безопасность" и "защищенность" в мире ИТ довольно условны. А
> сколько еще таких уязвимостей? И я почему-то не уверен, что кто-то
> не знал об их существовании задолго до уведомления общественности.Согласен, даже если брать - супер сборку для "безопасности", то всегда когда нибудь вылезут вилы...
проверил на bash 2.05 (десятилетней давности) - работает
> проверил на bash 2.05 (десятилетней давности) - работаетспс, а OpenSSH какой ?
3.6.1
BASH_VERSION=1.14.7(1)
тоже с дырками :)
---> Package bash.i386 0:3.2-33.el5.1 set to be updated
> el5
> i386Здравствуй, брат!
Интересно сколько уверенных в суперсекурности своего openbsd, жили
все эти годы с этой дырой на своём суперсекурном сервере на опенке?
а в openbsd по-умолчанию стоит bash? и он по-умолчанию предлагается в качестве shell?
> а в openbsd по-умолчанию стоит bash? и он по-умолчанию предлагается в качестве
> shell?есть идиоты, которые ставят bash сами, а не оно приходит депендами в комплекте к говнософту. и да, есть бОльшие идиоты, которые выставляют ЭТО шеллом, даже руту.
> есть идиоты,
>и да, есть бОльшие идиотыБратьев что ли ищешь, животное?
>> есть идиоты,
>>и да, есть бОльшие идиоты
> Братьев что ли ищешь, животное?ты был первым из отозвавшихся, судя по кол-ву минусиков на то-самое-сообщение, их больше. да. а почему ты спросил?
И сколько же? Такие заявления нужно начинать с примеров, а не с голословных обвинений.
> И сколько же? Такие заявления нужно начинать с примеров, а не с
> голословных обвинений.Тебе нужно - ты и начинай.
Не, ну конечно экранирование в шелле всегда вымораживало. Но чтоб настолько?!
> Не, ну конечно экранирование в шелле всегда вымораживало. Но чтоб настолько?!Безотносительно: http://git.altlinux.org/people/legion/packages/?p=libshell.g...
> Безотносительно: http://git.altlinux.org/people/legion/packages/?p=libshell.g...Настолько злобный код вымораживает даже видавшего виды сишника/ассемблерщика. А потом вы еще удивляетесь за что я недолюбливаю шеллскрипты...
> вы еще удивляетесь за что я недолюбливаю шеллскрипты...потому что ты дурак, извини.
> потому что ты дурак, извини.Сабж показывает что бывает и горе от ума... :)
> Настолько злобный код вымораживает даже видавшего виды сишника/ассемблерщика.Регэксами или eval'ом? :)
>экранирование в шелле всегда вымораживалоЭто не экранирование.
> Это не экранирование.Но похоже по общему смыслу.
Звучит эпично, но где, собственно, "уязвимость"? Если я могу выполнить любую команду в баше, зачем заморачиваться и засовывать её в какую-то переменную, чтобы она выполнилась, если вместо этого можно тупо выполнить саму команду?
> Звучит эпично, но где, собственно, "уязвимость"? Если я могу выполнить любую команду
> в баше, зачем заморачиваться и засовывать её в какую-то переменную, чтобы
> она выполнилась, если вместо этого можно тупо выполнить саму команду?часто бывает ситуация когда ты можешь повлиять на переменные окружения (ты делаешь некоторые действия которые изменяют переменные окружения). но не можешь выполнять любые команды в BASH.
а теперь (с этой уязвимость) получилось так что если ты можешь поменять переменные окружения, то значит и команды тебе теперь тоже можно выполнять.. :-)
> часто бывает ситуация когда ты можешь повлиять на переменные окружения (ты делаешь
> некоторые действия которые изменяют переменные окружения). но не можешь выполнять любые
> команды в BASH.Что-то ни одна ситуация не приходит в голову... Можно хоть какой-нибудь пример?
> Что-то ни одна ситуация не приходит в голову... Можно хоть какой-нибудь пример?Навирху же! =Solar Disigner написал про обход прибитого к ключу command=.
Ждём продолжения в Новостях, конечно.
CGI
>> часто бывает ситуация когда ты можешь повлиять на переменные окружения (ты делаешь
>> некоторые действия которые изменяют переменные окружения). но не можешь выполнять любые
>> команды в BASH.
> Что-то ни одна ситуация не приходит в голову... Можно хоть какой-нибудь пример?DHCP сервер может передать переменную в ответе
DHCP клиент в *nix её схавает и _выполнит от рута_
Поднимаешь в локалке DHCP сервер и ждешь, когда кто-то клюнет (или когда провайдер отрубит).
>в локалке
>DHCP сервер
>когда провайдер отрубит).Садись, два. //Ох, чего-то препод из меня...
>>в локалке
>>DHCP сервер
>>когда провайдер отрубит).
> Садись, два. //Ох, чего-то препод из меня...Ничего, это уже давно так - кто-то умеет, а кто-то преподает)
Или вы думаете, что по всей России в локалках стоят умные свичи, которые автоматом гасят порт, если замечают DHCP-серверные пакетики?
Надо ещё и чтобы с этими изменёнными переменными окружения ещё и bash бы стартанул.
Поскольку он редко когда применяется кроме как в качестве шелла - то конфигурация должна быть весьма экзотической.
> Надо ещё и чтобы с этими изменёнными переменными окружения ещё и bash
> бы стартанул.
> Поскольку он редко когда применяется кроме как в качестве шелла - то
> конфигурация должна быть весьма экзотической.Он по дефолту на многих серваках, особенно в случае CGI
> Звучит эпично, но где, собственно, "уязвимость"?А уязвимость в том что немало софта получает переменные окружения "снаружи".
Мде.. OS X 10.9.x
таже беда :)
bash уязвим, а вот через *ssh не получилось даже себя запывнить.
ктулху благослови unattended-upgrades в дебиановых
полез проверять на всякий есть ли дырко на серверах, а они уже все пропатченные и хвостиком виляют )
А все запущенные bash перезапустились?
Я так тоже обновлися от heartbleed автоматом, а nginx надо было перезапускать руками.
А в уже запущенном bash эту уязвимость не выйдет эксплуатировать. Только в новом сабшелле. Так что обновления достаточно, перезапускать ничего не нужно.
unattended-upgrades умеет перезапускать сервер после обновлений при необходимости. И в случе heartbleed он это сделал, если был настроен на это.
а куда писать-то тест?
в любую открытую консоль? что-то не работает.
в OpenBSD - ksh.
Вы все идиоты, чтобы применить данную "уязвимость" на удаленной машине, на ней нужно сначала авторизоваться, попробуйте сами:env x='() { :;}; echo *' bash -c "ssh openssh.com"
Это не уязвимость, я не знаю что это, это какая-то хе...фигня, нет разницы между командам
env x='() { :;}; echo *' bash -c "ssh openssh.com"
и
echo *
echo * - выводит список файлов в текущей директории.То есть чтобы заюзать данную багу, нужно:
1. авторизоваться
2. прменять ее можно только к процессам с тем же id что и у вас.
> Вы все идиоты, чтобы применить данную "уязвимость" на удаленной машине, на ней
> нужно сначала авторизоваться, попробуйте сами:По ssh не только пользователи работают, но и удалённо запускаются разные агенты, конфигурации, мониторинга и бэкапа.
> По ssh не только пользователи работают, но и удалённо запускаются разные агенты,
> конфигурации, мониторинга и бэкапа.Без авторизации ?
>> По ssh не только пользователи работают, но и удалённо запускаются разные агенты,
>> конфигурации, мониторинга и бэкапа.
> Без авторизации ?Без пароля по незашифрованному ключу, с _жёстко заланной (command= для ключа) командой. А тут опа -- досвидания "_жёстко заланная". Провелил -- на моём ssh входе на el6 исполнил [вместо того скрипта на bash-е] этот самый id...
> ssh входе на el6 исполнил [вместо того скрипта на bash-е] этот
> самый id...ну значит работает, но для очень редких случаев.
>> ssh входе на el6 исполнил [вместо того скрипта на bash-е] этот
>> самый id...
> ну значит работает, но для очень редких случаев.Второй же вариант уже: cpanel (), GGI на bash и транслирование (апачем?) http-заголовков в окружение CGI-йя. Лучше?
И _продолжение будет, полюбому.
> А тут опа -- досвидания "_жёстко заланная".ssh да и shell столько всего умеют что надо быть завзятым оптимистом чтобы предполагать что это будет только 1 команда.
> По ssh не только пользователи работают, но и удалённо запускаются разные агенты, конфигурации, мониторинга и бэкапа.man sshd_config:
AcceptEnv
…
The default is not to accept any environment variables.
> По ssh не только пользователи работают, но и удалённо запускаются разные агенты,
> конфигурации, мониторинга и бэкапа.и им зачем-то выдают bash в качестве login shell? а почему сразу не ключи от квартиры, где деньги лежат?
>> По ssh не только пользователи работают, но и удалённо запускаются разные агенты,
>> конфигурации, мониторинга и бэкапа.
> и им зачем-то выдают bash в качестве login shell? а почему сразу
> не ключи от квартиры, где деньги лежат?А что ты им предлагаешь выдавать? restricted shell? А он у вас в пингвинусах е? Немае? А, ну тоды ой...
> А что ты им предлагаешь выдавать? restricted shell?
> А он у вас в пингвинусах е? Немае? А, ну тоды ой...Да есть, есть. И rbash, и более специальные.
PS: Вы там что, опять волшебного кумыса перебрали, что так в голову ударило? Держитесь.
> А что ты им предлагаешь выдавать? restricted shell? А он у вас
> в пингвинусах е?прикинь, есть. но лично тебе его использовать запрещено.
Что ви знаете про CGI?
> Что ви знаете про CGI?Древний и бестолковый протокол, который должен умереть жестокой смертью.
Или кто-то путает с CGA или одно из двух
>> Что ви знаете про CGI?
> Древний и бестолковый протокол, который должен умереть жестокой смертью.Ну вот пока все шаред хостинги переползут с него на fastcgi и uwsgi, будут DDoS ботнеты.
Казалось бы, дыра у них, а DDoS - у вас.
Бред какой-тоОн тогда не только в bash, но еще в fish shell присутствует. А это случайно ли не фейк а?
> А это случайно ли не фейк а?Ну как видим, работает. Значит не фэйк. Факты штука упрямая :\.
Я не вижу, у меня на XUbuntu 14.04 не работает. И вообще не могу понять что авторы хотели сказать командой cat echo и как она по их мнению должна отработать. Может Вы знаете?
> Я не вижу, у меня на XUbuntu 14.04 не работает. И вообще
> не могу понять что авторы хотели сказать командой cat echo и
> как она по их мнению должна отработать. Может Вы знаете?Пропатчили уже, больше никак не работает
Я не понял, они нашли ~/.bashrc?
GNU во всей красе. Не, только zsh, только подальше от GNU.
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: внимание: x: ignoring function definition attempt
bash: ошибка при импортировании определения функции`x'
this is a test
root@ubuntu:~# uname -a
Linux ubuntu 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:45 UTC 2014 i686 athlon i686 GNU/Linux
testuser@front:~$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test
testuser@front:~$ env X='() { (a)=>\' sh -c "echo date"; cat echo
date
cat: echo: No such file or directory
testuser@front:~$ uname -a
Linux ubuntu 3.8.0-44-generic #66~precise1-Ubuntu SMP Tue Jul 15 04:04:23 UTC 2014 i686 i686 i686 GNU/Linux
Никогда не использовал bash, точнее пытался, но изучить возможности стандартного sh оказалось быстрее и при применение его оказалось, что он покрывает нужное мне на 100%
Если бы в sh была история команд и автодополнение - пользовался бы только им. Поэтому использую bash исключительно как интерактивную оболочку, в скриптах использую только sh и тоже его возможностей для скриптов вполне хватает. Для большего есть awk или perl, в конце-концов.
За использование bash в скриптах надо вообще убивать.
> За использование bash в скриптах надо вообще убивать.а за перл награждать, ага.
> Если бы в sh была история команд и автодополнение - пользовался бы
> только им.В каком "sh"?
dash можно собирать с libedit.
> Если бы в sh была история команд и автодополнение - пользовался бы только им.Тоже изначально только из-за этого переключался на tcsh, а потом постепенно, что есть и другие полезные фичи. Сейчас в фришный sh добавили историю и дополнение, но я им на постоянной основе пользоваться уже не смогу.
Я реально не понимаю эту новость. Если я верно понял оригинальное описание уязвимости, то удаленное выполнение кода возможно только в том случае, если есть хоть какой-то удаленный шелл, не? То есть уязвимость заключается в возможности нарушения ограничений окружения bash. Или я где-то неправ?
> Я реально не понимаю эту новость. Если я верно понял оригинальное описание
> уязвимости, то удаленное выполнение кода возможно только в том случае, если
> есть хоть какой-то удаленный шелл, не? То есть уязвимость заключается в
> возможности нарушения ограничений окружения bash. Или я где-то неправ?Ну, а теперь вспомните всякие gitlab-ы (дающие доступ на запуск конкретного скрипта по ssh кому годно), всякие cgi-based сайты с использованием bash, ssh-шлюзы с restricted shell-ами и т.п.
Да это очевидно, где spawn'ится shell - там дыра. Просто написано так, как будто удаленный запуск кода доступен в любом случае.
> Да это очевидно, где spawn'ится shell - там дыра. Просто написано так,
> как будто удаленный запуск кода доступен в любом случае.Я привёл примеры удалённых запусков произвольного кода в очень нередких ситуациях.
Может имелось видуВместо:
env X='() { (a)=>\' sh -c "echo date"; cat echoЭто:
env X='() { (a)=>\' sh -c "echo date"'; cat echo
эм, зачем? Чтоб сделать нерабочий скрипт еще более нерабочим ? =D
> В качестве обходного временного
> iptables using -m string --hex-string '|28 29 20 7B|'Hex? String, говорите??
$ one() { echo 1; }
$ one
1
$ unset one; one(){ echo 2; }
$ one
2
$ unset one; one ( ) { echo 3; }
$ one
3
$ _
Да даже без этого, идея всё равно обречена, ибо всякие https-ы с ssh-ами трафик шифруют ;)
А можете прояснить - что делает эта строка?iptables using -m string --hex-string '|28 29 20 7B|'
Я так понимаю, она блокирует соединение, где в запросе используется строка, заданная в hex-формате. Я только не совсем понимаю: какая это строка?
() {
Дерьмовый метод, особенно для вёбни. Допустим<?
function x() {будет не залить.
> Дерьмовый метод, особенно для вёбни.Да вообще расстреливать таких админов через повешивание. Потом будет туева хуча глюков от такого "фикса". Админы, ен вы@#$вайтесь и просто обновите уже ваш глюкавый баш.
>> Дерьмовый метод, особенно для вёбни.
> Да вообще расстреливать таких админов через повешивание. Потом будет туева хуча глюков
> от такого "фикса". Админы, ен вы@#$вайтесь и просто обновите уже ваш
> глюкавый баш.Эй, умник! А ты примерно представляешь себе, сколько скриптов перестанет враз работать? Нет? Ты даже не думал, что этот фикс может хуже баги поломать все к чертовой матери?
> Эй, умник! А ты примерно представляешь себе, сколько скриптов перестанет враз работать?ну, ты же нам расскажешь, правда? то, что ты единственный свой скрипт с «приветмиром» заставил работать только с пятого раза, когда сосед по парте помог — это в данном случае неважно. главное — ты Эксперт!
и все равно вместо того чтобы выдать новую минорную версию мантейнер продолжает вбивать 25 патч в релиз 4.3 ))) почти юморttps://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-025
> и все равно вместо того чтобы выдать новую минорную версию мантейнер продолжает
> вбивать 25 патч в релиз 4.3 ))) почти юморЭто и есть "4.3 pl25".
> ttps://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-025
ttps://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-048
ttps://ftp.gnu.org/gnu/bash/bash-4.1-patches/bash41-012
...
ttps://ftp.gnu.org/gnu/bash/bash-3.0-patches/bash30-017Да! почему он ещё 2.05b не пропатчил?!!
> Да! почему он ещё 2.05b не пропатчил?!!Уже пропатчил: http://seclists.org/oss-sec/2014/q3/698
Не вкурил. И где тут такая прям страшная уязвимость?
> Не вкурил. И где тут такая прям страшная уязвимость?Вот! Вот же!!1 Позитивный коментарий. </>
[user@pc ~]$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
[user@pc ~]$ uname -a
Linux trader 3.16.3-1-ARCH #1 SMP PREEMPT Wed Sep 17 22:00:02 CEST 2014 i686 GNU/Linux
GNU bash, version 4.0.35(1)-release (i686-pc-linux-gnu)
# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test
Спасибо.
А как проверить, будет уязвимость работать через http сервер?
> А как проверить, будет уязвимость работать через http сервер?Отсылаешь такую конструкцию в хидерах и смотришь выполнилась ли команда. Если не знаешь как - тогда и более подробное описание тебе ни к чему.
Давно знал что bash "выполняет" переменные при запуске.
Из-за бывали ситуации когда у одного пользователя скрипт работает, а у другого нет.
Причем если запустить баш и вручную выполнять команды из скрипта, то работает как нужно.
Причина находилась в переменных окружения - где не работало была переменная с каким-нибудь экзотическим значением.А вот что это может быть уязвимость в голову не приходило.
Вроде пофиксили наконец.
> Вроде пофиксили наконец.А скрипты, переставшие работать, вы тоже все пофиксили?
>> Вроде пофиксили наконец.
> А скрипты, переставшие работать, вы тоже все пофиксили?Покажите хоть один применяемый обиходе скрипт, в котором используется экспорт функций через переменные окружения ? Это давно всеми забытый bash-изм.
глупость, которую изначально не надо было делать, но увы…
> глупость, которую изначально не надо было делать, но увы…Я тебе, как умнику записному скажу: в субшел определённые функции по любому _нужно как-то передавать. Если не окружение, но shmem, dbus (разбудите ленарта!), пайп(??). Если немног подумать, то разделения прав, авторизации или ещё какой безопасности там всё одно не будет никогда, шелы-то одинаково правные (да, изобретатели selinux-ов и seccomp-ов это рашат, да-да; саммоню изена со стягом jvm!). Хотя, может быть, не было бы исполнения кода с dhcp/openssh. Поди знай...
>> глупость, которую изначально не надо было делать, но увы…
> Я тебе, как умнику записному скажу: в субшел определённые функции по любому
> _нужно как-то передавать.…и делать это через envvars было глупо.
Люди, не могу найти пример удаленного использования.
Вот у меня bash старый и локально тест уязвимости проходит.
А вот как "по сети" сделать?