The OpenNET Project / Index page

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

25.11.2010 17:02  Новый способ совершения локальной DoS-атаки в Linux и *BSD

Найден довольно простой способ совершения локальной DoS-атаки в Linux, основанный на использовании функции socketpair(). Код работает от любого пользователя. Процесс находится в запущенном состоянии, но не "убивается" через SIGKILL (kill -KILL). Поглощает 100% процессора и все доступные файловые дескрипторы в ядре.

Для временного решения проблемы можно использовать grsecurity или применить к ядру патч:



diff --git a/net/unix/garbage.c b/net/unix/garbage.c
index c8df6fd..40df93d 100644
--- a/net/unix/garbage.c
+++ b/net/unix/garbage.c
@@ -259,9 +259,16 @@ static void inc_inflight_move_tail(struct unix_sock *u)
 }

 static bool gc_in_progress = false;
+#define UNIX_INFLIGHT_TRIGGER_GC 2000

 void wait_for_unix_gc(void)
 {
+       /*
+        * If number of inflight sockets is insane,
+        * force a garbage collect right now.
+        */
+       if (unix_tot_inflight > UNIX_INFLIGHT_TRIGGER_GC && !gc_in_progress)
+               unix_gc();
        wait_event(unix_gc_wait, gc_in_progress == false);
 } 

