The OpenNET Project / Index page

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

Уязвимость в Webmin, позволяющая удалять произвольные файлы в системе

10.09.2014 15:05

В проекте Webmin выявлена опасная уязвимость, позволяющая аутентифицированным пользователям удалить любой файл в системе. Операция удаления производится из обработчика заданий cron, выполняемого с правами пользователя root. Проблема вызвана некорректной обработкой файлов блокировки, которые создаются с использованием в имени файла содержимого одной из передаваемых пользователем переменных. При указании в переменной user относительного пути к файлу и разделении его нулевым символом (например, "../../../../etc/passwd%00") будет осуществлён вызов unlink("../../../../etc/passwd\\0.lock") в директории с файлами блокировки, что приведёт к удалению файла /etc/passwd.

Интересно, что проблема без лишней огласки наличия уязвимости была устранена в майском выпуске Webmin 1.690. В примечании к выпуску было в общем виде было упомянуто устранение межсайтового скриптинга и исправление незначительных проблем. Уязвимость была исправлена под видом добавления дополнительной проверки на предмет существования пользователя в системе.

  1. Главная ссылка к новости (https://sites.utexas.edu/iso/2...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/40560-webmin
Ключевые слова: webmin
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (45) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, daemontux (?), 15:07, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    За использование этой хрени нужно бить по рукам.
     
     
  • 2.3, ck80 (ok), 15:32, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    "Эту хрень" тоже можно настроить так, что она будет безопасна в использовании. Перевесить на нестандартный порт, пускать только одного пользователя и т.д.
     
     
  • 3.5, vitalif (ok), 15:53, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +14 +/
    ...отключить от интернета и закрыть в железный ящик...
     
     
  • 4.14, Аноним (-), 18:38, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А ящик поставить за забором, натянув колючую проволоку и выпустив злых собак. На всякий случай часовых поставить. Мало ли чего.
     
     
  • 5.18, Аноним (-), 19:15, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И пулемет на крышу поставим, консервы охранять... ©
     
  • 5.21, Нанобот (ok), 20:05, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    +ров с пираньями или аллигаторами
    и снайперов по периметру
     
  • 5.31, Аноним (-), 06:00, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Безопасной можно считать лишь систему, котоpая выключена, замуpована в бетонный коpпус, запеpта в помещении со свинцовыми стенами и охpаняется вооpуженным каpаулом, — но даже в этом случае сомнения не оставляют меня." (c)
     
     
  • 6.33, rshadow (ok), 06:57, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Несомненно. Но еще есть такое понятие как: "говнокод" ...
     
  • 4.30, Sabakwaka (ok), 03:38, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    VPN будит такие же эмоции?
     
  • 3.7, Аноним (-), 16:18, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Школьные у вас представления о безопасности.
     
  • 3.48, XoRe (ok), 02:35, 13/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > "Эту хрень" тоже можно настроить так, что она будет безопасна в использовании.
    > Перевесить на нестандартный порт, пускать только одного пользователя и т.д.

    Объективно, можно повесить за nginx + HTTP авторизация на самом nginx + валидный SSL сертификат.
    Просто если webmin поломают - это атака на систему снаружи.
    Если не поломаются - атака на систему изнутри (админа отучают от консоли).
    В любом случае нехорошо.

     
  • 2.10, Аноним (-), 17:37, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >За использование этой хрени нужно бить по рукам.

    Пытался ее использовать несколько раз... Честно пытался - нифига не вышло :) А вот в исходниках чего-нибудь можно и очень даже интересное. :)

     

  • 1.2, Аноним (-), 15:12, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    В Superb Mini Server 2.0.7 включен поправленный WebMin.
     
  • 1.4, Сергей (??), 15:39, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > В проекте Webmin выявлена опасная уязвимость

    А где новость? ;-)

     
  • 1.9, littlesavage (ok), 17:22, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Никогда его нигде не ставлю. А там, где достается от старых админов - сношу практически сразу же.
     
     
  • 2.36, SubGun (??), 07:36, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зачем?
     
  • 2.40, Аноним (-), 10:37, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Зашел в тему только чтоб похвастаться?
     

  • 1.11, mcshel (ok), 17:46, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Вообще смысла не вижу в webmin, уж лучше сразу учиться работать в консоле для молодых админов. Тем более, что и M$ в поледние годы активно внедряет и переводит всех на Powershell.
     
     
  • 2.23, Аноним (-), 21:00, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > годы активно внедряет и переводит всех на Powershell.

    Даже до MS доползло. Правда, консоли и интерпретаторы они делать так и не научились. Консоль у...щна, а интерпретатор ворочает километровые пути и здоровенные команды при том что автодополнение вечно не дополняет.

     
  • 2.24, Аноним (-), 21:14, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > консоле
    > е

    Откуда вы лезете?!

     
     
  • 3.41, Аноним (-), 10:40, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> консоле
    >> е
    > Откуда вы лезете?!

    Сказано же. МС внедряет. МС админам становится стремно не знать элементарных команд -> они идут хвастаться, что осилили консоле. Без малейшего представления о том, что разные интерфейсы могут быть полезны и удобны.


     
     
  • 4.44, XoRe (ok), 02:14, 13/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Не нужно быть Онотоле,
    Чтобы познать консоле...
     

  • 1.12, Аноним (-), 17:55, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    аналог бесплатного webmin - vestacp.

    That's good...

     
     
  • 2.16, Logo (ok), 18:47, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Шо-то я не понял, что тут беплатное.
     
     
  • 3.22, Stax (ok), 20:09, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "бесплатного webmin", написано же.
     

  • 1.13, th3m3 (ok), 18:30, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Если нужен гуй, то Ajenti V неплоха. Она на Python, никакого php.
     
     
  • 2.15, Logo (ok), 18:43, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ага, а вот Webmin вы и в глаза не видели.
     
  • 2.45, XoRe (ok), 02:15, 13/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Если нужен гуй, то Ajenti V неплоха. Она на Python, никакого php.

    Акелло промахнулсо

     

  • 1.17, Logo (ok), 18:52, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Прикольные комментарии, у одного лютая ненависть, у другого полнейшее незнание, а остальным - по-болтать :)

    Не подходит вам, не применяйте, а если нужно то ставьте и настраивайте, удалив ненужные модули и выставив нужные права, но не нужно категорических всех с налету отталкивать, все там работает и все там ограничивается.

     
     
  • 2.19, Michael Shigorin (ok), 19:47, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Не подходит вам, не применяйте, а если нужно то ставьте и настраивайте,
    > удалив ненужные модули и выставив нужные права, но не нужно категорических
    > всех с налету отталкивать, все там работает и все там ограничивается.

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

    Вы вот когда ставите-настраиваете-удаляете-выставляете -- прикрываете SSL, белым списком IP, HTTP Basic Auth (хотя бы чем-то из)?..

     
     
  • 3.26, Logo (ok), 23:20, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Дело не в успокаивании, а в том, что те, кто писал раньше реплики, сам никогда не работал с вебмином, а накосячить можно и через ssh и протчими действиями. Ну есть проблемы в вебмине, есть, все зависит от применимости его. Если я даю кому-то контроль через вебмин, то оставляю только то, что не принесет вреда, а сам работаю через ssh и поверьте, угрозы от этого серверу не меньше и файлы иногда пропадают :)

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

     
     
  • 4.46, XoRe (ok), 02:18, 13/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Подумайте о том, что уязвимость нашли в модуле заданий Cron.
    Это не левый модуль, это один из самых что ни на есть базовых модулей.
    И вы об уязвимости знаете только потому, что её нашли.
    А сколько ещё не нашли - вы не знаете.

    > На счет вопроса, то да, обычно пренебрежительно отношусь к безопасности :) Часто
    > откладываю на потом :)

    Есть два типа админов...

     

  • 1.20, Нанобот (ok), 20:01, 10/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    >unlink("../../../../etc/passwd\0.lock")

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

    новость должна быть не "исправили баг в webmin", а "в webmin добавили костылей для обхода кривизны perl"

     
     
  • 2.25, Аноним (-), 21:16, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Где кривизна перла-то, клован?
    > Участник: Нанобот
    > Рейтинг: -7208 баллов

    OH, SHI~! Дедуктивные способности меня не подвели. И в самом деле клован.

     
     
  • 3.27, тигар (ok), 23:28, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Где кривизна перла-то, клован?
    >> Участник: Нанобот
    >> Рейтинг: -7208 баллов
    > OH, SHI~! Дедуктивные способности меня не подвели. И в самом деле клован.

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

     
     
  • 4.28, Аноним (-), 23:41, 10/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Удивительно :-)
     
  • 4.29, YetAnotherOnanym (ok), 02:15, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > пегл мертв

    *побежал удалять SpamAssassin*

     
     
  • 5.37, SubGun (??), 07:40, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > *побежал удалять SpamAssassin*

    Давно пора

     
  • 3.42, Нанобот (ok), 10:44, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    кривизна перла состоит в том, что вызов функции типа unlink("/etc/passwd\0ololo") не может быть корректно преобразован в системный вызов операционной системы. вместо того, чтобы сообщить об ошибке, перл игнорирует её и на морозе производит системный вызов в заведомо неправильным параметром "/etc/passwd"
     
  • 2.43, angra (ok), 12:32, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Perl разрешает выстрелить себе в ногу, так как предполагает наличие разума у программиста. Если ты передал строку с \0, значит это было тебе нужно. А для защиты от прихода подобных данных извне в нем есть taint mode и регексы. Если разработчики webmin не используют taint mode, то это их проблема, а не perl.
    Мне интересно, а какой язык считает себя умнее программиста в этом вопросе и как именно обрабатывает такой случай? Если вы пнули perl вам ведь не составит труда сказать, где "некриво".  
     

  • 1.34, Адекват (ok), 07:25, 11/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    щас меня опять говном закидают, но я все равно спрошу:
    А что сразу нормально сделать нельзя что-ли ? Просто сесть, составить план проекта, и тщательно и скурпулезно выполнить свою работу, и каждый шаг проверять "а нет ли тут какой-нить дырки" ?
    Вроде как не на ассемблере пишут.
     
     
  • 2.35, тигар (ok), 07:34, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > щас меня опять говном закидают, но я все равно спрошу:
    > А что сразу нормально сделать нельзя что-ли ? Просто сесть, составить план
    > проекта, и тщательно и скурпулезно выполнить свою работу, и каждый шаг
    > проверять "а нет ли тут какой-нить дырки" ?
    > Вроде как не на ассемблере пишут.

    конечно можно!и писать кот совсем без ошибок тоже можно, но не людьми!

     
  • 2.38, oopsy (?), 09:37, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы так делаете?
    Получается?
    Если на оба вопроса ответ положительный, ссылками на проекты с планами и проверками не поделитесь?
     
  • 2.39, Аноним (-), 10:02, 11/09/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >>и скурпулезно

    Вот именно как ты написал так и делают - скурпулезно.

     
  • 2.47, XoRe (ok), 02:29, 13/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > щас меня опять говном закидают, но я все равно спрошу:
    > А что сразу нормально сделать нельзя что-ли ?

    Можно. Но это будет:
    а) ОЧЕНЬ дорого;
    б) ОЧЕНЬ медленно;

    Как вам разработка notepad за 100к $?
    В ней не будет никаких ошибок, надежность её кода будет математически доказана.
    Почему я привел в пример notepad? Чтобы показать цену разработки очень простого ПО.
    По объему кода webmin на два-три порядка больше простого notepad.
    Цена разработки (+ отлов ошибок и доказательство надежности) тоже вырастает на два-три порядка.
    И на этом нельзя заработать - никому не нужны простые программы за дикие цены.
    Там, где надежность действительно важна, давно так делают.
    А остальной мир предпочитает дешевое/бесплатное и потенциально дырявое ПО.
    Просто иногда вся планета срочно меняет пароли из за новой "внезапной" уязвимости.

     

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



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

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