ColdFusion(2023 リリース)アップデート 5
セキュリティに関する推奨事項
すべてのセキュリティアップデートについて、ColdFusion のセキュリティページで説明されているセキュリティ設定を適用し、それぞれのロックダウンガイドを確認することをお勧めします。
アップデートのインストール後、コネクタを作成し設定する必要があるかどうかを確認します。詳しくは、コネクタ設定の節を参照してください。
新機能および変更された機能
ColdFusion(2023 リリース)アップデート 5(リリース日:2023年10月6日(PT))には、Administrator、インストーラー、移行、パッケージマネージャー、データベースなどの領域のバグ修正と機能強化が含まれています。このアップデートには、Tomcat(v9.0.78)や他のライブラリ(jackson-databind や Netty など)のアップグレードが含まれています。なお、これは累積的なアップデートで、以前のアップデートによる修正も含んでいます。
この更新で、ライブラリ jackson-databind が 2.9.8 から 2.15.0 にアップグレードされます。このライブラリバージョンでは、java.time.* の POJO 逆シリアル化をサポートしていません。これらのオブジェクトは NULL オブジェクトを返すので、AWS DynamoDB と Azure Service Bus からのデータ損失につながります。詳しくは、「バグ修正」の節を参照してください。
今回のアップデートでは、セキュリティ上の理由から、Administrator でのコネクタポートへのアクセスはブロックされます。
JDK 17.0.8 以降を使用している場合は、フラグ java -Djdk.util.zip.disableZip64ExtraFieldValidation=true -jar hotfix.jar
を使用します。
アップデート 6 以降では、このフラグを使用する必要はありません。
このドキュメントの内容
パッケージ更新ワークフローの機能強化
コアサーバーがアップグレードまたはダウングレードされる場合は、その確認を求めるメッセージが ColdFusion パッケージマネージャーから表示されます。現在、コア サーバを更新すると、サーバは確認なしで更新されます。
ColdFusion(2023 リリース)アップデート 5 では、パッケージのインストール中に、ColdFusion によってコアバージョンがインストールされ、最新のパッケージを直接インストールするのではなく、コアバージョンと互換性のあるパッケージがインストールされます。
詳しくは、ColdFusion パッケージマネージャーのドキュメントのインストールシナリオを参照してください。
ライブラリ | 以前のバージョン | 新しいバージョン |
Tomcat | 9.0.74 | 9.0.78 |
jackson-databind/jackson-mapper |
2.8.8 | 2.15.0 |
netty(web ソケット) | 3.5.8 | 3.9.9 |
netty(クラウドサービス) | 4.1.45 | 4.1.89 |
cxf-core/cxf-rt-frontend-jaxrs/cxf-rt-rs-client |
3.0.16 | 4.0.1 |
imageio-metadata |
3.3.2 | 3.9.4 |
java-xmlbuilder |
1.1 | 1.3 |
commons-fileupload |
1.4 | 1.5 |
log4j | 2.17.2 | 2.20.0 |
pebble | 2.5.0 | 3.2.1 |
esapi.jar |
2.2.1.1 | 2.5.1.0 |
jquery-ui | 1.13.1 | 1.13.2 |
サーバーロックダウンツールの機能強化
サーバーロックダウンツールをインストールした後、cf_scripts フォルダーの名前が cf_scripts_<version>_<6 random alphanumeric characters> というパターンに変更されました。
ColdFusion のダウンロードからサーバーロックダウンツールをダウンロードします。
SOLR 設定の CAR での移行
ColdFusion アーカイブの「サーバーの設定」タブのオプションとして、「Solr 設定」が追加されました。詳しくは、ColdFusion アーカイブのドキュメントを参照してください。
移行
移行時、SOLR 設定はデフォルトでは移行されません。この設定を移行するかどうかを指定する必要があります。
同じ SOLR サーバーを使用する場合は、SOLR 設定を移行するだけでよく、ColdFusion コレクションの移行は必要ありません。SOLR 設定と ColdFusion コレクションの両方を移行する場合、バッファーサイズや言語などの設定は、コレクションと共に SOLR サーバーに移行されます。
必須の IP 制限
これまで、ColdFusion のインストール時には、本番プロファイル + セキュアプロファイルの IP 制限用の IP を指定していました。
このアップデートでは、本番プロファイルの IP 制限用の IP を指定することもできます。
さらに、IP を指定しない場合は、127.0.0.1 と ::1 がデフォルトで追加されます。詳しくは、バグ CF-4219181 を参照してください。
バグ ID | 説明 | コンポーネント |
CF-4219159 |
この更新で、jackson-databind 2.9.8 が 2.15.0 にアップグレードされました。新しいバージョンでは、java.time.* の POJO 逆シリアル化をサポートしていません。これらのオブジェクトは NULL オブジェクトを返すので、AWS DynamoDB と Azure Service Bus からのデータ損失につながります。 AWS Service Bus の例: |
クラウドサービス:Azure Service Bus |
CF-4218099 |
「シリアル化用の構造体キーで大文字小文字を保持」オプションを有効にしても、ColdFusion で CFC のローカルスコープが無視されます。次のコードでは、{"amount":2000} ではなく {"AMOUNT":2000} が生成されます。 local.body = {}; |
言語:シリアル化 |
CF-4218035 |
ディレクトリが AWS S3 バケットに存在するかどうかを確認するときに、Null ポインター例外(NPE)エラーが発生します。次のコードを実行すると、NPE エラーになります。 <cfset srcdir = "s3://xxxxxxxxxxxx:xxxxxxxxxxxxxxx@s3loc"> |
ファイル管理:S3 |
CF-4217651 |
JEE 設定でプローブを読み込めません。これを修正するために、このアップデートでは、コマンドを次のように更新しました。 import probe probe.json jee.port=8080 jee.context=cfusion |
インストール/設定:CFSetup |
CF-4217635 |
ColdFusion でカスタムバーコードフォントを読み込めません。 |
ColdFusion パッケージ:HtmlToPDF |
CF-4216051 |
ColdFusion(2021 リリース)にアップデート 5 を適用した後、CFHTMLTOPDF タグを使用して PDF を生成すると、CFHTMLTOPDF タグが CFC 関数内にあると、拡張 ASCII 文字が誤ったエンコードで返されます。タグが通常の CFM ページに表示されるときは、正しいエンコーディングになっています。 |
ドキュメント管理:PDF の生成(CFHTML2PDF) |
CF-4215887 |
特定のドライブ上にインストールされた ColdFusion インスタンスにアーカイブ(.car)ファイルをデプロイすると、そのアーカイブからデータソースが正常に読み込まれます。それにもかかわらず、アーカイブが誤ったドライブで設定を検索するので、Solr エラーが発生します。 |
Administrator:アーカイブ |
CF-4215789 |
ormsearch を使用した CFML リクエストを実行すると、出力なしに失敗するか、ClassNotFound 例外が発生します。回避策は次のとおりです。
|
ColdFusion パッケージ:ORMSearch |
CF-4218184 |
mysql パッケージの説明を更新して、mysql パッケージが MYSQL コミュニティデータソースの作成には役立たないことを明示しました。 |
データベース |
CF-4218176 |
エラーメッセージを更新して、ColdFusion のインストールにスタンドアロンの MySQL JDBC ドライバーが含まれなくなったことを反映させました。 |
Administrator |
CF-4217838 |
cfquery ステートメントでは、一時テーブルをクリアし、一時テーブルに対する操作を実行したあと一時テーブルを再度クリアして、Macromedia ドライバーの値を返すことができます。同じことが MS JDBC ドライバーでは再現されません。 |
データベース |
CF-4215843 |
MySQL 8 にアップグレードした後、テーブル名にアンダースコアの付いたテーブルを含んだカスタムタグ cfdbinfo を実行すると、実行が失敗します。例えば、次のスクリプトは失敗します。 <cfdbinfo datasource="#Datasource#" name="DBName" type="columns" table="table_groupOne" /> <cfdump var="#DBName#"> |
データベース |
CF-4215129 |
cfinvoke または cfscript を使用する SOAP web サービスが正常に動作しないことがあります。 |
Web サービス |
CF-4211276 |
ColdFusion の移行後、いくつかの日付関数が予期しない動作をし始めました。例えば、次の関数では移行後にエラーが発生します。 DateFormat(queryname.datecolumnname) throws "Error The value class java.time.LocalDateTime cannot be converted to a date." |
データベース |
CF-4205971 |
リクエストに通常よりも時間がかかると、Apache が予期しない動作をすることがあります。回避策として、heartbeat_interval=0 を更新するか、このドキュメントの手順に従って mod_jk.so を置き換えます。 | インストール/設定:コネクタ |
CF-4218758 |
MS VC++ がプリインストールされていない Windows に ColdFusion(2023 リリース)をサイレントインストールすると、「VCRUNTIME140.dll が見つかりませんでした」というエラーメッセージが表示されます。 |
インストール/設定 |
CF-4218706 |
不明な時間の経過後に、orm パッケージが動作しなくなります。その後に、「org.hibernate.HibernateException not found by orm. 」というエラーメッセージが表示されます。 |
ColdFusion パッケージ |
CF-4218421 |
TLS が設定されている SendGrid SMPTP サーバーを使用してメールを送信しようとすると、ColdFusion からエラーメッセージが表示されます。 |
メール |
CF-4218140 |
クエリの実行時に、「[Macromedia][SQLServer JDBC ドライバー] このドライバーは組み込みアプリケーションで使用するためにロックされています」というエラーが ColdFusion で発生することがあります。 |
データベース |
CF-4216526 |
cfprocresult タグを使用して PostgreSQL 13 のストアドプロシージャの結果を表示しようとすると、エラーが発生します。 | データベース |
CF-4212837 |
環境変数(installModules="ajax")を指定して Docker イメージ(public.ecr.aws/adobe/coldfusion:latest)を実行しても、Ajax モジュールがインストールされません。 |
CF Docker |
CF-4212391 |
更新後に CFReport が正常に動作せず、エラーが発生します。 | CFReport |
CF-4215586 |
10 進数のフィールドを持つオブジェクトを Redis セッションで保存しても、そのオブジェクトがセッションスコープの表示時に存在しなくなります。CFID、CFToken、sessionid または urltoken のみがセッションに存在します。 |
RedisSessionStorage |
CF-4212860 |
createDateTime 関数でうるう年の 2月29日の下記文字列表現を使用する場合、ColdFusion による検証が行われません。エラーメッセージが表示されます。 "Sat Feb 29 17:00:00 AEDT 2020"、"Mon Feb 29 17:00:00 AEDT 2016" または "Wed Feb 29 17:00:00 AEDT 2012" |
日時関数 |
CF-4212735 |
wsconfig -ws apache -dir C:\Apache24\conf -bin C:\Apache24\bin\httpd.exe -v を実行して Apache コネクタを作成すると、次のエラーメッセージが表示されます。 Apache コントロールスクリプトファイルを特定できませんでした。 |
コネクタ |
CF-4218132 |
Application.cfc で定義されているデータソースを使用する際に、「GraphQL パッケージがインストールされていません」というエラーが表示されます。 |
GraphQL |
- 64 ビットコンピューターでは、64 ビット版 ColdFusion の 64 ビット JRE を使用します。
- ColdFusion サーバーがプロキシの背後にある場合は、サーバーが更新通知を受け取ってアップデートをダウンロードできるようにプロキシ設定を指定してください。スタンドアロンインストールの場合は jvm.config の下のシステムプロパティ、JEE インストールの場合は対応するスクリプトファイルを使用してプロキシ設定を指定します。
- http.proxyHost
- http.proxyPort
- http.proxyUser
- http.proxyPassword
- JEE アプリケーションサーバー上で実行している ColdFusion の場合、アップデートをインストールする前に、すべてのアプリケーションサーバーインスタンスを停止します。
ColdFusion JDK フラグの要件
COLDFUSION 2023(バージョン 2023.0.0.330468)以降
アプリケーションサーバーの場合
JEE インストールで、使用しているアプリケーションサーバーのタイプに応じて、それぞれの起動ファイルに JVM フラグ「-Djdk.serialFilter= !org.mozilla.**;!com.sun.syndication.**;!org.apache.commons.beanutils.**;!org.jgroups.**;!com.sun.rowset.**」を設定します。
例:
- Apache Tomcat アプリケーションサーバー:Catalina.bat/sh ファイルの JAVA_OPTS を編集します
- WebLogic アプリケーションサーバー:startWeblogic.cmd ファイルの JAVA_OPTIONS を編集します
- WildFly/EAP アプリケーションサーバー:standalone.conf ファイルの JAVA_OPTS を編集します
スタンドアロンインストールではなく、JEE インストールの ColdFusion に JVM フラグを設定します。
ColdFusion Administrator
パッケージマネージャー/パッケージで、コアサーバーの「アップデートを確認」をクリックします。
アップデートが検出されたら、「更新」をクリックします。コアパッケージが前回のアップデートから更新されます。
インストールされているすべてのパッケージも更新されます。
ColdFusion を再起動して変更を有効にします。
オフラインモードでのアップデートの手動インストール
- このリンクから、ホットフィックスインストーラーおよびリポジトリをダウンロードします。
- すべての ColdFusion サーバーインスタンスからアクセスできる場所に解凍します。
- cfusion およびそのすべての子インスタンスの cfusion/lib/neo_updates.xml で「packagesurl」を更新して、ダウンロードしたフォルダー内にある <InstallerReposityUnzippedPath>/bundles/bundlesdependency.json を指すようにします。
コアサーバーのホットフィックスのインストールに成功しても、パッケージにエラーや問題がある場合は、パッケージマネージャークライアント(cfusion\bin\cfpm.bat/cfpm.sh)でパッケージをインストールまたは更新することができます。
ColdFusion サービスを開始または停止する特権と ColdFusion ルートディレクトリへのフルアクセス権が必要です。
- Windows:<cf_root>\jre\bin\java.exe -jar <InstallerReposityUnzippedPath>\bundles\updateinstallers\hotfix-005-330608.jar
- Linux ベースのプラットフォーム:<cf_root>/jre/bin/java -jar <InstallerReposityUnzippedPath>/bundles/updateinstallers/hotfix-005-330608.jar
ダウンロードした JAR の実行には、ColdFusion にバンドルされている JRE を必ず使用してください。スタンドアローン ColdFusion の場合、これは <cf_root>/jre/bin にあります。
ColdFusion サービスおよび他の設定済み web サーバーを再起動する権限を持つユーザーアカウントからアップデートをインストールします。
アプリケーションの手動更新について詳しくは、このヘルプ記事を参照してください。
このアップデートの適用後、ColdFusion のビルド番号は 2023,0,05,330608
になるはずです。
アップデートをアンインストールするには、以下のいずれかの操作を行います。
- ColdFusion Administrator で、「サーバーアップデート/アップデート/インストール済みアップデート」に移動して「アンインストール」をクリックします。
- コマンドプロンプトからアップデートのアンインストーラーを実行します。例:java -jar {cf_install_home}/{instance_home}/hf_updates/hf-2023-00005-330608/uninstall/uninstaller.jar
上記のアンインストールオプションを使用してもアップデートをアンインストールできない場合、アンインストーラーが破損している可能性があります。ただし、次の操作を実行すれば、手動でアップデートをアンインストールできます。
- {cf_install_home}/{instance_name}/lib/updates からアップデート jar を削除します。
- {cf_install_home}/{instance_name}/hf-updates/{hf-2023-00005-330608}/backup ディレクトリから {cf_install_home}/{instance_name}/ にすべてのフォルダーをコピーします。