serialfilterの変更について

2025年12月にリリースされた ColdFusion 2025 Update 5 / 2023 Update 17 / 2021 Update 23で、serialfilterが変更され、デフォルトですべてのクラスのデシリアル化をブロックするようになりました。

https://helpx.adobe.com/coldfusion/kb/coldfusion-serialfilter-file.html
「ColdFusion serialfilter file」

ColdFusion は、動作に必要な内部クラスを除き、[cf_root]/{インスタンス(cfusion等)}/lib/serialfilter.txt ファイルを使用して、デシリアライゼーションのポリシーを適用します。serialfilter.txtにホワイトリストを追加することで、ユーザーが認めたクラスやパッケージのみを許可し、ホワイトリストに含まれていないクラスはブロックします。

ブロックされたクラスやパッケージは、server.log や exception.log に serialfilter.txt に追加するように指示するエラーがログに記録されます。

Error","http-nio-8502-exec-1","11/12/25","11:34:20","", "Due to security reasons, java.util.HashMap is blocked for deserialization. Add the class/package in the file cfusion/lib/serialfilter.txt to override the behavior and allow deserialization."

エラーに記載されたクラスやパッケージを serialfilter.txt に記載し、ColdFusionを再起動することでエラーが解消します。

また、下位互換性やトラブルシューティングを目的に「-Dcoldfusion.deserialization.safeguard.enabled=false」というJVM引数が新たに用意されました。このJVM引数を設定することで、以前の動作に戻すことができますが、このオプションは非本番環境での使用のみを目的としており、本番環境では推奨されないことにご注意ください。

(設定方法)

ColdFusion Administratorの「サーバーの設定 > Java と JVM」の『JVM引数』に新たに追加されたJVMフラグ『-Dcoldfusion.deserialization.safeguard.enabled=false』を指定してください
※JVM引数に追加する際、項目と項目の区切りは空白で、改行は入れないでください
※※JVM引数に GCログを出力(-Xlog)する設定を追加している場合、ColdFusionの不具合により、Administrator画面から引数を追加することができないため、jvm.configファイルを直接修正してください。詳しくは→こちらのFAQ記事を確認してください

 


serialfilter変更による影響の例

  • ColdFusion 2021で古い Java 11 を使用している場合(例えば、同梱の Java 11.0.11 を使い続けている場合)では、ブロックされたデシリアライゼーションのログが正しく記録されません (ObjectInputFilter が利用できないという警告が表示される場合があります)。 適切なエラー ログを取得するには、最新の Java 11リビジョンでColdFusionを実行してください。
     
  • java.io.Serializable がデフォルトでブロックされるため、ColdFusionでORM(Hibernate)やEhCache などを使用している場合、機能に影響が出る可能性があります。Serializable[] の deserialize を使用するコードパスは、次のようなエラーで失敗する可能性があります。回避策として、serialfilter.txt に java.io.Serializable を追加します。
    • "Due to security reasons, java.io.Serializable; is blocked for deserialization. Add the class/package in the file cfusion/lib/serialfilter.txt to override the behavior and allow deserialization.
       
  • ColdFusion に JMXモニターを有効にして、jconsoleを使用している場合、今回のUpdateから、jconsoleで接続できなくなります。以下のようなエラーがログに出力されますので、jconsoleを使用する場合はserialfilter.txtに  javax.management.*;java.rmi.MarshalledObject;javax.security.auth.Subject; を追加してください。
    • "Due to security reasons, javax.management.ObjectName is blocked for deserialization. Add the class/package in the file cfusion/lib/serialfilter.txt to override the behavior and allow deserialization."
    • "Due to security reasons, javax.management.NotificationFilterSupport is blocked for deserialization. Add the class/package in the file cfusion/lib/serialfilter.txt to override the behavior and allow deserialization."
    • "Due to security reasons, java.rmi.MarshalledObject is blocked for deserialization. Add the class/package in the file cfusion/lib/serialfilter.txt to override the behavior and allow deserialization."
    • "Due to security reasons, [Ljavax.security.auth.Subject; is blocked for deserialization. Add the class/package in the file cfusion/lib/serialfilter.txt to override the behavior and allow deserialization."

 

 


記事公開日:2025年12月12日
最終更新日:2025年12月12日


x

Sample Modal Window

This is just a sample…

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.

Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.