from_string
akzeptiert Parameter, die nicht maskiert sind, sodass ein Angreifer Code in die Vorlage einschleusen kann.
Sollte alles entkommen, passiert.
https://github.com/JameelNabbo/Jinja2-Code-Ausführung
https://www.exploit-db.com/exploits/46386
Der Benutzer, der dieses Repository und CVE erstellt hat, weiß nicht, wovon er spricht, und leider müssen wir uns jetzt weiter damit befassen, da er eine Reihe von Leuten unverantwortlich auf eine offiziell klingende Weise über ein Nicht-Problem informiert hat . Eine Antwort darauf finden Sie unter https://github.com/JameelNabbo/Jinja2-Code-execution/issues/1 . Ich habe eine Anfrage an MITRE gesendet, um die CVE für ungültig zu erklären.
Zu sagen, Jina habe eine Schwachstelle, weil from_string
existiert, ist so, als würde man sagen, dass jede dynamische Sprache anfällig ist, weil eval
existiert, oder jede SQL-Bibliothek anfällig ist, weil sie SQL-Strings auswertet. Das Problem liegt nicht bei diesen Bibliotheken, die alle die richtigen Tools für die Verarbeitung von Benutzereingaben bieten. Eine SQL-Bibliothek hat keine Injection-Schwachstelle, ein Projekt, das eine SQL-Bibliothek nicht ordnungsgemäß verwendet.
SandboxedEnvironment
sollte verwendet werden, wenn Sie dennoch riskieren möchten, nicht vertrauenswürdige Vorlagen zu kompilieren, und autoescape
sollte verwendet werden, wenn nicht vertrauenswürdige Variablen gerendert werden.
Hilfreichster Kommentar
Der Benutzer, der dieses Repository und CVE erstellt hat, weiß nicht, wovon er spricht, und leider müssen wir uns jetzt weiter damit befassen, da er eine Reihe von Leuten unverantwortlich auf eine offiziell klingende Weise über ein Nicht-Problem informiert hat . Eine Antwort darauf finden Sie unter https://github.com/JameelNabbo/Jinja2-Code-execution/issues/1 . Ich habe eine Anfrage an MITRE gesendet, um die CVE für ungültig zu erklären.
Zu sagen, Jina habe eine Schwachstelle, weil
from_string
existiert, ist so, als würde man sagen, dass jede dynamische Sprache anfällig ist, weileval
existiert, oder jede SQL-Bibliothek anfällig ist, weil sie SQL-Strings auswertet. Das Problem liegt nicht bei diesen Bibliotheken, die alle die richtigen Tools für die Verarbeitung von Benutzereingaben bieten. Eine SQL-Bibliothek hat keine Injection-Schwachstelle, ein Projekt, das eine SQL-Bibliothek nicht ordnungsgemäß verwendet.SandboxedEnvironment
sollte verwendet werden, wenn Sie dennoch riskieren möchten, nicht vertrauenswürdige Vorlagen zu kompilieren, undautoescape
sollte verwendet werden, wenn nicht vertrauenswürdige Variablen gerendert werden.