The OpenNET Project / Index page

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



"Уязвимости в системе загрузки модулей для языка Go"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от opennews (??), 15-Дек-18, 13:11 
В реализации команды "go get (https://golang.org/pkg/cmd/go/internal/get/)", предоставляемой штатным интерфейсом командой строки для языка Go и используемой для загрузки пакетов и связанных с ними зависимоcтей, выявлено несколько уязвимостей (https://seclists.org/oss-sec/2018/q4/254), позволяющих выполнить код при обработке специально оформленных пакетов, подготовленных злоумышленниками. Проблемы устранены в корректирующих выпусках Go 1.11.3 и 1.10.6.


Первая уязвимость (https://golang.org/issue/29230.)  (CVE-2018-16873 (https://security-tracker.debian.org/tracker/CVE-2018-16873)) проявляется при выполнении команды "go get -u" и прямом импорте модулей  в режиме GOPATH. Атака сводится к созданию в модуле импортируемых путей, заканчивающихся на "/.git", которые воспринимаются при вызове "go get -u" как корень репозитория с последующим выполнением в нём команд git. Выполнение кода организуется через размещение вредоносных команд в прикреплённом к репозиторию файле конфигурации git;


Вторая уязвимость (https://golang.org/issue/29231) (CVE-2018-16874 (https://security-tracker.debian.org/tracker/CVE-2018-16874)) позволяет при выполнении команды
"go get" выйти за пределы определённого для модуля корневого пути, через манипуляцию с фигурными скобками в импортируемых путях. Проблема проявляется только в режиме GOPATH и не затрагивает появившийся в Go 1.11 (https://www.opennet.ru/opennews/art.shtml?num=49183) экспериментальный режим модулей (https://golang.org/cmd/go/#hdr-Module_aware_go_get). При помощи данной уязвимости атакующий может перезаписать произвольные файл в ФС, насколько это позволяют текущие полномочия.

URL: https://seclists.org/oss-sec/2018/q4/254
Новость: https://www.opennet.ru/opennews/art.shtml?num=49787

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

4. "Уязвимости в системе загрузки модулей для языка Go"  +1 +/
Сообщение от Аноним (4), 15-Дек-18, 13:39 
1.11.3 ломает go get. Но уже есть 1.11.4, в котором обещали исправить go get.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Уязвимости в системе загрузки модулей для языка Go"  +14 +/
Сообщение от Аноним (5), 15-Дек-18, 13:40 
Вот что происходит, когда смешивают систему сборки и пакетный менеджер.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Уязвимости в системе загрузки модулей для языка Go"  –1 +/
Сообщение от Аноним (6), 15-Дек-18, 14:08 
Объясните кратко, какие профиты даст переход с 1.9 на 1.11.4?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Уязвимости в системе загрузки модулей для языка Go"  +1 +/
Сообщение от Моё правило (?), 15-Дек-18, 14:14 
А я то думаю, почему половина софта на GO в контейнерах собирается... Знали, видимо.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Уязвимости в системе загрузки модулей для языка Go"  +1 +/
Сообщение от oleg (??), 15-Дек-18, 14:15 
maven
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

9. "Уязвимости в системе загрузки модулей для языка Go"  +2 +/
Сообщение от Урри (?), 15-Дек-18, 14:39 
Нет. Просто неосиляторы.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от Аноним (10), 15-Дек-18, 14:40 
>появившийся в Go 1.11 экспериментальный режим модулей
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

11. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от asdasd (?), 15-Дек-18, 15:00 
Новые SIMD инструкции и как обычно GC был сильно оптимизирован.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

12. "Уязвимости в системе загрузки модулей для языка Go"  +5 +/
Сообщение от Аноним (12), 15-Дек-18, 15:06 
А говорили что такое только на C или PHP может быть, а Go — безопасный, хм.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Уязвимости в системе загрузки модулей для языка Go"  –3 +/
Сообщение от Аноним (13), 15-Дек-18, 15:07 
А есть ещё отсталые которые собирают не в контейнерах? Печаль...
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

14. "Уязвимости в системе загрузки модулей для языка Go"  +1 +/
Сообщение от Аноним (13), 15-Дек-18, 15:09 
Безопасный ЯП это что-то интересное...  это как безопасный секс?
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

15. "Уязвимости в системе загрузки модулей для языка Go"  –2 +/
Сообщение от Моё правило (?), 15-Дек-18, 15:19 
Ну ниче, с go mod теперь не нужно осваивать bash и способы установки GO_PATH, теперь можно и вылазить с контейнеров и билдить всесь go-внософт на хост системе.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

16. "Уязвимости в системе загрузки модулей для языка Go"  +1 +/
Сообщение от Аноним (16), 15-Дек-18, 15:33 
s/с контейнеров/из контейнеров/
граммарнаци негодуэ
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

17. "Уязвимости в системе загрузки модулей для языка Go"  –2 +/
Сообщение от пох (?), 15-Дек-18, 15:41 
s в слове docker stands for 'S'security, ага. И в rkt/lxc тоже, если что. Собирайте-собирайте.

На самом деле, разумеется, это делают для того, чтобы не выгребать потом тонны мусора из своего home, и чтоб еще и запускалось не только там же где этот home есть.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

18. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от Аноним (18), 15-Дек-18, 15:50 
Тоже самое про Rust говорят. С нетерпением жду когда у фанатиков подгорит от найденых уязвимостей. Oh, wait, они уже есть! Любой низкоуровневый код без дериктивы unsafe не работает.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

20. "Уязвимости в системе загрузки модулей для языка Go"  +1 +/
Сообщение от Аноним (20), 15-Дек-18, 16:00 
Не могу говорить за всех фанатиков, но я, как один из них, абсолютно нормально отношусь к уязвимостях, находимым в моём языке / его экосистеме. Это, конечно, не офигеть как хорошо, но и смертельно; доказумо идеальный код в реальном мире писать невозможно, и руст, конечно же, не исключение.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

21. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от OldFart (?), 15-Дек-18, 16:10 
>и чтоб еще и запускалось не только там же где этот home есть.

Скомпилированному файлу накакать на home...

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

22. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от OldFart (?), 15-Дек-18, 16:12 
Идеальный код exist :)

> echo 'Hello world';

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

23. "Уязвимости в системе загрузки модулей для языка Go"  +3 +/
Сообщение от Crazy Alex (ok), 15-Дек-18, 16:15 
Ну нормально, и этим пришла очередь по граблям походить... Закономерный этап.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

24. "Уязвимости в системе загрузки модулей для языка Go"  –1 +/
Сообщение от Crazy Alex (ok), 15-Дек-18, 16:24 
Им собирают, как правило, то, что ни с какими нормальными пакетными менеджерами не дружит и дружить не должно - либо ынтырпрайзный софт либо андроидный, и там и там подход "всё своё тащу с собой, за обновлениями идите к разработчику, и хрен вам а не самостоятельное обновление зависимостей". Плюс монструозное и детальное поисание всего и вся, на что готов сильно не каждый.

С Go этот подход попытались протащить туда, где пакетные менеджеры есть, да ещё обеспечить удобство работы с пакаджами. А оно так не работает - либо ты описываешь всё детально и имеешь простыни либо делегируешь задачу тому, для чего она первоочередная - как установка пакетов для дистрибутива/пакетного менеджера. А подход "сделаем впридачу к языку, и чтобы оно было всё волшебно и удобно" не взлетает - угу, начиная с того самого leftpad.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

25. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от аноним3 (?), 15-Дек-18, 16:41 
согласен идеальный вариант. не подкопаешься.или на питоне: print('Hello World')
на С:
main()
{
  printf("Hello World\n");

}
пишем все. кто на чем. хочу на дельфях глянуть)))

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

26. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от Аноним (26), 15-Дек-18, 16:51 
С каких пор он стал "пакетным менеджером"?
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

30. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от Vkni (ok), 15-Дек-18, 18:58 
> Им собирают, как правило, то, что ни с какими нормальными пакетными менеджерами не дружит и дружить не должно

Вот это, кстати, конкретнейшая проблема. Надо Михаила спросить про текущее состояние интеграции с языковыми пакетными менеджерами. В Альте была движуха год назад, но, кажется, воз и ныне там.

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

31. "Уязвимости в системе загрузки модулей для языка Go"  +3 +/
Сообщение от Аноним (31), 15-Дек-18, 19:00 
исправление уязвимостей и багов с версии 1.9 до 1.11?
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

32. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от Vkni (ok), 15-Дек-18, 19:03 
Посмотрел список рассылки - интересная идея от manowar@altlinux.org - плагины к apt.

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

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

33. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от Идея (?), 15-Дек-18, 19:59 
Сам-то видимо осилил по-сложнее "Ehlo world" написать
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

34. "Уязвимости в системе загрузки модулей для языка Go"  +1 +/
Сообщение от Аноним (34), 15-Дек-18, 20:14 
> Это, конечно, не офигеть как хорошо, но и смертельно

Долго завис на этой фразе

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

