FreeMarker/Velocity のカスタムテンプレートで、Denied resolving class [...] エラーが表示される (LSV-658)

課題

  • カスタムのFreeMarkerおよびVelocityテンプレートで、修正パックをインストールすると次のようなエラーが発生することがありました。
    org.apacheによってクラス [...] の解決が拒否されました。

環境

  • Liferay DXP 7.0 FP92
  • Liferay DXP 7.1 FP18 /SP5
  • Liferay DXP 7.2 FP6 /SP2

解像度

  • この動作は、 LSV-658に記載されているセキュリティ上の脆弱性による意図的な変更に起因するものです。
  • Liferay DXP 7.0, 7.1, 7.2では、テンプレートAPIによってユーザーが機密性の高いオブジェクトにアクセスできるため、リモートの認証済みユーザーがFreeMarkerやVelocityテンプレートを介して任意のコードを実行することができます。 そのため、サンドボックスを回避してリモートコードの実行を実現するリスクにさらされている特定のパッケージが、新しい修正パックでは無効になっていました。
  • 上記の修正パックを必要とするHotfixを使用している場合は、インストールに影響が出る可能性があります。

  • ソリューションとミティゲーション情報 の項にあるように。
    • 以下のパッケージは、デフォルトのリストに追加された 制限付きパッケージFreeMarkerのエンジンのVelocity Engineの したがって、システム設定の構成を であれば お使いのシステムは、これらの構成のカスタマイズバージョンを使用している、あなたは、レビューする必要がありますし、それに応じて設定を更新します。 これらの制限されたパッケージに依存するカスタムテンプレートがある場合は、それらを再度有効にする前に、それらの使用法を再検討してください。
      • com.liferay.portal.spring.context
      • com.ibm
      • io.undertow
      • org.apache
      • org.glassfish
      • org.jboss
      • org.springframework
      • org.wildfly
      • weblogic
  • テンプレートを再度有効にするには、以下の方法があります。
    1. org.apache パッケージを、 コントロールパネル -> 設定 -> システム設定 -> ファンデーション -> Velocity Engine/FreeMarker Engineの制限付きパッケージから削除します。
    2. その後、サーバーを再起動してください(または、App Managerを通じて、 のLiferay Portal Template FreeMarker/Liferay Portal Template Velocity のバンドルを再起動することもできます)。
  • ただし、これらのパッケージはセキュリティ上の理由で無効になっているため、代替品の使用を検討することをお勧めします。

追加情報

  • 詳しくは LSV-658をご覧ください。
この記事は役に立ちましたか?
1人中0人がこの記事が役に立ったと言っています