Сервіс GitHub оголосив про кардинальні зміни безпеки в менеджері пакетів npm. У версії 12, яка запланована на липень 2026 року, три ключові параметри, які зараз спрацьовують автоматично під час npm install, вимагатимуть явного дозволу від розробника. Про це пише The Register.
Читайте также: Вера Кобзарь Развод: подробности личной жизни и карьеры

Що зміниться в npm v12
Мейнтейнер Лео Балтер пояснив суть проблеми: «Скрипти, що виконуються під час встановлення пакету, — це найбільша поверхня для виконання коду в екосистемі npm. Кожен npm install запускає скрипти з кожної транзитивної залежності, тому один скомпрометований пакет де завгодно у дереві залежностей може виконати довільний код на машині розробника або в CI-середовищі».
Конкретно GitHub оголосив такі зміни:
- Починаючи з версії 12, npm install не запускатиме скрипти preinstall, install або postinstall зі сторонніх залежностей, якщо їх явно не дозволено через allow-scripts. Це стосується й нативних збірок через node-gyp, і prepare-скриптів із Git, локальних файлів та зв’язаних залежностей.
- npm install більше не завантажуватиме залежності з Git-репозиторіїв — як прямих, так і транзитивних — без явного дозволу. GitHub зазначає, що це усуває вектор атаки, коли .npmrc-файл Git-залежності міг підмінити Git-виконуваний файл навіть при відключених скриптах.
- Залежності з віддалених URL, наприклад HTTPS-архіви, також більше не будуть завантажуватися автоматично.
За словами кіберконсультанта Брайана Левіна, практично кожна велика атака на ланцюжок постачання за останнє десятиліття мала один і той самий першопричинний гріх: код, що виконувався автоматично, тому що екосистема це дозволяла. npm — менеджер пакетів для сотень мільярдів завантажень щомісяця, і коли він змінює налаштування за замовчуванням, це змінює безпекову позицію практично кожного корпоративного середовища розробки на планеті.
Нові дефолти ліквідували б вектори кількох реальних атак — зокрема, кампаній зі шкідливими postinstall-скриптами та зловживань Git-залежностями, задокументованих в атаках Shai-Hulud.
Втім, це не усуває ризики ланцюжка постачання npm повністю: зловмисники можуть перейти до інших шляхів — шкідливого коду, що виконується під час роботи застосунку, скомпрометованих акаунтів мейнтейнерів, підміни залежностей або тайпсквотингу. Закривається одні дуже небезпечні двері, але весь будинок ще не в безпеці.
Читайте также: Демографічний шок. Один шторм знищив майже 10% популяції рідкісних мавп
Що робити розробникам зараз
Усі зміни вже доступні у вигляді попереджень у npm 11.16.0 і новіших версіях — розробники можуть підготуватися до оновлення заздалегідь. GitHub рекомендує: оновитися до npm 11.16.0 або новішої версії, виконати звичайний install і переглянути попередження, потім скористатися командою npm approve-scripts –allow-scripts-pending, щоб побачити, які пакети мають скрипти, схвалити ті, яким довіряєте, і зафіксувати оновлений package.json.
Для проєктів, які законно використовують будь-яку з цих поведінок, знадобиться явне увімкнення перед переходом на v12.
Нагадаємо, що нова версія GitHub Mobile дозволяє створювати репозиторії зі смартфона.
Читайте также: Демонстраційний зразок. SpaceX планує запустити тестовий космічний дата-центр для ШІ до кінця 2027 року
Підписуйтесь на нас у соцмережах: Telegram | Facebook | LinkedIn
