The OpenNET Project / Index page

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

Потенциальные проблемы с безопасностью при использовании утилиты less

24.11.2014 20:00

Михал Залевский (Michal Zalewski), известный эксперт по компьютерной безопасности, работающий в Google Security Team, опубликовал предупреждение о возможности скрытой эксплуатации уязвимостей в различных обработчиках контента, при использовании утилиты less. Во многих дистрибутивах Linux, включая CentOS и Ubuntu, для выводимого через less контента используются скрипты lesspipe, которые осуществляют вызов сторонних утилит для преобразования различных форматов в читаемый вид. В том числе вызываются isoinfo, iconv, groff, troff, grotty, man и cpio.

Проблема заключается в том, что многие из таких утилит потенциально уязвимы, а использование less, который по умолчанию применяется в различных программах для постраничного вывода на экран, может привести к неосознанной передаче данным утилитам внешних непроверенных данных, которые могут быть специально адаптированы для проведения атаки. Для демонстрации сути атаки подготовлены специально оформленные архив cpio и образ iso, просмотр которых через less приводит к краху. В качестве решения проблемы предлагается уйти от практики установки в дистрибутивах дополнительных обработчиков через переменные окружения LESSOPEN и LESSCLOSE.

  1. Главная ссылка к новости (http://seclists.org/fulldisclo...)
Лицензия: CC-BY
Тип: Проблемы безопасности
Короткая ссылка: https://opennet.ru/41120-less
Ключевые слова: less
Поддержать дальнейшую публикацию новостей на OpenNET.


Обсуждение (43) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Ordu (ok), 20:57, 24/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Ни о чём, на самом деле.
    Если less используется достаточно часто/активно, то unset на LESSOPEN, прописанный в ~/.bashrc, напрашивается: если мне хочется просмотреть html не как текстовый файл, а отобразить его в links, то я буду использовать links, а не less. Вбивать же в каждом таком случае --no-lessopen промежь аргументов задалбывает.
    Если же less не используется прямо и непосредственно, то как она может быть вызвана? Через $PAGER? Но вот тут, чтобы оценить существенность проблемы, не помешал бы списочек утилит, которые используют этот PAGER. man? Ну дык man не по рандомным файлам шарится, а по тем которым в общем следует доверять. git? Я не уверен на 100%, но по-моему, git использует PAGER исключительно для вещей типа вывода многостраничных log'ов, которые в less загружаются через pipe, и посему LESSOPEN не отрабатывает.
     
     
  • 2.47, Stax (ok), 22:31, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Если less используется достаточно часто/активно, то unset на LESSOPEN, прописанный в ~/.bashrc, напрашивается: если мне хочется просмотреть html не как текстовый файл, а отобразить его в links, то я буду использовать links, а не less. Вбивать же в каждом таком случае --no-lessopen промежь аргументов задалбывает.

    Зависит от. У меня, например, 10500 разных фильтров в кастомном LESSOPEN, как раз чтобы можно было less использовать часто и не париться на тему, открываю я html, pdf или там хочу посмотреть информацию по видео- или аудио-файлу. И это довольно удобно...

    > Через $PAGER? Но вот тут, чтобы оценить существенность проблемы, не помешал бы списочек утилит, которые используют этот PAGER. man?

    Если кто-то дергает $PAGER /tmp/tmpfile, достаточно добавить -L в опции $PAGER и проблем никаких.. А через пайп да, он и не сработает...

     

  • 1.4, Нимо Ан (?), 20:58, 24/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Руки прочь от unix way. Пофиксим уязвимость в одной утилите и её не станет во всех.
     
     
  • 2.7, anonymous (??), 21:05, 24/11/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Скриптописание нынче не в тренде. Водить пальцами по ведрофону - это стильно, молодёжно, а, главное, секурно.
     
  • 2.11, Аноним (-), 21:34, 24/11/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > не станет во всех.

    Да щаз. Это судя по всему будет напоминать картинку Волка из электронной игры "Ну, погоди!". Только вместо яиц - патчи, а если вы не успели вовремя крутануться - у вас ненавязчиво поселится какая-нибудь дрянь.

     
  • 2.43, pavlinux (ok), 17:32, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    $ echo $LESSOPEN $LESSCLOSE $PAGER $LESS

    $

    Debian 8

    Честно говоря, я эти переменные давно не встречал.
    А Свидетели Поттеринговы ваще не в курсе что это такое.    

     

  • 1.6, McLeod095 (??), 21:05, 24/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Стал использовать vim и отказался от mcedit. Захотелось также чего нить легкого и для просмотра файлов less устраивал, но после того как узнал комбинацию Ctrl+F для  less, то стал пользоваться tail намного реже. И тут вот такое прилетает.
    Обидно.
     
     
  • 2.9, edv (?), 21:20, 24/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Вы про
    SPACE or ^V or f or ^F
    Scroll forward N lines, default one window...?

    А что тут интересного?

     
     
  • 3.26, Аноним (26), 02:11, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Видимо, опечатался человек, а имелось в виду следующее:
    F      Scroll forward, and keep trying to read when the end of file is reached.  Normally this command would be used when already
                  at the end of the file.  It is a way to monitor the tail of a file which is growing while it is being viewed.  (The behav‐
                  ior is similar to the "tail -f" command.)
     
     
  • 4.27, McLeod095 (ok), 02:40, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо! Опечатался
    Конечно же Shift+F
     
  • 2.45, Michael Shigorin (ok), 20:42, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Стал использовать vim и отказался от mcedit. Захотелось также чего нить легкого
    > и для просмотра файлов less устраивал

    Обычно использую view ради подсветки синтаксиса и возможности при необходимости тут же поправить (понятно, что less тоже умеет позвать $EDITOR, но...).

    > но после того как узнал комбинацию Ctrl+F для  less,
    > то стал пользоваться tail намного реже.

    Есть ещё tailf -- минус две кнопки при наборе tail -f.

     
     
  • 3.48, Stax (ok), 22:48, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Есть ещё tailf -- минус две кнопки при наборе tail -f.

    А он вообще убог :(
    Не понимает tail -f *.log...

     

  • 1.8, Аноним (-), 21:06, 24/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Да уж, если в less, куда казалось бы дальше, может в утилите 'true' есть уязвимость?
     
     
  • 2.12, DeadLoco (ok), 21:55, 24/11/2014 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Статистический анализ показывает, что во всех уязвимых продуктах используется операция сложения...
     
  • 2.17, ryoken (?), 22:24, 24/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Да уж, если в less, куда казалось бы дальше, может в утилите
    > 'true' есть уязвимость?

    Поставил себе в качестве PAGER = most. (Где-то давно вычитал про  него). Про less забыл :).

     

  • 1.13, Sw00p aka Jerom (?), 22:11, 24/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    а чем more плох ?
     
     
  • 2.18, Свет в твоем окне (?), 22:53, 24/11/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Сразу выключается в конце файла, урод такой.
     
  • 2.21, Аноним (-), 23:35, 24/11/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    в некоторых дистрах он является линком на less.
     
  • 2.44, www2 (ok), 18:06, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И назад листать не позволяет.
     
     
  • 3.58, Sw00p aka Jerom (?), 02:38, 10/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > И назад листать не позволяет.

    man more

    ps: b

     

  • 1.22, Аноним (-), 23:38, 24/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    потому что неправильно утилиту пользуют.
    правильно так: cat file.ext | less
    тогда не будет он гроффами исходники манов портить и т.д.
    при правильном использовании автор перед форматами бессилен.
     
     
  • 2.40, www2 (ok), 17:18, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    less < file.ext

    Может так лучше?

     
  • 2.46, Michael Shigorin (ok), 20:43, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > правильно так: cat file.ext | less

    useless use of cat(1)

     
     
  • 3.49, Stax (ok), 23:31, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    unix-way, каждый делает свое дело. cat читает файл, bash организует пайп, ядро пересылает данные, less выводит. Все четко!
     

  • 1.24, Аноним (-), 00:29, 25/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Предвижу, на следующей неделе будет новость, как в утилите cat выявлена уязвимость.
     
     
  • 2.38, Khariton (ok), 16:15, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    будем делать тогда
    tac file | tac | less
     

  • 1.25, Led (ok), 01:21, 25/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    > Михал Залевский (Michal Zalewski)

    Интересно, откуда автор новости букву "й" взял? Сам придумал или марсиане подсказали?

     
     
  • 2.28, angra (ok), 05:07, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если ты чего-то не знаешь, то лучше молчи, а не рассказывай свои фантази на тему марсиан. Окончание польских фамилии -ski/-cki/-dzki передаются на русский как -ский/-цкий/-дский
     
     
  • 3.30, Аноним (-), 08:07, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Окончание польских фамилии -ski/-cki/-dzki передаются на русский как -ский/-цкий/-дский

    Ну вот, сейчас в этом усмотрят имперские амбиции, стремление захватить и русифицировать всю европу, и прочую в/на тематику...

    Никогда не понимал, вот вроде бы у людей есть свой язык, по крайней мере они так заявляют, так чего лезть других учить разговаривать на их родном языке. Я же не учу китайцев, какой предлог им использовать с названием моей страны, если у них вообще предлоги есть. Да мне вообще параллельно, как они там чего говорят. Это, по-ходу, какие-то исторические комплексы...

     
     
  • 4.31, жабабыдлокодер (ok), 08:59, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Они и на польском произносятся как "-кий". Это англо-американцы читают их как "-ки".
     
     
  • 5.33, Аноним (-), 09:45, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >Это англо-американцы читают их как "-ки".

    Как посмели? Кто разрешил?!

     
  • 5.36, Юпитер (?), 13:09, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вас кто-то обманул: по-польскі -ski произносится именно как -ски, безо всяких "й".
     
     
  • 6.51, Аноним (-), 23:43, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да какая разница как оно по-польски? Это должно только поляков волновать, что у них и как произносится. В русском языке добавляется Й, а если будете спорить, то можно и еще пару букв спереди добавить.

    И да, я буду говорить Лондон а не ландан, и Голландия вместо Nederland, потому что это мой язык, как хочу, так и говорю...

     
  • 4.32, Аноним (-), 09:44, 25/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Сами поляки в свое время ничтоже сумняшеся писали "Малгожата Тетчерова", и срaть хотели на то, что там ангельчане про них подумают.
     

  • 1.29, Адекват (ok), 06:33, 25/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/



    используются скрипты lesspipe, которые осуществляют вызов сторонних утилит для преобразования различных форматов в читаемый вид. В том числе вызываются isoinfo, iconv, groff, troff, grotty, man и cpio.




    скрипты lesspipe вызывают сторонние утилиты, или это сторонние утилиты для вывода на stdout используют  скрипты lesspipe ???

     
  • 1.34, Нанобот (ok), 10:20, 25/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    как-то слишком надумано
     
  • 1.39, Аноним (-), 16:43, 25/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А завтра он предложит убрать запуск X по умолчанию.
     
  • 1.52, iZEN (ok), 11:35, 27/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    На FreeBSD никак не могу задействовать more: всё время подставляется less(1).
    Хочу прочесть man more — вылазит man less. Ну что за х...? Алиаса подмены нет. Куда копать?
     
     
  • 2.53, Аноним (26), 14:15, 27/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > На FreeBSD никак не могу задействовать more: всё время подставляется less(1).
    > Хочу прочесть man more — вылазит man less. Ну что за х...?
    > Алиаса подмены нет. Куда копать?



    type more

    что говорит?

     
     
  • 3.55, iZEN (ok), 18:00, 27/11/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> На FreeBSD никак не могу задействовать more: всё время подставляется less(1).
    >> Хочу прочесть man more — вылазит man less. Ну что за х...?
    >> Алиаса подмены нет. Куда копать?
    >

    type more

    что говорит?

    more is /usr/bin/more


     
     
  • 4.56, Аноним (26), 21:26, 27/11/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я позже вспомнил, что у меня есть доступ к FreeBSD, и сам посмотрел Короче, на ... большой текст свёрнут, показать
     
  • 2.54, Аноним (26), 14:21, 27/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > На FreeBSD никак не могу задействовать more: всё время подставляется less(1).
    > Хочу прочесть man more — вылазит man less. Ну что за х...?
    > Алиаса подмены нет. Куда копать?

    Нашёл следующее в man less:


    COMPATIBILITY WITH MORE
           If the environment variable LESS_IS_MORE is set to 1, or if the program
           is  invoked via a file link named "more", less behaves (mostly) in con‐
           formance with the POSIX "more" command specification.


     

  • 1.57, azure (ok), 17:02, 28/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Просматривать .cpio и .iso при помощи less - это один из основных моих юз-кесов. Проблему надо немедленно чинить. Ага.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:
    При перепечатке указание ссылки на opennet.ru обязательно



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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