Уязвимость в NPM, приводящая к перезаписи файлов в системе |
||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2021-09-11 17:59 Компания GitHub раскрыла подробности о семи уязвимостях в пакетах tar и @npmcli/arborist, предоставляющих функции для работы с tar-архивами и расчета дерева зависимостей в Node.js. Уязвимости позволяют при распаковке специально оформленного архива перезаписать файлы за пределами корневого каталога, в который осуществляется распаковка, насколько это позволяют текущие права доступа. Проблемы дают возможность организовать выполнение произвольного кода в системе, например, через добавление команд в ~/.bashrc или ~/.profile при выполнении операции непривилегированным пользователем или через замену системных файлов при запуске с правами root. Опасность уязвимостей усугубляется тем, что проблемный код используется в пакетном менеджере npm при операциях с npm-пакетами, что позволяет организовать атаку на пользователей, разместив в репозитории специально оформленный npm-пакет, при обработке которого в системе будет выполнен код злоумышленника. Атака возможна даже при установке пакетов в режиме "--ignore-scripts", отключающем выполнение встроенных скриптов. Всего npm затрагивает четыре уязвимости (CVE-2021-32804, CVE-2021-37713, CVE-2021-39134 и CVE-2021-39135) из семи. Первые две проблемы касаются пакета tar, а остальные две пакета @npmcli/arborist. Наиболее опасная уязвимость CVE-2021-32804 вызвана тем, что при очистке указанных в архиве tar абсолютных путей некорректно обрабатываются повторяющиеся символы "/" - удаляется только первый символ, а остальные оставляются. Например, путь "/home/user/.bashrc" будет преобразован в "home/user/.bashrc", а путь "//home/user/.bashrc" в "/home/user/.bashrc". Вторая уязвимость CVE-2021-37713 проявляется только на платформе Windows и связана с некорректной очисткой относительных путей, включающих неразделённый символ диска ("C:somepath") и последовательность для возврата в предыдущий каталог ("C:../foo"). Уязвимости CVE-2021-39134 и CVE-2021-39135 специфичны для модуля @npmcli/arborist. Первая проблема проявляется только на системах, не различающих регистр символов в ФС (macOS и Windows), и позволяет записать файлы в произвольную часть ФС, указав в числе зависимостей два модуля '"foo": "file:/some/path"' и 'FOO: "file:foo.tgz"', обработка которых приведёт удалению содержимого каталога /some/path и записи в него содержимого foo.tgz. Вторая проблема позволяет перезаписать файлы через манипуляцию с символическими ссылками. Уязвимости устранены в выпусках Node.js 12.22.6 и 14.17.6, npm CLI 6.14.15 и 7.21.0, а также в отдельных выпусках пакета tar 4.4.19, 5.0.11 и 6.1.10. Получив информацию о проблеме в рамках инициативы "bug bounty", GitHub выплатил исследователям $14500 и просканировал содержимое репозитория, в котором не было выявлено попыток эксплуатации уязвимостей. Для защиты от указанных проблем GitHub также ввёл запрет на публикацию в репозитории NPM-пакетов, включающих символические ссылки, жёсткие ссылки и абсолютные пути. Источник: www.opennet.ru Комментарии: |
|