Уязвимости в системе загрузки модулей для языка Go

В реализации команды «go get«, предоставляемой штатным интерфейсом командой строки для языка Go и используемой для загрузки пакетов и связанных с ними зависимоcтей, выявлено несколько уязвимостей, позволяющих выполнить код при обработке специально оформленных пакетов, подготовленных злоумышленниками. Проблемы устранены в корректирующих выпусках Go 1.11.3 и 1.10.6.

Первая уязвимость (CVE-2018-16873) проявляется при выполнении команды «go get -u» и прямом импорте модулей в режиме GOPATH. Атака сводится к созданию в модуле импортируемых путей, заканчивающихся на «/.git», которые воспринимаются при вызове «go get -u» как корень репозитория с последующим выполнением в нём команд git. Выполнение кода организуется через размещение вредоносных команд в прикреплённом к репозиторию файле конфигурации git;

Вторая уязвимость (CVE-2018-16874) позволяет при выполнении команды
«go get» выйти за пределы определённого для модуля корневого пути, через манипуляцию с фигурными скобками в импортируемых путях. Проблема проявляется только в режиме GOPATH и не затрагивает появившийся в Go 1.11 экспериментальный режим модулей. При помощи данной уязвимости атакующий может перезаписать произвольные файл в ФС, насколько это позволяют текущие полномочия.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.