from_string
はエスケープされていないパラメータを受け入れるため、攻撃者はテンプレートにコードを挿入できます。
渡されたものはすべてエスケープする必要があります。
https://github.com/JameelNabbo/Jinja2-Code-execution
https://www.exploit-db.com/exploits/46386
そのレポとCVEを作成したユーザーは、彼らが何について話しているのかわかりません。残念ながら、彼らは公式に問題がないことを無責任に多くの人々に通知したため、これからも対処し続ける必要があります。 。 それらへの応答については、 https://github.com/JameelNabbo/Jinja2-Code-execution/issues/1を参照して
from_string
が存在するためにJinaに脆弱性があると言うことは、 eval
が存在するためにすべての動的言語が脆弱である、またはSQL文字列を評価するためにすべてのSQLライブラリが脆弱であると言うようなものです。 問題は、ユーザー入力を処理するための適切なツールをすべて提供するライブラリにはありません。 SQLライブラリにはインジェクションの脆弱性はありませんが、SQLライブラリを使用するプロジェクトには不適切な脆弱性があります。
信頼できないテンプレートをコンパイルするリスクを冒したい場合はSandboxedEnvironment
を使用し、信頼できない変数をレンダリングする場合はautoescape
を使用する必要があります。
最も参考になるコメント
そのレポとCVEを作成したユーザーは、彼らが何について話しているのかわかりません。残念ながら、彼らは公式に問題がないことを無責任に多くの人々に通知したため、これからも対処し続ける必要があります。 。 それらへの応答については、 https://github.com/JameelNabbo/Jinja2-Code-execution/issues/1を参照して
from_string
が存在するためにJinaに脆弱性があると言うことは、eval
が存在するためにすべての動的言語が脆弱である、またはSQL文字列を評価するためにすべてのSQLライブラリが脆弱であると言うようなものです。 問題は、ユーザー入力を処理するための適切なツールをすべて提供するライブラリにはありません。 SQLライブラリにはインジェクションの脆弱性はありませんが、SQLライブラリを使用するプロジェクトには不適切な脆弱性があります。信頼できないテンプレートをコンパイルするリスクを冒したい場合は
SandboxedEnvironment
を使用し、信頼できない変数をレンダリングする場合はautoescape
を使用する必要があります。