FreeMarker テンプレートの挿入はリモート コマンドの実行につながり、リモート攻撃者はこの脆弱性を利用してシステム上で任意のコマンドを実行する可能性があります。
JeecgBoot は正式に修復されました。できるだけ早く、関連する基礎となる依存関係とソース コードにアップグレードすることをお勧めします。
1. 脆弱性の説明
FreeMarker テンプレートの挿入はリモート コマンドの実行につながり、リモート攻撃者はこの脆弱性を利用してシステム上で任意のコマンドを実行する可能性があります。脆弱性の危険レベル: 高リスク
2. 影響範囲
- minidao-spring-boot-starter バージョン < 1.9.2
- jimureport-spring-boot-starter バージョン < 1.6.1
- コード生成バージョン < 1.4.4
- hibernate-re バージョン < 3.5.3
- jeewx-api バージョン < 1.5.2
- ドラッグフリー バージョン < 1.0.2
3. 修復計画、依存バージョンおよびソース コードのアップグレード
現在、この脆弱性は修正されており、影響を受けるユーザーは以下のバージョンにアップグレードできます。
- minidao-spring-boot-starter >= 1.9.2
- jimureport-spring-boot-starter >= 1.6.1
- コード生成 >= 1.4.4
- hibernate-re >= 3.5.3
- jeewx-api >= 1.5.2
- ドラッグフリー >=1.0.2
JeecgBoot 修正 PR:
- https://github.com/jeecgboot/jeecg-boot/commit/acb48179ab00e167747fa4a3e4fd3b94c78aeda5
- https://github.com/jeecgboot/jeecg-boot/commit/baf4b96b3fcffa183e19b87485f5fb8388bb36ae
4. jeecgboot のバージョンが非常に古い場合は?
freemarker クラス src/main/java/freemarker/template/Configuration.java を書き換えて、インスタンス化された Configuration メソッドにデフォルトで追加できます。
//freemarker模板注入问题 禁止解析ObjectConstructor,Execute和freemarker.template.utility.JythonRuntime。
this.setNewBuiltinClassResolver(TemplateClassResolver.SAFER_RESOLVER);
参考コード:freemaker2.3.31用のConfiguration初期化を書き換える詳細はご自身のバージョンに合わせて書き換えてカバーしてください。