Node.js Project попередив: у середу 21 жовтня 2026 (або невдовзі після) вийдуть security releases для лінійок 26.x, 24.x і 22.x. Найвища severity серед виправлень – HIGH, причому для кожної з трьох ліній. Деталі вразливостей до релізу закриті – і це нормальна практика responsible disclosure. Паніки це не вимагає; вимагає підготовки. Нижче – checklist, який варто пройти за тиждень до патчу, а не вночі після нього.

Що відомо (і що чесно невідомо)

Відомо: три лінії отримають оновлення, найвища severity – HIGH, дата – 21 жовтня або трохи пізніше. На момент написання (15.10) реліз ще не вийшов.

Невідомо: які саме вразливості, які конфігурації exploitable, чи стосується це твого коду взагалі. Тому будь-хто, хто сьогодні каже «ви вразливі» або «вас це не стосується», – ворожить. Правильна security-комунікація не створює паніку. Вона створює readiness.

Хороший інженерний тест, який ця новина ставить руба: якщо завтра о 10:00 виходить critical Node patch – скільки часу потрібно від release до production? Якщо відповідь «не знаємо» – оце і є вразливість, яку можна виправити вже зараз, без жодного CVE.

Checklist до 21 жовтня

1. Знайди всі Node-рантайми

Не тільки production-застосунок. Node живе у більшій кількості місць, ніж здається:

  • Docker-образи сервісів (включно з FROM node:… у build-стадіях);
  • CI-ранери й GitHub Actions (actions/setup-node – яку версію тягне?);
  • serverless-функції (runtime у Vercel/AWS налаштовується окремо від package.json);
  • cron-джоби й internal-скрипти на серверах;
  • локальні тулінги, які ходять у прод (migration-скрипти, адмінські CLI).

Швидка інвентаризація по репозиторіях:

grep -rn "FROM node" --include="Dockerfile*" .
grep -rn "node-version" .github/workflows/
cat .nvmrc package.json | grep -A1 engines

2. Зрозумій свою release line

Патчі отримають 26.x, 24.x і 22.x. Якщо твій прод на 20.x чи старше – security-патчу для тебе не буде: EOL-лінія означає, що нормальний вихід – це міграція, і краще планова цього тижня, ніж аварійна наступного. (Бонус міграції на 26.x – Temporal уже ввімкнений за замовчуванням.)

3. Перевір, що оновлення прогониться автоматично

Оновлення base image має тягнути за собою повний прогін: unit, integration, E2E, smoke. Якщо бамп версії Node у Dockerfile вимагає ручних танців – зараз саме час написати той один workflow, якого бракує. Про те, щоб CI сам був захищений від сюрпризів, – окрема свіжа тема: lockfiles для GitHub Actions.

4. Підготуй rollback

Security update не означає «деплой без перевірки». Патч-релізи Node зрідка, але ламають нативні модулі чи поведінку країв. План Б простий: попередній образ під рукою, одна команда відкату, і ти знаєш, хто її виконує о другій ночі.

5. Після disclosure – advisory, а не Twitter

Коли реліз вийде, прочитай сам advisory: який компонент, який вектор, які передумови. «HIGH» у заголовку може означати «exploitable лише з увімкненим X», якого в тебе немає, – або навпаки, вдарити точно у твій setup (як-от нещодавній kernel-дефект у мережевому стеку, що зачіпав будь-кого з мережею). Рішення про терміновість деплою ухвалюється по advisory, не по переказах.

6. Бонус: обмеж blast radius уже сьогодні

Частина вразливостей Node стосується файлової системи, child_process чи мережі. Permission Model не замінить патч, але процес, якому технічно заборонено читати ~/.ssh, перетворює деякі «HIGH» саме для тебе на «неприємно, але не катастрофа». Defense in depth працює і тут.

Пожежне навчання без пожежі

Проведи цього тижня «пожежне навчання» без пожежі:

  1. Склади список усіх місць, де живе Node (пункт 1 вище) – письмово, у repo.
  2. Зроби тестовий бамп base image у staging і засічи час від зміни рядка в Dockerfile до зеленого deploy.
  3. Запиши отриману цифру в README чи runbook. 21 жовтня порівняєш план із реальністю – і це буде найчесніший аудит твого deploy-процесу за рік.

Чого не робити перед патч-днем

  • Чекати CVE, щоб почати. Після disclosure рахунок іде на години – вікно, коли exploit уже публічний, а твій прод ще ні.
  • Оновити прод і забути CI/cron/скрипти. Атакують найслабший runtime, а не найпомітніший.
  • «Ми за WAF/у приватній мережі, нас не стосується». Можливо. Але це висновок, який можна зробити лише після читання advisory, не до.
  • Оновлення без тестів «бо security». Поспіх без перевірки просто міняє один клас інцидентів на інший.
  • Сидіти на EOL-лінії «ще трошки». «Трошки» закінчується рівно в момент виходу патчу, якого для тебе немає.

Поки деталі не опубліковані, не можна чесно сказати, чи ти вразливий. Але можна чесно сказати, чи ти готовий. Перше від тебе не залежить. Друге – повністю.