LINUX.ORG.RU

Уязвимость в стандартной функции glob() как угроза для FTP-серверов

 , , ,


0

1

Сайт SecurityReason сообщает об обнаружении опасной ошибки в реализации библиотечной функции glob() из стандартной библиотеки языка C (libc) на множестве платформ.

Эта функция предназначена для получения списка файлов, чьи имена удовлетворяют заданному шаблону. Ошибка заключается в том, что ограничение на выдачу функции, задаваемое переменной GLOB_LIMIT, не действует в случае задания некорректных путей в шаблоне. Такими некорректными значениями могут быть, например, «*/../*/../*foo» или «{..,..,..}/*/{..,..,..}/*bar». При этом вызов функции glob() может исчерпать всю доступную память процесса.

Особенную опасность данная ошибка представляет для (S)FTP-серверов, особенно с разрешенным анонимным доступом. Очевидно, запрос на листинг файлов с вышеприведенной маской приводит к скорому отказу в обслуживании FTP-сервера.

Уязвимости подвержены, по последним данным, как минимум следующие ОС: OpenBSD 4.7, NetBSD 5.0.2, FreeBSD 7.3/8.1, Oracle/Sun Solaris 10, а также все версии Linux с GLIBC. Уязвимость пока что устранена только в NetBSD; компании и сообщества, занимающиеся разработкой вышеперечисленных (за исключением NetBSD) операционных систем, пока не дают никакой информации; именно поэтому уязвимость классифицируется как «0-day». Сообщается также, что vsftpd не подвержен уязвимости.

>>> Подробности

★★

Проверено: maxcom ()

Сообщается также, что vsftpd не подвержен уязвимости.

Что ещё раз подтверждает правильность его названия.

post-factum ★★★★★ ()
Ответ на: комментарий от post-factum

> Что ещё раз подтверждает правильность его названия.

+1. Похоже, что авторы vsftpd реализовали globbing самостоятельно, и это было очень прозорливым решением.

Kuka ★★ ()

копипаста, на опеннете было, в talks было

Sylvia ★★★★★ ()

Или моя кривизна рук или не подверженность уязвимости у proftpd не дали потушить наш сервер в комнате

vertexua ★★★☆☆ ()
Ответ на: комментарий от Sylvia

копипаст это когда текст дословно скопирован

maxcom ★★★★★ ()
Ответ на: комментарий от maxcom

А что плохого в копипасте? По закону о копирайте новости можно копипастить.

Nxx ★★★★★ ()

Массовое решето!

anonymous ()
Ответ на: комментарий от maxcom

> копипаст это когда текст дословно скопирован
Ага. А когда 2 слова переставят местами то это уже не копипаст :)

И вобще. Могли бы указать хотя бы на каком фтп серваке это сделали.
А то вот гляжу здесь - vsftpd и про не подтвержены.

Мой любимый ( которым я обычно сразу замению vsftpd ) пуре то же не подтвержен. Даже не из глоба и из параметра где указывается макс
число файлов и глубина директорий ... тоже.

Тогда кто же ? Дай бог памяти - не про wu-ftpd ли уже речь ? ;)

mx__ ★★★★★ ()
Ответ на: комментарий от Nxx

нет, текст новости является авторским и копировать его нельзя (а вот пересказывать своими словами - можно)

maxcom ★★★★★ ()

уважаемые, вы часом sftp и ftps не перепутали?

Первый - это субпротокол передачи файлов в ssh второй - это ftp через ssl

anonymous ()
Ответ на: комментарий от maxcom

> нет, текст новости является авторским и копировать его нельзя (а вот пересказывать своими словами - можно)

Новости являются исключением в законе. Поэтому все новостные агенства и газеты перепечатывают новости друг друга. Это установившаяся практика. Очевидно, это сделано для ускорения распространения новостей (переписывать своими словами занимает время и новость уже становится не новостью).

Nxx ★★★★★ ()
Ответ на: комментарий от maxcom

Только ссылка на оригинал новости требуется по закону, но сейчас и это требование хотят убрать.

Nxx ★★★★★ ()
Ответ на: комментарий от maxcom

Статья 1274. Свободное использование произведения в информационных, научных, учебных или культурных целях

(...)

3) воспроизведение в прессе, сообщение в эфир или по кабелю правомерно опубликованных в газетах или журналах статей по текущим экономическим, политическим, социальным и религиозным вопросам или переданных в эфир произведений такого же характера в случаях, когда такое воспроизведение или сообщение не было специально запрещено автором или иным правообладателем;

(...)

Nxx ★★★★★ ()
Ответ на: комментарий от Nxx

Блин узнаю ЛОР :(

То тролят, то занимаются поиском ошибок в словах, теперь вот за
копипаст взялись :)

А написать про то что ни один из используемых в Линуксе фтпд
серваков этому не подтвержен - это уже не тему типа :)

mx__ ★★★★★ ()
Ответ на: комментарий от mx__

Кстати да - про proftpd ничего не говорится... Интересно, подвержен он атакам, или нет? А то мало ли какой малолетний «кулхацкер» захочет мой домашний компьютер «взломать»...

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

> Кстати да - про proftpd ничего не говорится...

Почитай коменты - кто то уже ПРО попробывал, тоже не получилось ...

mx__ ★★★★★ ()
Ответ на: комментарий от mx__

Точно. Значит, можно быть спокойным и пополнять блеклист только любителями «жестокого» сканирования портов.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Nxx

И куда же относится эта новость? К экономическим, политическим, социальным или религиозным вопросам?

Shlyapa ★★ ()
Ответ на: комментарий от mx__

Да мне стандартных средств shorewall+iptables хватает...

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

Я вообще про то что сентри сам блаклист строчит .... Хотя может я путаю что то, но мне казалось что шоревалл
это перл-морда к иптаблесу всего лишь ...

mx__ ★★★★★ ()
Ответ на: комментарий от Shlyapa

И куда же относится эта новость? К экономическим, политическим, социальным или религиозным вопросам?


Ко всему перечисленному, но главное, конечно, религиозная составляющая. Просто сейчас утро школьники на уроках, а то бы ужо давно прозвучало proftpd гуано, vsftpd рулит :-).

vtVitus ★★★★★ ()
Ответ на: комментарий от mx__

Я вообще про то что сентри сам блаклист строчит

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

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Shlyapa

> И куда же относится эта новость? К экономическим, политическим, социальным или религиозным вопросам?

К религиозным, конечно.

Nxx ★★★★★ ()

на pure-ftpd под openSUSE ничего не падает

или я неправильно пытаюсь атаковать

HighwayStar ★★★★★ ()
Ответ на: комментарий от HighwayStar

ftp> ls */../*/../*foo
229 Extended Passive mode OK (|||40050|)
150 Accepted data connection
226-Options: -l
226 0 matches total

HighwayStar ★★★★★ ()

Proftpd гуано, vsftpd рулит =)

Спасибо за новость

Klayman ()
Ответ на: комментарий от mx__

> Почитай коменты - кто то уже ПРО попробывал, тоже не получилось ...

Речь шла про хакеров, а не про любителей пробовать эксплойты. На ЛОРе к сожалению нельзя получить экспертное заключение.

valich ★★★ ()

Ох уж эти лоровские ТруЪ.

To sucessfully attack, we need calculate pattern. I am not going show, howto optimal calulate pattern.
...

0day remote ftpd Denial-of-Service:
http://cxib.net/stuff/glob-0day.c

Для каждого уязвимого демона (пых-пых, кстати, тоже уязвим по-своему), нужно считать свой шаблон для успешной атаки. Автор приводит несколько примеров для бздэшных ftpd, пых-пыха и еще чего-то там. Так что очень даже ваши proftpd уязвимы.

Эксплоит представлен для ftpd только.

anonymous ()
Ответ на: комментарий от anonymous

> Так что очень даже ваши proftpd уязвимы.

Ты про что ?
... При этом вызов функции glob() может исчерпать всю доступную память процесса...

В пуре ты задаешь скоко казать файлов и глубину. Укажешь 100
он тебе и будет казать токо 100 и не все остальное похр...





mx__ ★★★★★ ()

Или это я чего-то не догоняю.
Или это они гонют...

#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <glob.h>

int main(int argc, char const *argv[])
{
    glob_t gr;
    int r;
    if (argc!=3)
    {   
        fprintf(stderr,"Usage: glob <pattern> <limit>\n");
        return 1;
    }
    memset(&gr,0,sizeof(gr));
    if (sscanf(argv[2],"%d",&gr.gl_matchc)!=1)
    {  
       fprintf(stderr,"bad limit: '%s'\n",argv[2]);
       return 2;
    }
    r = glob(argv[1],GLOB_LIMIT,NULL,&gr);
    if (r!=0 && r!=GLOB_NOSPACE)
    {  
       fprintf(stderr,"glob failed: %d (%s)\n",errno,strerror(errno));
       return 3;
    }
    if (r!=0)
    {
        printf("the limit is exceeded!\n");
    }
    printf("total: %d; matching: %d\n",gr.gl_pathc,gr.gl_matchc);
    globfree(&gr);
    return 0;
}
$ ./glob '*/../*/../*' 100500600
total: 190512; matching: 190512
$ ./glob '*/../*/../*' 100
the limit is exceeded!
total: 101; matching: 102
$ uname -srm
FreeBSD 8.1-STABLE amd64

anonymous ()

> Уязвимости подвержены, по последним данным, как минимум следующие ОС: OpenBSD 4.7

Сообщается также, что vsftpd не подвержен уязвимости.

В опёнке vsftpd же по умолчанию, нет?

tx ()

Да, правильное все-таки у vsftpd название (:

pevzi ★★★★★ ()

В Debian eglibc, так что на него не распространяется

ttnl ★★★★★ ()

хм, а где в убунте и арче GLOB_LIMIT?

anonymous ()

Супер

vsftpd как всегда прекрасен!

anonymous ()
Ответ на: комментарий от tx

какая разница-то? если уязвимость в glibc. зайди через шелл да выполни.

anonymous ()
Ответ на: комментарий от anonymous

Да. Ждём обновления glibc. А по поводу выполнить через шелл, зачем ронять свой шелл?

Lumi ★★★★★ ()
Ответ на: комментарий от Nxx

>А что плохого в копипасте? По закону о копирайте новости можно копипастить.

Тем, что зае...вает одно и то же в ста местах, еще кнопочку Лайк закажите, любители ВКонтактика.

Sanitar ()

На линуксе (федора 13) прекрасно работает:

#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <error.h>
#include <glob.h>

int main(int argc, char const *argv[])
{
glob_t gr;
int r;

if (argc != 2)
error (1, 0, «Usage: glob <pattern>»);

memset (&gr,0,sizeof(gr));
r = glob (argv[1], 0, NULL, &gr);

if (r != 0 && r != GLOB_NOSPACE)
error (1, errno, «glob failed»);

printf («total: %d\n»,gr.gl_pathc);
globfree (&gr);
return 0;
}

Запускать так: ./glob '../../*/../*/*/../../*/*/*/*.bz2'

800M сожрало, потом убил.

GLOB_LIMIT - BSDшная фича, согласно POSIX её наличие необязательно, и в glibc нету.

РЕШЕТО!!!

anonymous ()
Ответ на: комментарий от anonymous

> 800M сожрало, потом убил.

Ни кто не утверждал что это нету локально. Просто ни в одном
из используемых нормальных фтпд серверов ( вс, про, пуре ) этого
нельзя заюзать ...

mx__ ★★★★★ ()
Ответ на: комментарий от anonymous

Ну в новости утверждается, что GLOB_LIMIT, которое а) не переменная, а флаг в параметре flags glob(3), б) действительно отсутствующее в glibc расширение, не применяется для каких-то специальнообученных шаблонов практически во всех реализациях libc (включая сюда и glibc).
Собственно это и удивило.

anonymous ()

Ладно, бог с ней, с glob - написал какой-то баран, проверок не сделал, рано или поздно libc сдохнет. Но почему вдруг у FTP серверов должна быть уязвимость?? Это не шелл и нечего там обрабатывать всякий мусор! ls * - максимум.

matumba ★★★★★ ()
Ответ на: комментарий от matumba

>>Ладно, бог с ней, с glob - написал какой-то баран, проверок не сделал, рано или поздно libc сдохнет. Но почему вдруг у FTP серверов должна быть уязвимость?? Это не шелл и нечего там обрабатывать всякий мусор! ls * - максимум.

OMFG! Представь себе, ftp-сервера умеют намного больше, чем просто отдавать тебе по ссылочке инсталлер контр-страйка.

anonymous ()

«продуманная» архитектура unix-систем доставляет

anonymous ()
Ответ на: комментарий от mx__

> А написать про то что ни один из используемых в Линуксе фтпд серваков этому не подтвержен - это уже не тему типа :)

На vsftpd не работает. На proftpd работает, проверено, сервер элементарно досится. Других серверов под рукой нет. «Эксплоит» обсосали на опеннете еще вчера.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.