Les développeurs derrière Node.js ont publié de nouvelles versions de plusieurs lignes de version pour résoudre quatre vulnérabilités de la technologie côté serveur.

Node.js est un environnement d’exécution JavaScript populaire pour la création d’applications réseau évolutives.

Les failles de sécurité, trois de gravité moyenne et une de faible gravité, ont été corrigées dans les nouvelles versions des branches 12.x, 14.x, 16.x et 17.x.

Défauts à risque moyen

Comme détaillé dans un Node.js avis de sécurité d’hier (10 janvier), la première vulnérabilité (CVE-2021-44531) était due à la mauvaise gestion des URI Subject Alternative Names.

Accepter des types de noms alternatifs de sujet (SAN) arbitraires, à moins qu’une PKI ne soit spécifiquement définie pour utiliser un type de SAN particulier, peut entraîner le contournement d’intermédiaires à nom limité, ont écrit les développeurs dans un article de blog.

Node.js acceptait les types URI SAN, que les PKI ne sont souvent pas définis pour utiliser. De plus, lorsqu’un protocole autorise les SAN URI, Node.js ne correspondait pas correctement à l’URI.

Ce problème, qui a été signalé à l’équipe par Google, a été corrigé dans les nouvelles versions de Node.js, qui désactivent le type URI SAN lors de la vérification d’un certificat par rapport à un nom d’hôte.

Ce comportement peut être inversé par le –security-revert option de ligne de commande, ajoute le blog.

Un autre problème (CVE-2021-44532) est un contournement de vérification de certificat via un bogue d’injection de chaîne.

Lorsque Node.js convertit les SAN en un format de chaîne, il utilise cette chaîne pour vérifier les certificats homologues par rapport aux noms d’hôte lors de la validation des connexions.

Le format de chaîne était sujet à une vulnérabilité d’injection lorsque des contraintes de nom étaient utilisées dans une chaîne de certificats, permettant le contournement de ces contraintes de nom.

La vulnérabilité, également signalée par Google, est désormais corrigée. Les versions plus récentes échappent aux SAN contenant les caractères problématiques afin d’empêcher l’injection. Ce comportement peut également être inversé par le –security-revert option de ligne de commande.

A NE PAS MANQUER Des chercheurs découvrent une faille de type Log4j dans la console de base de données H2

Le troisième bogue de gravité moyenne, également signalé par Google, est la mauvaise gestion des champs d’objet et d’émetteur du certificat (CVE-2021-44533).

Le billet de blog explique que Node.js ne gérait pas correctement les noms distinctifs relatifs à plusieurs valeurs.

« Les attaquants pourraient créer des sujets de certificat contenant un nom distinctif relatif à valeur unique qui serait interprété comme un nom distinctif relatif à plusieurs valeurs, par exemple, afin d’injecter un nom commun qui permettrait de contourner la vérification du sujet du certificat », lit-on.

Cependant, les versions affectées de Node.js n’acceptent pas les noms uniques relatifs à plusieurs valeurs et ne sont donc pas vulnérables à de telles attaques. Cependant, avertissent les développeurs, le code tiers qui utilise la présentation ambiguë des sujets de certificat de Node.js peut être vulnérable.

Faible gravité

Enfin, une quatrième faille de sécurité de faible gravité (CVE-2022-21824) pourrait permettre la pollution du prototype via les propriétés console.table.

En raison de la logique de formatage de la fonction console.table(), il n’était pas sûr d’autoriser le passage d’une entrée contrôlée par l’utilisateur au paramètre properties tout en passant simultanément un objet simple avec au moins une propriété comme premier paramètre, qui pourrait être __proto__expliquent les développeurs.

Cependant, le bogue de pollution du prototype a un impact très limité, car il ne permet d’affecter qu’une chaîne vide aux touches numériques du prototype d’objet.

Les dernières versions de Node.js utilisent un prototype nul pour l’objet auquel ces propriétés sont affectées afin de résoudre le problème.

Tous les problèmes ont été résolus dans les versions des versions 12.x, 14.x, 16.x et 17.x de Node.js. Les correctifs se trouvent dans les notes de sécurité.

La gorgée quotidienne a contacté les développeurs de Node.js pour commentaires et mettra à jour cet article en conséquence.