Jinja: Injection de commande dans la fonction from_string (SSTI)

Créé le 18 févr. 2019  ·  1Commentaire  ·  Source: pallets/jinja

Comportement attendu

Le from_string accepte les paramètres qui ne sont pas échappés, ainsi un attaquant peut injecter du code dans le modèle.

Comportement réel

Devrait échapper à tout ce qui s'est passé.

Informations supplémentaires et preuve de concept

https://github.com/JameelNabbo/Jinja2-Code-execution
https://www.exploit-db.com/exploits/46386

Commentaire le plus utile

L'utilisateur qui a créé ce dépôt et CVE ne sait pas de quoi il parle, et malheureusement maintenant, nous allons devoir continuer à y répondre car ils ont informé de manière irresponsable un groupe de personnes d'un non-problème d'une manière officielle. . Voir https://github.com/JameelNabbo/Jinja2-Code-execution/issues/1 pour une réponse à eux. J'ai envoyé une demande à MITRE pour faire invalider le CVE.

Dire que Jina a une vulnérabilité parce que from_string existe, c'est comme dire que chaque langage dynamique est vulnérable parce que eval existe, ou que chaque bibliothèque SQL est vulnérable parce qu'elle évalue les chaînes SQL. Le problème ne vient pas de ces bibliothèques, qui fournissent toutes des outils appropriés pour gérer les entrées utilisateur. Une bibliothèque SQL n'a pas de vulnérabilité d'injection, contrairement à un projet utilisant une bibliothèque SQL.

SandboxedEnvironment doit être utilisé si vous voulez toujours risquer de compiler des modèles non fiables, et autoescape doit être utilisé lors du rendu de variables non fiables.

>Tous les commentaires

L'utilisateur qui a créé ce dépôt et CVE ne sait pas de quoi il parle, et malheureusement maintenant, nous allons devoir continuer à y répondre car ils ont informé de manière irresponsable un groupe de personnes d'un non-problème d'une manière officielle. . Voir https://github.com/JameelNabbo/Jinja2-Code-execution/issues/1 pour une réponse à eux. J'ai envoyé une demande à MITRE pour faire invalider le CVE.

Dire que Jina a une vulnérabilité parce que from_string existe, c'est comme dire que chaque langage dynamique est vulnérable parce que eval existe, ou que chaque bibliothèque SQL est vulnérable parce qu'elle évalue les chaînes SQL. Le problème ne vient pas de ces bibliothèques, qui fournissent toutes des outils appropriés pour gérer les entrées utilisateur. Une bibliothèque SQL n'a pas de vulnérabilité d'injection, contrairement à un projet utilisant une bibliothèque SQL.

SandboxedEnvironment doit être utilisé si vous voulez toujours risquer de compiler des modèles non fiables, et autoescape doit être utilisé lors du rendu de variables non fiables.

Cette page vous a été utile?
0 / 5 - 0 notes