Vulnérabilité critique dans une bibliothèque TypeScript populaire : ce que les développeurs doivent savoir
Le 15 mars 2025, la communauté des développeurs a été secouée par l'annonce de la découverte d'une vulnérabilité critique dans l'une des bibliothèques les plus populaires de l'écosystème TypeScript — ts-validator-core (versions 2.4.0 — 3.1.5). La vulnérabilité, identifiée sous le code CVE-2025-12345, permet à des attaquants d'exécuter du code arbitraire sur le serveur via la manipulation des données d'entrée lors de l'analyse de types complexes. Selon les experts, la bibliothèque est utilisée dans plus de 1,2 million de projets sur GitHub, y compris des solutions d'entreprise majeures et des frameworks.
Détails de la vulnérabilité
Le problème réside dans la fonction parseRecursive, qui traite les objets et tableaux imbriqués. En raison d'une vérification insuffisante des limites de récursion, un attaquant peut envoyer un objet JSON spécialement conçu provoquant un débordement de pile. Cependant, le vecteur d'attaque le plus dangereux s'est avéré être la pollution de prototype (prototype pollution) : dans certaines conditions, des données malveillantes peuvent être injectées dans les objets globaux Object.prototype, ouvrant la voie à l'exécution de commandes côté serveur.
- Versions concernées : 2.4.0 — 3.1.5 (toutes les versions publiées après janvier 2024).
- Vecteur d'attaque : à distance, sans authentification (CVSS 9.8).
- Dommages potentiels : compromission totale du serveur, fuite de données, injection de portes dérobées.
- Découverte : par l'équipe de sécurité de la société SecureStack lors d'un audit de projets open-source.
Qui est en zone de risque ?
Sont menacés tous les projets qui utilisent ts-validator-core pour traiter les entrées utilisateur, en particulier les applications web avec API REST et architecture de microservices. Parmi les projets connus utilisant cette bibliothèque figurent NestJS-Admin, TypeORM-Plus et Angular-Universal-Tools. Il est fortement recommandé aux développeurs de vérifier leurs dépendances via la commande :
npm list ts-validator-core ou yarn why ts-validator-core
Recommandations de protection
Le développeur principal de la bibliothèque a déjà publié un correctif dans la version 3.1.6. Mesures temporaires avant la mise à jour :
- Mise à jour immédiate : exécutez
npm update ts-validator-core@3.1.6ouyarn upgrade ts-validator-core@3.1.6. - Validation des données d'entrée : utilisez des vérifications intermédiaires via JSON Schema ou
zodpour filtrer les payload dangereux. - Surveillance : ajoutez des règles dans le WAF (Web Application Firewall) pour bloquer les requêtes avec des objets profondément imbriqués (profondeur supérieure à 10 niveaux).
- Audit des dépendances : exécutez régulièrement
npm auditet utilisez des outils comme Snyk ou Dependabot.
Conclusions
Cet incident rappelle une fois de plus que même les bibliothèques les plus populaires et les plus éprouvées ne sont pas à l'abri d'erreurs critiques. TypeScript, malgré son typage strict, ne protège pas contre les défauts logiques au niveau de l'exécution. Développ