Заява OpenTelemetry JS щодо запобігання DOS-атакам на Node.js

Можливо, ви бачили нещодавнє повідомлення про безпеку Node.js та повʼязані з цим матеріали, в яких обговорювалася потенційна проблема відмови в обслуговуванні, повʼязана з async_hooks. OpenTelemetry (та інші інструменти APM) були згадані, оскільки ми покладаємося на AsyncLocalStorage для поширення контексту.

Щоб було зрозуміло: це не є помилкою або вразливістю в OpenTelemetry. Проблема в кінцевому рахунку полягає в застосунках і фреймворках, які покладаються на невизначену поведінку вичерпання стеку для доступності. У версіях Node.js до 24.x AsyncLocalStorage реалізовано на основі async_hooks, що в поєднанні з цим небезпечним припущенням полегшувало відтворення такого крайнього випадку.

Команда Node.js виправила цю поведінку в Node.js 20.20.0 і новіших версіях, щоб ускладнити відтворення цього крайнього випадку. Це виправлення не буде перенесено в Node.js 18, тому рекомендується оновити Node.js до версії 20+, якщо ви ще цього не зробили. Перегляньте цю таблицю, щоб дізнатися про конкретні версії та виправлення, яких це стосується.

Вам не потрібно змінювати нічого, що стосується OpenTelemetry — достатньо дотримуватися інструкцій з оновлення Node.js. Як завжди, ми рекомендуємо використовувати підтримувані та виправлені версії Node.js.

Дякуємо команді безпеки Node.js за виправлення та спільноті за допомогу в поширенні точної інформації. Це було включено в випуск безпеки для наочності, але V8 не класифікує це як проблему безпеки.

Для отримання додаткової інформації див. бюлетень безпеки Node.js.

Востаннє змінено January 16, 2026: [uk] Blog Node.js DDOS (a03246c5)