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

問題

  • FreeMarkerとVelocityのカスタムテンプレートで、Fix Packをインストールすると次のエラーが発生する。
    org.apacheのクラス [...] の解決を拒否されました。

Environment

  • 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 テンプレートを介して任意のコードを実行できるようにします。 そのため、サンドボックスを回避してリモートでコードを実行される危険性がある一部のパッケージは、より新しいFix Packで無効化されています。
  • 上記のFix Packを必要とするHotfixを使用している場合、インストールに影響が出る可能性があります。

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

追加情報

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