Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

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

В NPM 12.0 по умолчанию отключён запуск скриптов при установке пакетов

09.07.2026 20:35 (MSK)

Опубликован выпуск пакетного менеджера NPM 12.0, входящего в поставку Node.js и применяемого для распространения модулей на языке JavaScript. Новая версия примечательна прекращением по умолчанию запуска скриптов во время установки пакетов. Предполагается, что изменение усложнит проведение атак через компрометацию зависимостей и замедлит распространение червей, активируемых из установочных скриптов.

Для запрета автозапуска скриптов, указанных в package.json через параметры preinstall, install или postinstall, настройка allowScripts по умолчанию выставлена в значение "off". Выполнение подобных скриптов, а также запуск компиляции C/C++ кода утилитой node-gyp при наличии в пакете файла binding.gyp, теперь производится только при получении явной инструкции от пользователя. Помимо этого, параметры "--allow-git" и "--allow-remote" по умолчанию теперь выставлены в значение "none", что отключает автоматическую загрузку зависимостей из Git-репозиториев и по прямым ссылкам на сайты с tar-архивами.

Для организации запуска установочных скриптов следует использовать команду "npm approve-scripts", в качестве аргумента которой передаются имена пакетов, заслуживающих доверия, или опция "--all" для предоставления разрешения всем пакетам. Для сомнительных пакетов рекомендовано запускать команду "npm approve-scripts --allow-scripts-pending", которая выведет список претендующих на запуск скриптов. После проверки данных скриптов их можно разрешить командой "npm approve-scripts" и добавить в белый список в package.json.

Помимо этого анонсирован запрет использования в репозитории NPM GAT-токенов доступа (Granular Access Tokens), настроенных для выполнения действий без двухфакторной аутентификации (2FA). Начиная с августа подобные токены без дополнительного ручного подтверждения действий не позволят выполнять такие операции, как создание или удаление токенов, изменение профиля, пароля или email, настройка двухфакторной аутентификации, генерация кодов восстановления, изменение прав доступа и управление сопровождающими.

В январе 2027 года намерены запретить прямую публикацию пакетов с использование токенов, обходящих 2FA. При этом пакеты можно будет опубликовать в staging-разделе, в котором они будут находиться до ручного подтверждения релиза сопровождающим. После ручного подтверждения опубликованные пакеты станут доступны для установки пользователями.

Для автоматической публикации предлагается использовать механизм "Trusted Publishers", основанный на использовании стандарта OpenID Connect (OIDC) и токенов аутентификации с ограниченным временем действия, которыми обмениваются внешние сервисы и каталог пакетов для подтверждения операции публикации пакета вместо использования традиционных паролей или постоянных токенов доступа к API.

  1. Главная ссылка к новости (https://github.blog/changelog/...)
  2. OpenNews: Атакующие встроили вредоносное ПО в 32 NPM-пакета Red Hat
  3. OpenNews: В 42 NPM-пакета TanStack интегрирован самораспространяющийся червь
  4. OpenNews: Раскрыты подробности захвата учётных данных сопровождающего NPM-пакет axios
  5. OpenNews: Утечка кода инструментария Claude Code из-за забытого в NPM-пакете map-файла
  6. OpenNews: При помощи червя Shai-Hulud скомпрометировано 600 NPM-пакетов
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65878-npm
Ключевые слова: npm
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (14) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 21:34, 09/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    почему все так ненавидят жава скрипт? Ведь это просто язык программирования?
     
     
  • 2.3, Аноним (3), 21:50, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что он лучше баша, перла и пистона вместе взятых. Подгорает с такого у некоторых.
     
  • 2.4, kravich (ok), 21:52, 09/07/2026 Скрыто ботом-модератором     [к модератору]
  • +3 +/
     
  • 2.8, Аноним (8), 22:40, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ненавидят не только язык, но и его носителей, которые пытаются заразить им всё ПО.
     

  • 1.5, q (ok), 22:04, 09/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Неужели кто-то догадался, что пакет = метаданные + статичные файлы? Если ваш пакетный менеджер гоняет скрипты при установке-удалении, то это фигня на палочке, а не пакетный менеджер. Если твой дистр не уместился в наипростейшую концепцию "пакет = метаданные + статичные файлы", то твой дистр -- галиматья. На данный момент, все дистры галиматья, кроме NixOS/Guix.
     
     
  • 2.9, Аноним (9), 22:44, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Скажи это твоим любимым деб пакетам
     
     
  • 3.12, Аноним_83 (?), 23:10, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >деб пакетам

    ты про зипарь, набитый скриптами запускающимися от рута?

     
  • 2.11, Аноним (11), 22:54, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    когда ставишь какой-нибудь ssh сервис, то ключи /etc/ssh/ssh_host_* должны поставляться как статичные файлы или генерироваться специальным скриптом, который просто идет отдельно от ssh?
    Т.е. можно ли сделать любой пакетный менеджер нормальным, если вынести все скрипты в отдельный обязательный пакет и дергать их в зависимости от "метаданных"?
     
     
  • 3.14, Аноним_83 (?), 23:12, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >когда ставишь какой-нибудь ssh сервис, то ключи /etc/ssh/ssh_host_* должны поставляться как статичные файлы или генерироваться специальным скриптом, который просто идет отдельно от ssh?

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

     

  • 1.6, Аноним (6), 22:07, 09/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    не поможет
     
  • 1.7, Ivan_83 (ok), 22:31, 09/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А вот в windows XP до этого додумались раньше лет на 20 :)
     
  • 1.10, Аноним_83 (?), 22:52, 09/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не прошло и 500 лет
     
  • 1.13, localhostadmin (ok), 23:11, 09/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А зачем это вообще было нужно? Не представляю в каких сценариях может понадобиться выполнение произвольного кода при установке пакета
     
     
  • 2.16, Аноним (16), 23:18, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    ldconfig при любом обновлении в /usr/lib
     

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



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

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