The OpenNET Project / Index page

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

В X11 сервере найдена серьезная уязвимость

03.05.2006 23:05

При анализе исходных текстов XOrg автоматизированной системой Coverity, была выявлена одна из самых серьезных проблем безопасности X11 сервера, обнаруженных за последние 6 лет.

Используя найденную в расширении XRender проблему, атакующий, имеющий локальный или удаленный доступ к X-серверу, может вызвать отказ в обслуживании или запустить код (в большинстве случаев X-сервер запущен из-под root).

Проблеме подвержены X11R6.8.x, X11R6.9.0 и X11R7.0 (xorg-server 1.0.x).

  1. Главная ссылка к новости (http://www.linuxelectrons.com/...)
  2. X.Org X11 Render Extension Buffer Overflow Vulnerability
  3. news.yahoo.com: Homeland Security Audit Flags 'Critical' Linux Bug
  4. OpenNews: Результаты автоматизированной проверки качества открытых программ
  5. OpenNews: Проверка открытых программ на качество кода продолжается
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/7448-x11
Ключевые слова: x11
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (24) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Dyr (??), 00:04, 04/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Везде говорится одно и тоже: НЕ ЗАПУСКАЙТЕ ИКСЫ ИЗ-ПОД ROOT'А. Да и ставить их на сервер - последнее дело...
     
     
  • 2.2, Аноним (-), 00:15, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Везде говорится одно и тоже: НЕ ЗАПУСКАЙТЕ ИКСЫ ИЗ-ПОД ROOT'А.

    Инструкцию по запуску иксов без root в студию.
    Готов поспорить, что у тебя иксы тоже под root работают. Иначе никак, разве что SELinux использовать.

     
     
  • 3.4, THESERG (??), 00:38, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    точно, под рутом!
     
  • 3.5, Dyr (??), 01:18, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >>Везде говорится одно и тоже: НЕ ЗАПУСКАЙТЕ ИКСЫ ИЗ-ПОД ROOT'А.
    >
    >Инструкцию по запуску иксов без root в студию.
    >Готов поспорить, что у тебя иксы тоже под root работают. Иначе никак,
    >разве что SELinux использовать.
    Уж не знаю, что у вас там из под линуксов без рута не запускается, а под FreeBSD прекрасно работает. echo "exec startkde" > ~/.xinitrc и вперёд, работать.

     
     
  • 4.6, pavlinux (??), 02:08, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    [...отмодерировано...]
    но чтоб не отличать KDE от XWindow это перебор... :)
     
     
  • 5.14, Паштет (?), 07:41, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Нислабо :))))
    Человек продемонстировал запуск KDE после запуска X Window (под root судя по его словам), что, очевидно, по его мнению, остроумно демонстирует запуск такого монстроида.

    [...отмодерировано...]

     
  • 5.16, glebofff (?), 08:00, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    С тобой можно было бы согласиться, если бы не одно но. Что бы ни написал Dyr в .xinitrc, сам факт этого уже говорит о многом. Во-1х, о том, что он всё-таки отличает KDE от "XWindow". Во вторых, никаких xdm/gdm/и т.д. не запускается при старте системы (что исключает root'а), т.к. придётся редактировать немножко другие файлы (.xsession, etc). Ну и как следствие, иксы стартуют от пользователя командой startx.

    [...отмодерировано...]

     
  • 4.20, GateKeeper (??), 09:32, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Эх... Думать надо, прежде, чем постить. А после обдумывания - проверять.

    # id
    uid=1001(userop) gid=0(wheel) groups=0(wheel), 5(operator)
    # ps auxww | grep -I "X"
    userop   667  0,0  0,1  1672  1148  v2  S+    вт15      0:00,01 /bin/sh /usr/X11R6/bin/startx
    userop   685  0,0  0,1  1996  1168  v2  S+    вт15      0:00,00 /usr/X11R6/bin/xinit /home/userop/.xinitrc -- -auth /home/userop/.serverauth.667 -nolisten tcp
    root     686  0,0  4,0 50724 41500  v2  R     вт15     17:17,23 X :0 -auth /home/userop/.serverauth.667 -nolisten tcp (Xorg)
    # pwd
    /usr/X11R6/bin
    # ls -l
    lrwxr-xr-x  1 root  wheel        4 20 апр 17:27 X -> Xorg
    -rws--x--x  1 root  wheel  1677193 20 апр 17:27 Xorg

    Этого достаточно, чтоб доказать, что иксы не-под рутом не запускаются?

     
     
  • 5.22, Floyd (?), 10:11, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    А вы повнимательней посмотрите  или запустите top на предмет X, он-то как раз из под рута.

    floyd@w451:~> ps aux | grep X
    floyd     4682  0.0  0.4   3876  1084 tty1     S+   May03   0:00 /bin/sh /usr/X11R6/bin/startx
    floyd     4683  0.0  0.2   2796   516 tty1     S+   May03   0:00 tee /home/floyd/.X.err
    floyd     4707  0.0  0.2   2496   520 tty1     S+   May03   0:00 xinit /usr/X11R6/lib/X11/xinit/xinitrc -- /usr/X11R6/lib/X11/xinit/xserverrc -auth /home/floyd/.serverauth.4682 -nolisten tcp

    root      4708  0.2 18.9  53492 42484 tty7     Ss+  May03   2:56 X :0 -auth /home/floyd/.serverauth.4682 -nolisten tcp -nolisten tcp  # Ой, а он и вправду из под рута ;)


    floyd     4738  0.0  0.4   3876   992 tty1     S    May03   0:00 /bin/bash /usr/X11R6/lib/X11/xinit/xinitrc

     
  • 5.24, pavlinux (??), 12:10, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, ну да, - теперь не отличаем GID=0 и имя root или wheel
    те же яйца только вид с боку.

    Если драйвера будут иметь UID != 0, и им ядро позволит запускатся,
    то это будет жопа ещё большая, нежели явная ошибка в модуле Xrender.

     
     
  • 6.31, GateKeeper (??), 17:26, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну да, ну да, - теперь не отличаем GID=0 и имя root или wheel
    >те же яйца только вид с боку.

    ну да, ну да... теперь еще и не умеем распознать, что в выводе 'ps auxww' первым полем идёт не GID, а UID...
    Первые две строки показывались для того, чтоб показать, кто какой auth-cookie юзает, третья - показать, от какого пользователя идёт приём данного cookie.

    Далее вполне понятный, думаю, вывод 'ls -l'. Или указать на arpopos или даже конкретные man'ы?

     
  • 4.21, webdizz (?), 09:33, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    подтверждаю у меня под фрей X-ы запускаются startx-ом
    и тоже из под юзера, настройка да только из под root-а
     
  • 4.23, Kemm (?), 11:28, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    /usr/X11R6/bin/Xorg принадлежит root'у и имеет установленный suid-бит. Дальше объяснять?
     
  • 2.3, anonimous (?), 00:28, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    > Везде говорится одно и тоже: НЕ ЗАПУСКАЙТЕ ИКСЫ ИЗ-ПОД ROOT'А. Да и ставить их на сервер - последнее дело...

    они всеравно частично под рутом работают, а сервера ведь разные бывают не только рутеры =)

     

  • 1.12, Abigor (??), 07:21, 04/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а эксплоит будет?
     
     
  • 2.26, pavlinux (??), 13:12, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Running rendertest from XCB xcb/xcb-demo, is known to trigger this
    issue and results in a crash of the X server.
     
  • 2.27, pavlinux (??), 13:25, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Это патчик, и где стоит "-" это нихт гуд.
    ---------------
         if (npoint < 3)
    return;
         ntri = npoint - 2;
    -    tris = ALLOCATE_LOCAL (ntri & sizeof (xTriangle));
    +    tris = ALLOCATE_LOCAL (ntri * sizeof (xTriangle));
         if (!tris)
    return;
         for (tri = tris; npoint >= 3; npoint--, points++, tri++)
    ------------

    Ставим npoint = 3, в xTriangle = пихаем адрес чего нам надо,
    где достать то что нам надо, это надолго... да и оффтопик тут.

     

  • 1.19, Миха (??), 09:06, 04/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В OpenBSD не из под рута. Если не верите читайте послейднее интервью Theo De Raadt'a, проскакивало здесь недавно...
     
  • 1.25, Nickolay A Burkov (?), 12:32, 04/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Поддерживаю предыдущего оратора, традиционно для OpenBSD:
    # ps aux | grep X | grep -v grep
    _x11     29067  0.6  8.7  9384 28612 ??  S     27Apr06   98:44.73 X :0 (Xorg)
    root     21611  0.0  0.0  1616     4 ??  I     27Apr06    0:00.02 X: [priv] (Xorg)
    root     30848  0.0  0.0   632     4 C1  I+    27Apr06    0:00.05 /bin/sh /usr/X11R6/bin/startx
     
  • 1.28, Trubin (?), 13:26, 04/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    FreeBSD не под рутом :)

    {trubin@guru ~} uname -a
    FreeBSD guru.kgfi.local 5.5-PRERELEASE FreeBSD 5.5-PRERELEASE #1: Thu Apr  6 18:18:20 MSD 2006     root@guru.kgfi.local:/usr/obj/usr/src/sys/guru.kgfi.local  i386
    {trubin@guru ~} top
      PID USERNAME   PRI NICE   SIZE    RES STATE    TIME   WCPU    CPU COMMAND
      703 trubin      96    0 43352K 26548K select   0:16  2.10%  2.10% Xorg
      777 trubin      96    0 28920K 24196K select   0:05  0.59%  0.59% kdeinit
      747 trubin      96    0 32008K 25424K RUN      0:05  0.05%  0.05% kdeinit

     
     
  • 2.30, sz (?), 13:43, 04/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    ls -l 'which Xorg' в студию
     

  • 1.29, Costea (?), 13:36, 04/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    вот вырезка из Makefile порта во FreeBSD x11-servers/xorg-server
    ------cut-------
    .if !defined(NO_SUID_XSERVER) || ${NO_SUID_XSERVER} == NO
    pre-everything::
            @${ECHO_MSG} "By default, the X Server installs as a set-user-id root binary. When run by"
            @${ECHO_MSG} "a normal user, it checks arguments and environment as done in the x11/wrapper"
            @${ECHO_MSG} "port before handling them normally.  If you are concerned about the security"
            @${ECHO_MSG} "of this, but still want to run an X Server (for example using xdm/kdm/gdm,"
            @${ECHO_MSG} "which will still run the server as root), you can cancel the build and set"
            @${ECHO_MSG} "NO_SUID_XSERVER=YES in /etc/make.conf."

    SCRIPTS_ENV+=   SUID_XSERVER=YES
    .else
    SCRIPTS_ENV+=   SUID_XSERVER=NO
    .endif
    -----cut------

     
  • 1.32, vovan (??), 17:48, 04/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да, что-то смысл спора не очень понятен. В FreeBSD Х можно запускать не из под рута. Даже в хендбуке описано давно для ленивых :)
    А линух - и в африке со своими особенностями :)
     
  • 1.33, SunTech (?), 21:24, 04/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    То, что можно запускать не из под рута, еще не означает того, что работает он с пользовательскими привилегиями.
     

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



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

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