ColdFusion(2021 リリース)アップデート 21
セキュリティに関する推奨事項
すべてのセキュリティアップデートについて、ColdFusion のセキュリティページで説明されているセキュリティ設定を適用し、それぞれのロックダウンガイドを確認することをお勧めします。
ColdFusion(2021 リリース)アップデート 21 では、Tomcat がバージョン 9.0.72 から 9.0.106 にアップグレードされました。 このアップグレードには、Tomcat プロジェクトによる重要なバグ修正、パフォーマンス向上、セキュリティ強化が含まれています。
以下のアップデートは累積的なもので、以前のアップデートがすべて含まれています。 以前のアップデートを行っていない場合、最新のアップデートを適用することで、以前のアップデートも適用されます。 また、スキップしたアップデートで行われた変更をメモしておいてください。
以前のアップデートをインストールするには、ColdFusion(2021 リリース)のアップデートを参照してください。
新機能および変更された機能
このアップデートの新しい JVM フラグ
- -Dcoldfusion.xmlrpc.allowExternalEntities
フラグについて詳しくは、ColdFusion(2023 リリース)の JVM 引数を参照してください。
OEM のアップグレード
ライブラリ | 旧バージョン | 更新バージョン |
Tomcat | 9.0.72 | 9.0.106 |
Apache POI | 3.17, 4.1.2 | 5.4.1 |
Apache XMLBeans | 3.1.0 | 5.3.0 |
Apache Commons IO | 2.7 | 2.19.0 |
Apache Commons Compress | 1.19 | 1.26.2 |
リモートメソッドの変更
以前のアップデートで行われたリモートメソッドの変更は、リモート CFC 呼び出しのみに限定されるようになり、通常の(ローカル)メソッド呼び出しには適用されなくなりました。
このアップデートのバグ修正
- ロックダウンインストーラーは、CFIDE/lockdown ディレクトリにある ColdFusion コンポーネント(lockdown.cfc)を使用して、セットアッププロセスを完了していました。以前のアップデートで導入されたセキュリティの変更により、実行中にコンポーネント内のリモートメソッドがブロックされると、インストーラーが予期せず動作しました。
- 以前のアップデートでは、リモートメソッドで returnformat と queryformat を使用すると、すべての引数を明示的に宣言することが必要になった変更のためにエラーが発生しました。
- ログファイルの警告メッセージに誤植があります。「bytecodeexecutionpaths」ではなく、「bytecodeexectuionpaths」と表示されます。
- Windows 以外のシステムでは、IP アドレス 127.0.0.1 が許可リスト jetty/etc/jetty-ipaccess.xml に含まれていないので、ColdFusion Administrator からローカル PDF サービスを編集すると、サービスが削除されます。ColdFusion をインストールして最新のアップデートを適用した後、PDF サービスページに移動し、ローカル設定を変更すると、サービスが更新されるのではなく削除されます。予期される動作は、サービスを削除せずに構成を保存することです。
- CAR ファイルは cfusion/packages ディレクトリ内に明示的に配置する必要があるので、このディレクトリが存在しない場合、CAR(ColdFusion アーカイブ)のビルドプロセスが失敗します。ビルドは、見つからないディレクトリを自動的に作成するのではなく、エラーで終了します。パッケージフォルダーがまだ存在しない場合は、プロセスでパッケージフォルダーが作成される必要があります。
- 「ログファイルに公開」オプションが有効になっている場合、スケジュールされたタスクが削除されることがあります。この問題は、ログが有効になっているスケジュールされたタスクを作成し、最新のアップデートを適用した後に発生します。例外を追加して ColdFusion を再起動しても、削除されたタスクは復元されません。
- 暗号化された PDF を作成できない場合があります。「NoClassDefFoundError: org.bouncycastle.asn1.DEREncodable」というエラーがログに表示され、BouncyCastle の Java クラス読み込みエラーで PDF 生成が中止されます。
- 前回のアップデートをインストールしてからアンインストールすると、cfspreadsheet 関数が機能しなくなります。元のインストールの一環として追加または変更されたわけではないにもかかわらず、JAR ファイル C:\ColdFusion2021\cfusion\lib\xalan.jar がアンインストール中に削除されました。
- <cfdocument> で、生成された PDF ファイルに登録済みフォントを埋め込めませんでした。フォントを登録した後でも、埋め込まれていない MS 明朝を使用することが出力 PDF のデフォルトになっていました。その結果、特に、MS 明朝フォントが含まれていない Linux などのシステムでは、日本語などの言語のテキストが表示されません。この修正により、登録されたフォントが PDF 出力に正しく埋め込まれるようになりました。
このリリースの既知の問題
- 以前のアップデートをインストールし、ORM を利用するページを読み込むと、例外が発生しました。アップデート 21 のインストール後に同じ問題が発生する場合は、回避策として次の手順に従います。
- <cfusion>/lib ディレクトリに移動し、exportpackages.txt ファイルを開きます。
- exportpackages.txt ファイルから javax.persistence エントリを削除します。
- ファイルを保存します。
- サーバーを停止し、Felix キャッシュをクリアして、サーバーを再起動します。
- 最新の ColdFusion アップデートを使用していて、次に該当する場合は、
- 既に複数のインスタンスが設定されている
- 新しいインスタンスを作成しようとしている
新しいインスタンスまたは既存のインスタンスが正しく開始できない問題が発生する可能性があります。 この問題の回避策としては、各インスタンスの htmltopdf.properties ファイル(<cf_home>/cfusion/lib 内)を削除し、ColdFusion を再起動します。
ColdFusion JDK フラグの要件
COLDFUSION 2021(バージョン 2021.0.0.323925)以降
アプリケーションサーバーの場合
JEE インストールでは、使用するアプリケーションサーバーのタイプに応じて、それぞれの起動ファイルに 「-Djdk.serialFilter= !org.mozilla.**;!com.sun.syndication.**;!org.apache.commons.beanutils.**;!org.jgroups.**;!com.sun.rowset.**; !com.mysql.cj.jdbc.interceptors.**;!org.apache.commons.collections.**;」という JVM フラグを設定します。
例:
- Apache Tomcat アプリケーションサーバー:Catalina.bat/sh ファイルの JAVA_OPTS を編集します
- WebLogic アプリケーションサーバー:startWeblogic.cmd ファイルの JAVA_OPTIONS を編集します
- WildFly/EAP アプリケーションサーバー:standalone.conf ファイルの JAVA_OPTS を編集します
スタンドアロンインストールではなく、JEE インストールの ColdFusion に JVM フラグを設定します。
前提条件
- 64 ビットコンピューターでは、64 ビット版 ColdFusion の 64 ビット JRE を使用します。
- ColdFusion サーバーがプロキシの背後にある場合は、サーバーが更新通知を受け取ってアップデートをダウンロードできるようにプロキシ設定を指定してください。 スタンドアロンインストールの場合は jvm.config の下のシステムプロパティ、JEE インストールの場合は対応するスクリプトファイルを使用してプロキシ設定を指定します。
- http.proxyHost
- http.proxyPort
- http.proxyUser
- http.proxyPassword
- JEE アプリケーションサーバー上で実行している ColdFusion の場合、アップデートをインストールする前に、すべてのアプリケーションサーバーインスタンスを停止します。
インストール
ColdFusion Administrator
パッケージマネージャー/パッケージで、コアサーバーの「アップデートを確認」をクリックします。
アップデートが検出されたら、「更新」をクリックします。 コアパッケージが前回のアップデートから更新されます。
アップデートが必要なインストール済みパッケージがすべて更新されます。
ColdFusion を再起動して変更を有効にします。
オフラインモードでのアップデートの手動インストール
- このリンクから、ホットフィックスインストーラーをダウンロードします。
- このリンクから packages zip ファイルをダウンロードし、その内容を、すべての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-020-330407.jar
- Linux ベースのプラットフォーム:<cf_root>/jre/bin/java -jar <InstallerReposityUnzippedPath>/bundles/updateinstallers/hotfix-020-330407.jar
ダウンロードした JAR の実行には、ColdFusion にバンドルされている JRE を必ず使用してください。 スタンドアローン ColdFusion の場合、これは <cf_root>/jre/bin にあります。
ColdFusion サービスおよび他の設定済み web サーバーを再起動する権限を持つユーザーアカウントからアップデートをインストールします。
アプリケーションの手動更新について詳しくは、このヘルプ記事を参照してください。
Java 11.0.20 以降を使用していて、ホットフィックスを適用する場合は、フラグ java -Djdk.util.zip.disableZip64ExtraFieldValidation=true -jar hotfix.jar を使用します。
ただし、ColdFusion Administrator からアップデートを適用する場合は、フラグは必要ありません。
インストール後
このアップデートの適用後、ColdFusion のビルド番号は 2021.0.20.330407 になるはずです。
アンインストール
アップデートをアンインストールするには、以下のいずれかの操作を行います。
- ColdFusion Administrator で、「サーバーアップデート/アップデート/インストール済みアップデート」に移動して「アンインストール」をクリックします。
- コマンドプロンプトからアップデートのアンインストーラーを実行します。 例:java -jar {cf_install_home}/{instance_home}/hf_updates/hf-2021-00020-330407/uninstall /uninstaller.jar
上記のアンインストールオプションを使用してもアップデートをアンインストールできない場合、アンインストーラーが破損している可能性があります。 ただし、次の操作を実行すれば、手動でアップデートをアンインストールできます。
- {cf_install_home}/{instance_name}/lib/updates からアップデート jar を削除します。
- {cf_install_home}/{instance_name}/hf-updates/{hf-2021-00020-330407}/backup ディレクトリから {cf_install_home}/{instance_name}/ にすべてのフォルダーをコピーします。
コネクタ設定
2021 年アップデート | コネクタの再作成が必要 |
アップデート 21 | いいえ
ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 20 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 19 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 18 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 17 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 16 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 15 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 14 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 13 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 12 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 11 | はい |
アップデート 10 | いいえ |
アップデート 9 | いいえ |
アップデート 8 | いいえ |
アップデート 7 | いいえ |
アップデート 6 | いいえ |
アップデート 5 | いいえ |
アップデート 4 | いいえ |
アップデート 3 | いいえ。 アップデート 2 でコネクタを既にアップグレードしてある場合は、コネクタを更新する必要はありません。 |
アップデート 2 | はい |
アップデート 1 | はい |
パッケージの更新
アップデート | パッケージの更新 |
アップデート 21 | 〇 次のパッケージが更新されました。
|
アップデート 20 | 〇 次のパッケージが更新されました。
|
アップデート 19 | 〇 次のパッケージが更新されました。
|
アップデート 18 | 〇 pmtagent パッケージが更新されました。 |
アップデート 17 | はい |
アップデート 16 | いいえ |
アップデート 15 | いいえ |
アップデート 14 | はい |
アップデート 13 | はい |
アップデート 12 | いいえ |
アップデート 11 | はい |
アップデート 10 | いいえ |
アップデート 9 | いいえ |
アップデート 8 | いいえ |
アップデート 7 | いいえ |
アップデート 6 | はい |
アップデート 5 | はい |
アップデート 4 | はい |
アップデート 3 | はい |
アップデート 2 | はい |
アップデート 1 | はい |