Токены npm классического типа отозваны — срочный контрольный список для миграции для команд полного стека
Что произошло (кратко): Реестр npm от GitHub завершил запланированное усиление безопасности 9 декабря 2025 года — все устаревшие «классические» токены npm были навсегда отозваны, была введена аутентификация на основе сессий для локальных входов, и поддержка CLI для создания/управления гранулярными токенами доступа была добавлена. Это нарушает любые рабочие процессы, которые все еще полагаются на долгоживущие классические токены (CI-секреты, запеченные образы, скрипты развертывания, внутренние инструменты). (github.blog)
Почему это важно для команд полного стека
- Проблемы с публикацией/конвейерами: CI-задачи, которые используют классический NPM_TOKEN, теперь будут завершаться с ошибками аутентификации, часто без уведомления в процессе релиза. (github.blog)
- Увеличение дисциплины ротации и 2FA: Гранулярные токены записи по умолчанию имеют короткий срок действия и требуют более строгих правил 2FA/обхода для автоматизации — вам нужна ротация токенов/аттестация или публикация на основе OIDC. (github.blog)
- Скрытые учетные данные: Токены, запеченные в контейнерных образах, кэшах сборки или машинах разработчиков, перестают работать и могут потребовать исправления в различных местах (образы, облачные секреты, ~/.npmrc). (github.blog)
Что делать сейчас — приоритезированный контрольный список (выполните это сегодня)
- Триаж: найдите все использования классических токенов npm
- Поиск в GitHub/GitLab/CI-секретах по NPM_TOKEN, файлам npmrc, Dockerfile и скриптам сборки. Не забудьте про самохостинг и облачные образы. Это самый важный шаг с точки зрения влияния. (github.blog)
- Восстановите CI-публикацию (быстрое восстановление)
- Если вы публикуете из GitHub Actions или GitLab, примите «Доверенную публикацию» / OIDC, где это поддерживается — это исключает хранение долгоживущих токенов, выдавая короткие учетные данные на каждую сессию рабочего процесса. Если OIDC невозможен, создайте гранулярный токен доступа с минимально необходимыми правами и включите опцию CI «Обойти 2FA» для этого токена. Протестируйте репетицию публикации. (github.blog)
- Ротация секретов и образов
- Замените любые секреты NPM_TOKEN новыми гранулярными токенами или перейдите на OIDC. Пересоберите и разверните любые контейнерные образы или образы ВМ, которые содержали классические токены. Проверьте логи CI на наличие ошибок 401/403 после ротации. (github.blog)
- Обновления рабочего процесса локальных разработчиков
- Обучите инженеров:
npm loginтеперь создает короткие (2-часовые) сессии для интерактивной публикации; для длительных локальных задач используйте гранулярные токены или примите OIDC на этапе разработки, где это возможно. Удалите долгоживущие токены из ~/.npmrc. (github.blog)
- Обновите инструменты и реестры
- Частные реестры/прокси-устройства: подтвердите, что они поддерживают гранулярные токены и аутентификацию по сессиям. Если вы полагаетесь на старые менеджеры пакетов (Yarn v1/v2), имейте в виду, что устаревшая конечная точка была временно восстановлена во время развертывания — планируйте обновление, так как этот совместимый слой недолговечен. (github.blog)
- Автоматизируйте ротацию и принцип наименьших привилегий
- Реализуйте политику ротации токенов (автоматическое обновление или короткие TTL), ограничьте области токенов до «только публикация» или только для чтения, где это возможно, и обеспечьте принцип наименьших привилегий на уровне пакетов и организаций. Интегрируйте ротацию в ваш менеджер секретов (Secrets Manager, Vault, GitHub Secrets + OIDC). (github.blog)
- Проверка после миграции
- Проведите полные пробные публикации из CI и с локальных машин разработчиков. Подтвердите, что
npm publish,npm packиnpm dist-tagработают как ожидалось и что происхождение пакета (когда доступно) фиксируется Доверенной публикацией/OIDC.
Быстрый план действий по исправлению (минимальные команды/шаги)
- Аудит: grep/secret-scan для NPM_TOKEN по репозиториям и образам.
- CI: переключите задачи публикации на использование OIDC (GitHub Actions: настройте разрешения id-token + доверенный издатель в настройках npm) или создайте гранулярный токен с точными правами + Обойти 2FA только для CI. (github.blog)
- Локально: дайте указание разработчикам выполнить
npm loginи удалить устаревшие токены из ~/.npmrc; предпочтите эфемерные сессии или гранулярные токены на уровне задачи. (github.blog)
Операционные подводные камни и ловушки
- Монорепозитории и скрипты рабочих пространств обычно повторно используют один токен — ротация этого одного секрета может привести к сбоям десятков пакетов одновременно. Распределите развертывание с репетицией публикации. (github.blog)
- CI-образы или кэши сборки, содержащие токены, должны быть пересобраны; в противном случае конвейеры будут сбойными даже после ротации секретов. (github.blog)
- Некоторые сторонние сервисы или старые инструменты могут по-прежнему ожидать классические токены; необходимы проверки по каждому поставщику. (github.blog)
Почему это стоит усилий Изменение существенно снижает радиус поражения от утечек долгоживущих учетных данных, заставляет соблюдать лучшую гигиену автоматизации (OIDC/доверенная публикация) и согласует реестр npm с более строгими, современными паттернами аутентификации — но это требует немедленной оперативной работы для команд, которые все еще зависят от устаревших токенов. (github.blog)
Дополнительное чтение (официальный журнал изменений)
Источник
Читать дальше
Изменения в FedCM в Chrome 143: структурированные утверждения ID, более строгие метаданные клиента и обновления API
31 января 2026 г.Chrome 143 (опубликован 12 января 2026 года) изменяет поток идентификации FedCM: токены утверждения ID могут быть структурированным JSON, проверка client_metadata становится обязательной, и несколько полей API перемещаются/переименовываются — требуется миграция перед Chrome 145.
Undici CVE-2026-22036: неограниченная цепочка декомпрессии приводит к исчерпанию ресурсов — выпущены патчи
30 января 2026 г.14 января 2026 года в уведомлении о безопасности для undici (HTTP-клиент Node.js) описывается уязвимость неограниченной цепочки декомпрессии, которая может привести к высокому использованию CPU и памяти. Команды полного стека должны найти и обновить затронутые версии undici и добавить легкие защитные меры на уровне выполнения.
Уязвимость CSRF в Server Actions React Router / Remix (CVE-2026-22030)
29 января 2026 г.React Router и @remix-run/server-runtime устранили проблему CSRF средней степени серьезности, затрагивающую обработчики действий на стороне сервера и нестабильные действия сервера React — что полностековым командам необходимо проверить и исправить сейчас.