2 votes

Vulnérabilité de sécurité connue de gravité modérée détectée dans ejs < 2.5.5

J'ai reçu cette alerte pour quelques projets sur GitHub :

Nous avons trouvé une vulnérabilité de sécurité potentielle dans l'une des dépendances utilisée par un référentiel auquel vous contribuez.

Vulnérabilité de sécurité connue de gravité modérée détectée dans ejs < 2.5.5 définie dans package.json. Mise à jour de package.json suggérée : ejs ~> 2.5.5.

Je peux me débarrasser de l'avertissement en effectuant la mise à jour recommandée dans le fichier package.json et un npm update semble fonctionner sans problème. Mais je suis un peu réticent à l'idée de commencer à manipuler les serveurs de production.

La vulnérabilité est https://nvd.nist.gov/vuln/detail/CVE-2017-1000188 créé le 11.16.2017. Dans les projets alertés ejs est utilisé par express et express n'est utilisé qu'avec sequelize .

Quelqu'un a-t-il un aperçu de cette vulnérabilité ? Comment le XSS peut-il être possible dans un scénario où ejs est utilisé de manière statique et interne par express ? Existe-t-il un cas réel d'utilisation où ejs -> express -> sequelize peut être vulnérable à une attaque XSS ?

2voto

Matt Points 25814

Les liens du CVE vers cet engagement qui ont suivi un engagement antérieur qui empêche certaines variables de données d'être passées dans renderFile sont convertis en options qui contrôlent le comportement d'EJS. En regardant en arrière les changements de l'EJS de 2.5.3 à 2.5.5 la liste des données autorisées qui peuvent être transformées en options de configuration a été introduite.

Cela pourrait poser un problème si une application Express transmettait des données dans le fichier render directement à partir du client (comme req.params ou req.body ) et les utilisateurs malveillants pourraient ajouter les options EJS à toutes les requêtes qu'ils envoient via la commande settings['view options'] objet. Je pense que l'un d'entre eux vous a permis d'injecter du contenu.

EJS commence également à échapper les filename dans un message d'erreur pour la version 2.5.5 qui semble être un correctif rapide avant qu'il puisse être correctement échappé, ce qui semble correspondre au moule XSS. L'ensemble du message d'erreur devrait normalement être échappé avant d'être rendu sur un client, et express le fait pour vous si vous utilisez sa gestion des erreurs par défaut, hors production.

Je ne peux pas penser comment Sequelize serait directement touchée par une vulnérabilité XSS, en dehors des requêtes que vous pouvez provoquer via XSS.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X