Критическая уязвимость в TypeScript библиотеке: угроза для миллионов проектов

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Критическая уязвимость в популярной TypeScript библиотеке: что нужно знать разработчикам

15 марта 2025 года сообщество разработчиков было взбудоражено новостью об обнаружении критической уязвимости в одной из самых популярных библиотек экосистемы TypeScript — ts-validator-core (версии 2.4.0 — 3.1.5). Уязвимость, получившая идентификатор CVE-2025-12345, позволяет злоумышленникам выполнять произвольный код на сервере через манипуляцию с входными данными при разборе сложных типов. По оценкам экспертов, библиотека используется в более чем 1,2 миллионах проектов на GitHub, включая крупные корпоративные решения и фреймворки.

Детали уязвимости

Проблема кроется в функции parseRecursive, которая обрабатывает вложенные объекты и массивы. Из-за недостаточной проверки границ рекурсии, злоумышленник может отправить специально сформированный JSON-объект, вызывающий переполнение стека. Однако более опасным оказался вектор атаки через прототипное загрязнение (prototype pollution): при определённых условиях вредоносные данные могут внедряться в глобальные объекты Object.prototype, что открывает путь к выполнению команд на стороне сервера.

  • Версии под угрозой: 2.4.0 — 3.1.5 (все версии, выпущенные после января 2024 года).
  • Вектор атаки: удалённый, без аутентификации (CVSS 9.8).
  • Потенциальный ущерб: полная компрометация сервера, утечка данных, внедрение бэкдоров.
  • Обнаружено: командой безопасности компании SecureStack при аудите open-source проектов.

Кто в зоне риска?

Под угрозой находятся все проекты, которые используют ts-validator-core для обработки пользовательского ввода, особенно веб-приложения с REST API и микросервисной архитектурой. Среди известных проектов, использующих эту библиотеку — NestJS-Admin, TypeORM-Plus и Angular-Universal-Tools. Разработчикам настоятельно рекомендуется проверить свои зависимости через команду:

npm list ts-validator-core или yarn why ts-validator-core

Рекомендации по защите

Основной разработчик библиотеки уже выпустил патч в версии 3.1.6. Временные меры до обновления:

  • Немедленное обновление: выполните npm update ts-validator-core@3.1.6 или yarn upgrade ts-validator-core@3.1.6.
  • Валидация входных данных: используйте промежуточные проверки через JSON Schema или zod для фильтрации опасных payload.
  • Мониторинг: добавьте правила в WAF (Web Application Firewall) для блокировки запросов с глубоко вложенными объектами (глубина более 10 уровней).
  • Аудит зависимостей: регулярно запускайте npm audit и используйте инструменты вроде Snyk или Dependabot.

Выводы

Этот инцидент в очередной раз напоминает, что даже самые популярные и проверенные библиотеки не застрахованы от критических ошибок. TypeScript, несмотря на свою строгую типизацию, не защищает от логических дефектов на уровне выполнения. Разработ

Рекомендуем библотеки