The OpenNET Project / Index page

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

Уязвимость в Guile, затрагивающая программы, привязанные к localhost

14.10.2016 09:50

Разработчики проекта GNU Guile, в рамках которого развивается свободная реализация функционального языка программирования Scheme, устранили заслуживающую внимания уязвимость, затрагивающую программы, которые принимают сетевые соединения, привязываясь к localhost. Уязвимость позволяет организовать выполнение кода на машине разработчика при открытии в браузере на той же машине специально оформленной web-страницы.

Многие разработчики считают, что привязка к localhost обеспечивает достаточный уровень безопасности и не позволяет обратиться к данному сервису из внешней сети. Тем временем, всё больше программ используют Web API и HTTP в своих сервисах. Если подобный сервис запущен на машине разработчика, то у атакующего появляется возможность отправки запросов к данным локальным сервисам через манипуляции с браузером, запускаемым в той же системе. Например, при открытии подконтрольного атакующему сайта, может быть сформирован запрос ресурса с "http://localhost:6379/" и браузер обратится к локальному сервису, ожидающему соединений на порту 6379.

Если протокол взаимодействия с сервисом основан на HTTP, то через браузер разработчика сервису можно отправить любую команду. Для скрытия обращения к localhost могут быть использованы произвольные доменные имена, указывающие в DNS на 127.0.0.1. В случае с интерпретатором Guile, который по умолчанию запускает обработчик для запросов к localhost, подобным способом можно организовать выполнение произвольного кода на языке Scheme на машине разработчика. Для локальных сервисов рекомендуется использовать unix-сокеты или именованные каналы, и не полагаться на привязку к localhost. Аналогичные способы атаки ранее были выявлены для БД Redis, Elasticsearch и Memcached.

  1. Главная ссылка к новости (https://lists.gnu.org/archive/...)
  2. OpenNews: Компилятор на базе GNU Guile достиг совместимости с приложениями на Emacs-Lisp
  3. OpenNews: Увидел свет GNU Guile 2.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/45321-guile
Ключевые слова: guile
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (41) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, A.Stahl (ok), 10:53, 14/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +20 +/
    Внимание! Утечка борща в третьей зоне. Уровень тревоги -- зелёно-фиолетовый. Рекомендуется погасить все localhost интерфейсы.
    Лисперам с личными котелками выстроиться в столовой и ждать указаний.
    Внимание...
     
     
  • 2.9, Аноним (-), 12:48, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Главное чтоб дырявых ложек всем хватило.
     

  • 1.3, Аноним (-), 11:06, 14/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Разработчики проекта GNU Guile, в рамках которого развивается свободная реализация функционального языка программирования Scheme, устранили заслуживающую внимания уязвимость

    Не льстите себе, всем пофиг. Её никто не использует кроме разработчиков.

     
     
  • 2.7, Аноним (-), 12:09, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Используется в пакетном менеджере GUIX.
     
     
  • 3.12, Аноним (-), 13:14, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ...который тоже не использует никто, кроме разработчиков. Они прям созданы друг для друга.
     
  • 2.26, Ordu (ok), 18:36, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Её никто не использует кроме разработчиков.

    Вообще, за редким исключением, языками программирования пользуются разработчики. MS пыталась привить пользователям любовь к васику, из этого ничего не вышло. И guile гораздо приятнее всяких васиков или lua. В том же lilypond'е, например. Он попадается и в других местах, скажем, в гимпе, но на гимп мне плевать, совершенно ненужная программа, по-моему. А вот с lilypond'ом я с удовольствием вожусь, и схема там очень кстати.

     
  • 2.30, кругомогорожено (?), 22:59, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Половина gschem (редактор принципиальных схем из gEDA, САПР для электроники) написана на Scheme. gEDA/gaf - набор специализированных утилит в духе UNIX, склеенных между собой скриптами на Scheme (бекенды для обработки списка соединений, экспортеры/импортеры/конвертеры).
     
  • 2.33, Аноним (-), 04:39, 15/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Я использую.
     
  • 2.35, admin (??), 07:51, 15/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    pacman -Qii guile
    Required By     : make
    pacman -Qii make
    Depends On      : glibc  guile
    точно никто?
     
     
  • 3.36, Аноним (-), 14:31, 15/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Package: make
    Source: make-dfsg
    Version: 4.0-8.1
    Installed-Size: 1057
    Maintainer: Manoj Srivastava <srivasta@debian.org>
    Architecture: i386
    Depends: libc6 (>= 2.17)
    Replaces: make-guile <- it's dead, Jim
    Suggests: make-doc
     
     
  • 4.39, admin (??), 01:03, 16/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Name            : make
    Version         : 4.2.1-1
    Description     : GNU make utility to maintain groups of programs
    Architecture    : x86_64
    URL             : http://www.gnu.org/software/make
    Licenses        : GPL3
    Groups          : base-devel
    Provides        : None
    Depends On      : glibc  guile
    Optional Deps   : None
    Required By     : None
    Optional For    : None
    Conflicts With  : None
    Replaces        : None
    Installed Size  : 1504.00 KiB
    Packager        : Andreas Radke <andyrtr@archlinux.org>
    Build Date      : Sat 11 Jun 2016 03:13:41 PM EEST
    Install Date    : Tue 14 Jun 2016 09:47:13 PM EEST
    Install Reason  : Explicitly installed
    Install Script  : No
    Validated By    : Signature
    Backup Files    :
    (none)
     
  • 4.40, admin (??), 01:11, 16/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.gnu.org/software/make/manual/make.html#Guile-Integration
     
  • 3.38, Яр (?), 20:55, 15/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И это очень странно
     

  • 1.4, Crazy Alex (ok), 11:19, 14/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    На вид - это скорее в браузерах уязвимость
     
     
  • 2.8, Аноним (-), 12:11, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот я тоже об этом подумал.
     
  • 2.13, Andrey Mitrofanov (?), 14:48, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > На вид - это скорее в браузерах уязвимость

    Вот не надо грязи. Это не уязвимость, это их основная функция: загрузить неизестно что неизвестно откуда и немедленно выполнить. А уж кто на localhost-е не спратался...

     
     
  • 3.20, Аноним (-), 16:09, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это в браузере. Если запретить кроссхост, то уязвимости не будет! А поломанные сайты - это проблемы владельцев сайтов... Ну или белый список прикручивать.
     
     
  • 4.31, angra (ok), 04:30, 15/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А если пойти по ссылке и внимательно почитать?
    Есть некий evilsite.tld на котором нехорошая страничка. TTL для A записи стоит в 1 секунду. И 9 секунд из 10 указывает на его настоящий IP, а 1 секунду на 127.0.0.1. При просмотре странички загружается и выполянется js, который раз в секунду пытается отправить запрос на evilsite.tld. И никакого cross-site.
     
  • 3.23, Crazy Alex (ok), 17:12, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, намёк понял и даже частично согласен, но вообще-то у них там CSP на этот счёт нынче есть. А согласен - в том плане, что на надёжность песочницы рассчитывать - себя не уважать. Либо у тебя недоверенный код не вопоняется в принципе, либо просто надейся, что тебя не поломают.
     

  • 1.6, freehck (ok), 12:08, 14/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Однако. Это получается, что чтобы атаковать лиспера, необходимо захватить DNS-сервер, которым он пользуется, вставить в него A-запись для какого-нибудь сайта 127.0.0.1, потом заставить этого лиспера открыть специальную страницу, которая будет слать запросы на этот сайт, и эксплуатировать уязвимость guile, чтобы выполнить на машине разработчика произвольный код...

    Знаете, наверное этот лиспер должен быть очень важным, раз на него такая изощрённая целевая атака идёт. :)

     
     
  • 2.10, Аноним (-), 12:52, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Или вставить запись в один из популярных host-файлов для блокировки рекламы
     
     
  • 3.11, Аноним (-), 13:04, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем вообще какую-то запись вставлять? Сразу к 127.0.0.1 коннектиться.
     
     
  • 4.15, Аноним (-), 15:35, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Same Origin?
     
  • 4.28, Michael Shigorin (ok), 19:28, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Зачем вообще какую-то запись вставлять?

    Чтоб заманить на контролируемую страничку.

     
  • 2.32, angra (ok), 04:33, 15/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Знаете, наверное этот лиспер должен быть очень важным, раз на него такая изощрённая целевая атака идёт. :)

    А кто сказал, что атака должна быть целевой? Создаем ресурс, раскручиваем его среди девелоперов(не обязательно лисперов, это не только для них уязвимость), в один прекрасный день собираем урожай. Время от времени повторяем.


     
     
  • 3.44, freehck (ok), 00:34, 18/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > не обязательно лисперов, это не только для них уязвимость

    А мне кажется, что речь только про программы на Guile, стало быть обязательно лисперов. :)

     

  • 1.14, Аноним (-), 15:02, 14/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Даже уязвимости в scheme не содержат побочных эффектов!
     
  • 1.16, Аноним (-), 15:36, 14/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот и до админов локалхоста добрались
     
     
  • 2.17, Админ локалхоста (?), 15:46, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И что мне теперь делать?
     
     
  • 3.18, Andrey Mitrofanov (?), 15:55, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > И что мне теперь делать?

    Начинай использовать Нью Гайл! Теперь это Настоящий Язык -- с уязвимаостями и секурити фиксами. Пора!

     

  • 1.19, Нанобот (ok), 16:01, 14/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Предлагаю запретить 127.0.0.1 и аналоги в браузерах для домохозяек
     
     
  • 2.21, Andrey Mitrofanov (?), 16:27, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Предлагаю запретить 127.0.0.1 и аналоги в браузерах для домохозяек

    Девелоперам на гну гайле завезли какие-то "отдельные" броузеры?

     
  • 2.22, Админ локалхоста (?), 16:38, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Предлагаю запретить 127.0.0.1 и аналоги в браузерах для домохозяек

    Предлагаю запретить /etc/hosts

     
     
  • 3.24, Crazy Alex (ok), 17:13, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Подозрительный ты админ локалхоста. Это ынтырпрайзные товарищи такое любят обычно.
     
     
  • 4.34, Аноним (-), 06:10, 15/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Действительно подозрительный, для тех кто не понимает сарказма.
     

  • 1.25, Аноним (-), 17:42, 14/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Tcp на локалхосте только хипстеры используют. Бородатые мужики - только югикс-сокеты.
     
     
  • 2.27, Crazy Alex (ok), 18:51, 14/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То есть авторы GNU Guile недостаточно бородаты? Так и запишем...
     

  • 1.37, Аноним (-), 16:19, 15/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ну что, зоркий глаз, на 15-й год ты заметил что браузер может ходить на локалхост? :)
     
     
  • 2.45, Andrey Mitrofanov (?), 11:53, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну что, зоркий глаз, на 15-й год ты заметил что браузер может
    > ходить на локалхост? :)

    Кстати, эти их lisp-хакеры https://lists.gnu.org/archive/html/guile-devel/2016-10/msg00029.html "просто" сделали https://blog.lizzie.io/exploiting-CVE-2016-8606.html и без DNS-ов и их переключений, а ч-з обычный :-S XMLHttpRequest и немного lisp-магии с переписыванием lisp-программы [как данных], чтоб в ней не было пробелов и кавычек. Секьюрити-иксперты с DNS-костылями курят в сторонке.

    Вау!

    ...Броузер... js... и немедленно исполнить. Прекрасно!

     

  • 1.42, й (?), 14:21, 17/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    тссс, не подсказывайте им про эрланг
     
     
  • 2.43, Andrey Mitrofanov (?), 19:13, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > тссс, не подсказывайте им про эрланг

    Не, не подсказывайте http://wingolog.org/archives/2016/10/12/an-incomplete-history-of-language-fac , не надо http://wingolog.org/archives/2016/09/20/concurrent-ml-versus-go .

     

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



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

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