NodeJS - Security Releases
Mise a jour du 14 février 2024
Des mises à jour sont maintenant disponibles pour les versions v18.x, v20.x et v21.x de Node.js pour les problèmes suivants.
Cette version de sécurité comprend les mises à jour de dépendances suivantes pour remédier aux vulnérabilités publiques :
- libuv 1.48.0 v21.x.
- libuv sur v18.x et v20.x a été corrigé.
- undici 5.28.3 sur toutes les lignes de versions.
Mises à jour de sécurité OpenSSL
Cette version de sécurité inclut une mise à jour d’OpenSSL à la version 3.0.13+quic1 sur toutes les lignes de versions.
Injection de code et élévation de privilèges via les capacités Linux (Élevé)
Sur Linux, Node.js ignore certaines variables d’environnement si elles ont été définies par un utilisateur non privilégié pendant que le processus s’exécute avec des privilèges élevés.
En raison d’un problème dans la mise en œuvre de cette exception, Node.js applique incorrectement cette exception même lorsque certaines autres capacités ont été définies.
Cela permet aux utilisateurs non privilégiés d’injecter du code qui hérite des privilèges élevés du processus.
Impacts :
- Cette vulnérabilité affecte tous les utilisateurs dans toutes les lignes de versions actives : 18.x, 20.x et 21.x.
NodeJS met un point d’honneur à remercier ses utilisateur comme Tobias Nießen pour avoir signalé cette vulnérabilité et l’avoir corrigée.
Lecture de requête HTTP non traitée avec une extension de chunk non bornée permet des attaques de déni de service (Élevé)
Une vulnérabilité dans les serveurs HTTP de Node.js permet à un attaquant d’envoyer une requête HTTP spécialement conçue avec un encodage en chunks, entraînant l’épuisement des ressources et un déni de service (DoS).
Le serveur lit un nombre non borné d’octets à partir d’une seule connexion, exploitant l’absence de limitations sur les octets d’extension de chunk.
Le problème peut provoquer l’épuisement du CPU et de la bande passante réseau, contournant les protections standard telles que les délais d’attente et les limites de taille du corps.
Impacts :
- Cette vulnérabilité affecte tous les utilisateurs dans toutes les lignes de versions actives : 18.x, 20.x et 21.x.
Traversal de chemin en piratant les internes de Buffer.
Le modèle de permission se protège contre les attaques de traversée de chemin en appelant path.resolve() sur tous les chemins donnés par l’utilisateur. Si le chemin doit être traité comme un Buffer, l’implémentation utilise Buffer.from() pour obtenir un Buffer à partir du résultat de path.resolve().
En piratant les internes de Buffer, notamment Buffer.prototype.utf8Write, l’application peut modifier le résultat de path.resolve(), ce qui entraîne une vulnérabilité de traversée de chemin.
Impacts :
- Cette vulnérabilité affecte tous les utilisateurs utilisant le modèle de permission expérimental dans les lignes de versions actives : 20.x et 21.x.
Multiples contournements du modèle de permission en raison d’une séquence de désinfection de traversée de chemin incorrecte (Moyen)
Node.js dépend de plusieurs fonctions utilitaires intégrées pour normaliser les chemins fournis aux fonctions node:fs, qui peuvent être écrasées par des implémentations définies
Source : https://nodejs.org/en/blog/release/february-2024-security-releases