Дополнение: с небольшим изменением эксплоит также приводит к зависанию FreeBSD и других BSD-систем.

  1. Главная ссылка к новости (http://lkml.org/lkml/2010/11/2...)
  2. Эксплоит
Автор новости: pavlinux
Тип: Проблемы безопасности
Ключевые слова: linux, kernel, dos, attack, security
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Показать все | RSS
 
  • 1.1, Аноним, 17:51, 25/11/2010 [ответить] [смотреть все]    [к модератору]
  • +3 +/
    Работает!
     
  • 1.2, gegMOPO4, 17:54, 25/11/2010 [ответить] [смотреть все]    [к модератору]
  • +/
    Что, в ядре и вправду используются конструкции вида gc_in_progress == false?!
     
     
  • 2.3, Зилибоба, 17:58, 25/11/2010 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]
  • +1 +/
    Для временного решения проблемы можно...
     
     
  • 3.5, JL2001, 18:07, 25/11/2010 [^] [ответить] [смотреть все]     [к модератору]
  • +2 +/
    судя по отсутствию сика перед строкой - это строка не во временном патче... весь текст скрыт [показать]
     
  • 2.6, Аноним, 18:09, 25/11/2010 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    конечно, и множество других конструкций, в том числе и goto
     
     
  • 3.23, gegMOPO4, 21:35, 25/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Надеюсь, не в таком http thedailywtf com Articles Learning-Something-New aspx... весь текст скрыт [показать]
     
  • 1.4, JL2001, 18:05, 25/11/2010 [ответить] [смотреть все]     [к модератору]  
  • –4 +/
    к вопросу о гарбаджколлекторе в сях - расскажите мне о ненужности сборщика мусор... весь текст скрыт [показать]
     
     
  • 2.7, Аноним, 18:11, 25/11/2010 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +2 +/
    Вы путаете язык и программу которая на нём пишется Разберитесь чем одно от друг... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.11, JL2001, 18:57, 25/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    тоесть программы написанные на сях требуют ручками реализовывать разные гарбаджк... весь текст скрыт [показать]
     
     
  • 4.13, anonymous, 19:19, 25/11/2010 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    то есть вы увидели в новости "garbage collector" и стали пороть чепуху.
     
     
  • 5.14, JL2001, 19:54, 25/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • –12 +/
    а может чепуху пороли те кто говорил о ненужности каких либо сборщиков мусора в ... весь текст скрыт [показать]
     
     
  • 6.15, anonymous, 20:07, 25/11/2010 [^] [ответить] [смотреть все]    [к модератору]  
  • +8 +/
    найденная уязвимость не имеет отношения к отсутсвию сборщика мусора в C. упоминаемая в коде программы "сборка мусора" тоже не имеет к этому отношения. с вашими комментариями проследуйте на лор пожалуйста.
     
  • 4.24, gegMOPO4, 21:43, 25/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +3 +/
    Как и не на сях Это совсем другой сборщик, он собирает совсем другой мусор ... весь текст скрыт [показать]
     
  • 4.55, тоже Аноним, 12:07, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +3 +/
    С какого вдруг требуют Сборщик мусора - технология, которая может быть исполь... весь текст скрыт [показать]
     
  • 2.72, User294, 15:33, 26/11/2010 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Ой Тогда получается что файловые системы с гарбаж коллектром - полное дерьмо З... весь текст скрыт [показать] [показать ветку]
     
  • 1.8, fa, 18:11, 25/11/2010 [ответить] [смотреть все]    [к модератору]  
  • +/
    Поясните, в чем именно там проблема. Взял пользователь, да и исчерпал ресурс системы. Чем это отличается от for (;;) malloc(100500); ?
     
     
  • 2.9, FractalizeR, 18:13, 25/11/2010 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Видимо тем, что ваш вариант должен убиваться по SIGKILL Если успеть послать это... весь текст скрыт [показать] [показать ветку]
     
  • 2.10, Аноним, 18:14, 25/11/2010 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +2 +/
    Тем что процесс можно убить, а тему новости 8212 нет Тем что malloc тратит п... весь текст скрыт [показать] [показать ветку]
     
  • 1.12, Zenitur, 19:12, 25/11/2010 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    pavlinux, пропатчил себе я ядро. У меня вопрос: может ли найтись экзотический сот, который с пропатченным ядром откажется работать? Или это исключено?
     
     
  • 2.25, gegMOPO4, 21:50, 25/11/2010 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Сильно ли просядет производительность, если открыть 2001 сокет?
     
     
  • 3.76, Zenitur, 16:04, 26/11/2010 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Процессор занят на 600%. 6 ядер.
     
  • 2.92, User294, 01:04, 27/11/2010 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • –1 +/
    > может ли найтись экзотический сот,

    Сот? Это что? Сотовик? :)

     
  • 1.16, Аноним, 20:15, 25/11/2010 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    grsecurity не спасает
     
     
  • 2.38, pavlinux, 00:15, 26/11/2010 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Запрет на создание сокетов юзерами включён?
     
     
  • 3.48, ta, 04:16, 26/11/2010 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    до socket restrictions дело так и не дошло... хватило tpe.
     
  • 1.17, Alexey, 20:18, 25/11/2010 [ответить] [смотреть все]    [к модератору]  
  • +/
    Интересно, а если внутри VPS запустить?
     
     
  • 2.31, Аноним, 23:05, 25/11/2010 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +2 +/
    openvz имеет ограничение на количество unix socket внутри контекста, он спасает ... весь текст скрыт [показать] [показать ветку]
     
  • 1.18, rpisarev, 20:55, 25/11/2010 [ответить] [смотреть все]    [к модератору]  
  • +/
    http://lkml.org/lkml/2010/11/25/43
     
  • 1.19, Аноним, 21:13, 25/11/2010 [ответить] [смотреть все]     [к модератору]  
  • +/
    мда, серьёзная штука, машину с четыремя ядрами кладёт через пару секунд в полный... весь текст скрыт [показать]
     
  • 1.20, Аноним, 21:15, 25/11/2010 [ответить] [смотреть все]     [к модератору]  
  • +/
    вообще подобного рода вещи, вроде, отправляются в закрытый список, занимающийся ... весь текст скрыт [показать]
     
     
  • 2.36, pavlinux, 00:11, 26/11/2010 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    Не успели, я первый заметил :)
     
  • 1.22, Аноним, 21:29, 25/11/2010 [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    че та нынче в линухе баг за багом и очень хорошо, если не рута получают, а прост... весь текст скрыт [показать]
     
  • 1.27, Аноним, 22:06, 25/11/2010 [ответить] [смотреть все]     [к модератору]  
  • +/
    сдается мне что фикс кривой 1 он пытается запускать gc во время любого send, х... весь текст скрыт [показать]
     
     
  • 2.30, Аноним, 22:35, 25/11/2010 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    вот так выглядит более правильно diff --git a include net af_unix h b include ne... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.39, pavlinux, 00:29, 26/11/2010 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    sysctl -w fs.file-max=1000

     
     
  • 4.59, Аноним, 13:29, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    и загубишь все на корню - слишком глобальная эта ручка, а если в фиксе заменить ... весь текст скрыт [показать]
     
     
  • 5.64, pavlinux, 14:06, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Не, там синтаксисеская обшибка вместо fs files-max, надо fs file-max ... весь текст скрыт [показать]
     
     
  • 6.70, Аноним, 15:30, 26/11/2010 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    ааа. это я полусонным рисовал по памяти.
    спасибо.
     
     
  • 7.71, Аноним, 15:32, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    просто максимальное количество unix sockets это 2 get_max_files так что ddos ... весь текст скрыт [показать]
     
     
  • 8.74, pavlinux, 15:49, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну там дальше идет в ход schedule , по этому при больших file-max, дело до SIG_... весь текст скрыт [показать]
     
     
  • 9.77, Аноним, 16:13, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    exit_task прервать нельзя - в этом code path нету мьютексов - только spinlock ... весь текст скрыт [показать]
     
     
  • 10.80, pavlinux, 16:25, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    void wait_for_unix_gc void wait_event unix_gc_wait, gc_in_progress ... весь текст скрыт [показать]
     
     
  • 11.82, Аноним, 16:41, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    gt оверквотинг удален С теперь козырный вопрос - где вы в exit_task увидели вы... весь текст скрыт [показать]
     
     
  • 12.87, pavlinux, 18:34, 26/11/2010 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > но close на сокет уже вызывался из приложения

    так там же for (;;)

     
     
  • 13.88, Аноним, 18:50, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    позволю себе напомнить код эксплойта int main int fd 2 , ff 2 int t... весь текст скрыт [показать]
     
     
  • 14.90, pavlinux, 19:56, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Чёй-та я не пойму хода Ваших мыслей Схема такая for close 1 124... весь текст скрыт [показать]
     
     
  • 15.94, Аноним, 23:31, 27/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    я там тоже не все понял, но факт в том что in flight реквесты накапливаются на о... весь текст скрыт [показать]
     
  • 9.89, h4tr3d, 18:52, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    На своём EeePC 1000 при дефолтных сиречь моих рабочих настройках проверил fs ... весь текст скрыт [показать]
     
  • 2.33, Аноним, 23:30, 25/11/2010 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    вобщем фикс действительно кривой проблема вот в чем 1 мы посылаем сообщение с ... весь текст скрыт [показать] [показать ветку]
     
  • 1.32, Buy, 23:30, 25/11/2010 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Запустил, система тут же ушла в даун, даже на другой десктоп не смог переключиться (там был запущен top), минуты через три нажал reset, но комп не смог загрузиться - сработала система защиты на материнке (у меня такое когда-то случалось когда баловался с разгоном проца), потом ящик всёже загрузился с третьей попытки. Прикольно :)
     
     
  • 2.37, pavlinux, 00:14, 26/11/2010 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Вы эта того, аккуратнее В новости же написано, что работает ... весь текст скрыт [показать] [показать ветку]
     
  • 1.34, тигар, 23:54, 25/11/2010 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    на самом деле полезная вещь - можно отапливать ЦОДы поставив туда стойки с линакс-машинами.
     
     
  • 2.75, User294, 15:52, 26/11/2010 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    С BSD такое тоже вполне катит, судя по коментам юзвергов тут и на хабре ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.81, Аноним, 16:28, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Проверил, у меня в FreeBSD 8 1, 7 3 и 6 4 не работает Видимо комментаторы с хаб... весь текст скрыт [показать]
     
  • 1.40, pavlinux, 00:47, 26/11/2010 [ответить] [смотреть все]    [к модератору]  
  • +3 +/
    Прикол, Debian 6.0 в даун не ушёл, только матерился, что "too many open files",
    и удалось корректно выключить через Кнопку "Выйти" на панели.

    Всё, пипец!!! Это окончательный приговор SuSE :)

     
  • 1.41, pavlinux, 02:14, 26/11/2010 [ответить] [смотреть все]    [к модератору]  
  • +/
    И ещё apt-get upgrade работает :)

    http://ipicture.ru/uploads/20101126/hSG1NNU3.png

     
     
  • 2.42, Аноним, 02:45, 26/11/2010 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    как выполнить на freebsd?
    что-то не компилится...
     
     
  • 3.43, pavlinux, 03:05, 26/11/2010 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Ну это уж не сюда.
     
  • 3.51, Аноним, 08:33, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Попробуйте такой вариант http lists freebsd org pipermail freebsd-bugs 2009-F... весь текст скрыт [показать]
     
  • 3.56, oops, 12:16, 26/11/2010 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    см. ниже
     
  • 3.63, fidaj, 13:42, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    replace SOCK_SEQPACKET on SOCK_DGRAM ... весь текст скрыт [показать]
     
  • 2.62, Аноним, 13:36, 26/11/2010 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    шревты!
     
  • 1.44, pavlinux, 03:13, 26/11/2010 [ответить] [смотреть все]    [к модератору]  
  • +/
    Вобщам дела такие

    # sysctl -w fs.file-max=84000 (где-то от 40000 до 90000)
    Больше 200.000 появляются сильные тормоза, а при 500.000+ можно сказать зависон.
    Приводит к возможности реакций на Ctrl-Alt-Fn, запуска консоли и kill -9
    или  корректного ребута.
    Да, да, на kill -9 оно реагирует, но только минуты через 3 :)

     
  • 1.45, Аноним, 03:44, 26/11/2010 [ответить] [смотреть все]     [к модератору]  
  • +/
    Все линуксовые серваки своему хостеру положил FreeBSD шные стоят как ни в чем н... весь текст скрыт [показать]
     
     
  • 2.46, pavlinux, 03:45, 26/11/2010 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Новый способ совершения локальной DoS-атаки в Linux Где ты слово FreeBSD увиде... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.47, Аноним, 03:53, 26/11/2010 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    А где я должен был его увидеть? В новости про уязвимость его разумеется нет.
     
     
  • 4.50, Аноним, 08:22, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Капитан, Вы ... весь текст скрыт [показать]
     
  • 3.73, User294, 15:36, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Наверное где-то в районе http habrahabr ru blogs linux 108835 - там народ поч... весь текст скрыт [показать]
     
  • 2.49, Аноним, 08:21, 26/11/2010 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +2 +/
    "сломал крякер своего провайдера, теперь сидит без интернета"
     
  • 2.52, oops, 11:26, 26/11/2010 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    freebsd тоже подвержена, по крайней мере 8 1 релиз - точно Только что в ребут у... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.53, oops, 11:36, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    только для BSD надо немного код изменить добавить заголовочные файлы include s... весь текст скрыт [показать]
     
     
  • 4.54, oops, 11:41, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    тьфу, столько заголовочных написал, не туда посмотрел Хотя и так работать будет... весь текст скрыт [показать]
     
  • 4.69, чупакабра, 15:06, 26/11/2010 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > только для BSD надо немного код изменить

    Без бубна не работает? :)

     
     
  • 5.78, oops, 16:20, 26/11/2010 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    великий гуру Си?
     
  • 4.83, sacha, 17:03, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    gt оверквотинг удален Выставил sbsize в 393216 - перестало ... весь текст скрыт [показать]
     
     
  • 5.84, Аноним, 17:40, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    и NFS перестала запускаться, и SSH отвалилось - ... весь текст скрыт [показать]
     
     
  • 6.85, sacha, 17:58, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    У меня ssh не отвалилось nfs нету sbsize не на всех, а только на user-ов, чере... весь текст скрыт [показать]
     
     
  • 7.95, pavlinux, 01:13, 28/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну вы блин даёте с ... весь текст скрыт [показать]
     
  • 5.91, Аноним, 23:24, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Мне данная мера не помогла Попробуйте запустить несколько процессов У меня при... весь текст скрыт [показать]
     
  • 5.93, alvarez, 03:06, 27/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    У меня FreeBSD 8 1-RELEASE-p1 - уходит в ребут В консоли светится kernel Cann... весь текст скрыт [показать]
     
  • 1.57, прохожий, 13:00, 26/11/2010 [ответить] [смотреть все]    [к модератору]  
  • +/
    Вообще-то эта проблема была обнаруженна 23-го ноября парнем по имени Vegard Nossum
    (см. http://thread.gmane.org/gmane.linux.kernel/1067149)

    а этот Марк Коренберг (http://lkml.org/lkml/2010/11/25/8) - просто быдлоадмин (см. http://mmarkk.moikrug.ru/), который перепостил код Vegard'а.

    и да, этот трабл - это типичная, известная уже миллион лет fork-бомба (http://en.wikipedia.org/wiki/Fork_bomb).

     
     
  • 2.60, Аноним, 13:32, 26/11/2010 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    нет не fork bomb а чуть другое забываем вычитывать с сокета сообщения содерж... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.61, Аноним, 13:34, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    ах, да - причем не просто файловые дискрипторы - а _закрытые_ файловые дискрипто... весь текст скрыт [показать]
     
  • 2.66, pavlinux, 14:28, 26/11/2010 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    В оригинале действительно форков напихано, более того, два раза по while 1 ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.79, Аноним, 16:22, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    в фоках и дело когда количество таких процессов становится N_CPU то на exit... весь текст скрыт [показать]
     
  • 1.58, прохожий, 13:28, 26/11/2010 [ответить] [смотреть все]    [к модератору]  
  • +/
    по теме - протестил на том что было под руками: трабл подтвердился на Ubuntu 10.10 x86_64 и Debian 5.0.6 x86_64. на RHEL AS 4 U4 x86_64 не прокатило! видимо проблеме подверженны только ванильные ядра.
     
     
  • 2.65, pavlinux, 14:16, 26/11/2010 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Сможешь показать из Редхата АС 4 sysctl -A 124 egrep gc_ 124 fs file 124... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.67, прохожий, 14:42, 26/11/2010 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    держи uname -rm 2 6 9-78 14 EL x86_64 cat etc redhat-release Red Hat Enter... весь текст скрыт [показать]
     
     
  • 4.68, pavlinux, 14:51, 26/11/2010 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > fs.file-nr = 1812 0 98936
    > fs.file-max = 98936

    Ну и понятно, с чего бы ей загнуться.

    Хотя скорее дело не в этом. С версии 2.6.9+ много всего поменялось.

     
  • 1.86, Xaionaro, 18:22, 26/11/2010 [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    Кхм... Почему-то я стал в "мини-новостях" находить интересные новости чаще, чем в главных новостях. :)
     
  • 1.96, pavlinux, 01:18, 28/11/2010 [ответить] [смотреть все]    [к модератору]  
  • +/
    Кстати, тут чтоль никого с Microsoft C/C++ нету? :)
     
  • 1.97, cryo, 13:06, 29/11/2010 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    MacOS 10.6.5 Snow Leopard
    Ядро Darwin 10.5.0 Darwin Kernel Version 10.5.0: Fri Nov  5 23:20:39 PDT 2010; root:xnu-1504.9.17~1/RELEASE_I386 i386 i386

    Запустил эксплойт.

    Система по ощущениям _вообще_ не заметила этого DoS. Все бегает, GUI летает, топ работает :)
    Пишу этот пост.

    Простой kill -15 из-под юзера убил программу моментально.

    Строка из топа:
    7669  a.out        97.9  01:50.11 1/1  0    14   22    104K   240K   320K   9640K  2370M  7669 7592 running  501  175       36      85         42         52992338+ 64

    Нет времени смотреть, как тут реализовано закрытие сокета. Кому интересно - гляньте.

     
     
  • 2.98, fidaj, 13:16, 29/11/2010 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    ну теперь кто бы еще и с виндовс машин дал такую же информацию - тогда бы была более полная картина мира :)
    А с мак осью -  забавно...
     
  • 1.99, pavlinux, 23:55, 30/11/2010 [ответить] [смотреть все]    [к модератору]  
  • +/
    Свежий патчиг. Для версии 2.6.37-rc4, но думаю руками сами переделаете.

    [code]
    diff --git a/net/unix/garbage.c b/net/unix/garbage.c
    index c8df6fd..f89f83b 100644
    --- a/net/unix/garbage.c
    +++ b/net/unix/garbage.c
    @@ -96,7 +96,7 @@ static DECLARE_WAIT_QUEUE_HEAD(unix_gc_wait);
    unsigned int unix_tot_inflight;


    -static struct sock *unix_get_socket(struct file *filp)
    +struct sock *unix_get_socket(struct file *filp)
    {
    struct sock *u_sock = NULL;
    struct inode *inode = filp->f_path.dentry->d_inode;
    @@ -259,9 +259,16 @@ static void inc_inflight_move_tail(struct unix_sock *u)
    }

    static bool gc_in_progress = false;
    +#define UNIX_INFLIGHT_TRIGGER_GC 16000

    void wait_for_unix_gc(void)
    {
    + /*
    + * If number of inflight sockets is insane,
    + * force a garbage collect right now.
    + */
    + if (unix_tot_inflight > UNIX_INFLIGHT_TRIGGER_GC && !gc_in_progress)
    + unix_gc();
    wait_event(unix_gc_wait, gc_in_progress == false);
    }
    [/code]

     

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


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