35. "Уязвимости в системе загрузки модулей для языка Go"  +1 +/
Сообщение от Аноним (35), 15-Дек-18, 20:15 
а может sysvinit на rust переписать?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

36. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от Аноним (36), 15-Дек-18, 21:46 
Т-с-с-с-
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

37. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от Моё правило (?), 15-Дек-18, 23:29 
Проверил, ваш сниппет не работает :(
Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

38. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от OpenEcho (?), 15-Дек-18, 23:39 
Вы правда хотите чтобы все отсюда:

https://esolangs.org/wiki/Hello_world_program_in_esoteric_la...

попало сюда ?

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

39. "Уязвимости в системе загрузки модулей для языка Go"  –2 +/
Сообщение от ананим.orig (?), 15-Дек-18, 23:53 
> Вот что происходит, когда смешивают систему сборки и пакетный менеджер

Не-не!
Это происходит когда думают что ЯП заменит безопасность.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

40. "Уязвимости в системе загрузки модулей для языка Go"  +1 +/
Сообщение от аноним3 (?), 15-Дек-18, 23:57 
rustinit? ох уж эти любители суперегероев от корпораций))))
Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

41. "Уязвимости в системе загрузки модулей для языка Go"  +2 +/
Сообщение от Аноним (-), 16-Дек-18, 01:02 
Единственная нормальная интеграция - использовать системный пакетный менеджер. Потому что когда сразу 5 программ делают одно и то же по смыслу, результатом становится закономерный бардак и потеря контроля над процессом.

А у хипстоты с новоязами к тому же есть большие проблемы с пониманием азов безопасности.

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

42. "Уязвимости в системе загрузки модулей для языка Go"  +1 +/
Сообщение от Аноним84701 (ok), 16-Дек-18, 01:10 
> согласен идеальный вариант. не подкопаешься.


% echo "Hello" >> /dev/full
echo: write error: no space left on device

>или на питоне: print('Hello World')


% python -c "print 'helllo'" >>/dev/full
close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr

;-)
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

43. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от КГБ СССР (?), 16-Дек-18, 01:15 
О мой мозг! :)
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

44. "Уязвимости в системе загрузки модулей для языка Go"  –1 +/
Сообщение от КГБ СССР (?), 16-Дек-18, 01:15 
Это восхитительно!
 
 
Monkeys
 

1 RIGHT
1 RIGHT
1 RIGHT
1 RIGHT
1 RIGHT
1 RIGHT
1 DOWN
1 DOWN
1 LEFT
1 LEFT
2 LEFT
2 UP
2 RIGHT
2 LEFT
2 DOWN
2 UP
2 RIGHT
2 LEFT
2 DOWN
2 RIGHT
2 BOND
1 YELL
1 LEFT
1 LEFT
1 UP
1 UP
1 LEFT
1 LEFT
1 UP
1 UP
1 LEFT
1 DOWN
1 DOWN
1 LEFT
1 UP
1 UP
1 LEFT
1 DOWN
1 DOWN
1 RIGHT
1 DOWN
1 LEFT
1 TEACH
1 DOWN
1 RIGHT
1 UP
1 UP
1 UP
1 RIGHT
1 DOWN
1 DOWN
1 DOWN
1 DOWN
1 UP
1 RIGHT
1 RIGHT
1 DOWN
1 DOWN
1 TEACH
4 YELL
1 RIGHT
1 RIGHT
1 DOWN
1 DOWN
1 DOWN
1 LEFT
1 YELL
1 YELL
1 LEFT
1 LEFT
1 LEFT
2 LEFT
2 DOWN
2 RIGHT
2 UP
2 UP
2 LEFT
2 LEFT
2 LEFT
2 DOWN
2 DOWN
2 DOWN
2 RIGHT
2 RIGHT
2 RIGHT
2 RIGHT
2 UP
2 UP
2 UP
2 LEFT
2 LEFT
2 DOWN
2 RIGHT
2 YELL
3 YELL
1 YELL
1 RIGHT
1 RIGHT
1 RIGHT
1 YELL
4 DOWN
4 TEACH
4 DOWN
4 DOWN
4 DOWN
4 DOWN
4 DOWN
2 RIGHT
6 LEFT
6 DOWN
6 RIGHT
6 UP
6 UP
6 LEFT
6 DOWN
6 RIGHT
6 YELL
4 YELL
2 YELL

Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

45. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от Аноним (45), 16-Дек-18, 11:03 
> Это происходит когда думают что ЯП заменит безопасность.

Кроме Вас так никто не думает. Да и Вы так не думаете. На (условно)безопасном языке всегда можно написать небезопасные алгоритмы, небезопасную логику. Но овно на вентилятор надо вбросить, верно, братец-аноним?

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

46. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от OpenEcho (?), 16-Дек-18, 11:49 
>> согласен идеальный вариант. не подкопаешься.
>
 
> % echo "Hello" >> /dev/full
> echo: write error: no space left on device
>

>>или на питоне: print('Hello World')

Вот правда, как в жизни, была нормальная программа, пришли, доработали и пипец, а ведь в начале все работало...


Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

47. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от трололо (?), 16-Дек-18, 11:58 
и не говори . кто их просил в /dev отправлять)))
Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

48. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от ананим.orig (?), 16-Дек-18, 16:03 
Вот на это овно, братец, половину и ловят при раскрутке платформы.
Та было с го, дотнетом, жабой,..
Это уже потом "ну вы же не думали, что..".
А не ты ли, братец, этот вентилятор раскручивал? За мзду малую, а? :D
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

49. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от Аноним (45), 16-Дек-18, 16:34 
> Это уже потом "ну вы же не думали, что..".

До Вас не дошло, братец. В отличие от Вас, все сразу понимали и знали, где "грабли зарыты" в "безопасных языках". Всем (кроме Вас) изначально было понятно, что если в "безопасном языке" в программном блоке перед "бесконечным циклом" Вы выделите гиг памяти под массив, обработаете его, не "обнулите" ссылку, а в последующем цикле он Вам уже нафиг не нужен (мало ли, Вам только хэш нужен был от массива) - то получите аналог "утечки памяти". Но Вас ведь надо носом в такое тыкать?

Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

50. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от ананим.orig (?), 16-Дек-18, 18:02 
> Всем (кроме Вас)

хорэ врать! Тут народ только этим и занимается. В любой новости об уязвимостях в проектах на С/С++.
И "прозревает" (прям как вы сейчас) во всех остальных.
Начиная с аксакала Айзена. :D

Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

51. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от Vkni (ok), 17-Дек-18, 00:02 
Там сложный сисадминско-административный вопрос: как наладить взаимодействие с языковыми репозитариями так, чтобы тратить как можно меньше времени и делать это минимально чeрeзжoпнo.
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

52. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от Аноним (52), 17-Дек-18, 09:30 
> А говорили что такое только на C или PHP может быть, а Go — безопасный, хм.

Вы неверно услышали, что говорили. Или не уловили суть данных двух уязвимостей. На безопасном языке можно запросто написать небезопасный алгоритм. А вот по невнимательности обратиться к освобожденной области памяти в C легче чем в Go.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

53. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от щавель (?), 17-Дек-18, 13:17 
sysrust, тогда уж.
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

54. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от уася (?), 17-Дек-18, 15:38 
GO_PATH это шо таке?
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

55. "Уязвимости в системе загрузки модулей для языка Go"  +/
Сообщение от Аноним2 (?), 19-Дек-18, 05:39 
sysirust, тогда уж.
Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

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