ColdFusion(2023 リリース)アップデート 14
セキュリティに関する推奨事項
すべてのセキュリティアップデートについて、ColdFusion のセキュリティページで説明されているセキュリティ設定を適用し、それぞれのロックダウンガイドを確認することをお勧めします。
アップデートのインストール後、コネクタを作成し設定する必要があるかどうかを確認します。 詳しくは、コネクタ設定の節を参照してください。
以下のアップデートは累積的なもので、以前のアップデートがすべて含まれています。 以前のアップデートを行っていない場合、最新のアップデートを適用することで、以前のアップデートも適用されます。 また、スキップしたアップデートで行われた変更をメモしておいてください。
新機能および変更された機能
ColdFusion(2023 リリース)アップデート 14(リリース日:2025年5月13日(PT))は、ファイルシステムの任意の読み取り、任意のコード実行、権限昇格、セキュリティ機能のバイパスにつながるおそれがある重大かつ重要な脆弱性を解決します。 また、以前の ColdFusion アップデートからの PDFg サービス関連の問題も解決します。
詳しくは、セキュリティ情報 APSB25-52 を参照してください。
このアップデートで、cfusion/lib にある serialfilter.txt ファイルが置き換えられます。 そのため、このファイルに既にカスタム エントリが追加されている場合は、バックアップ ファイル(cfusion/hf-updates/{version}/backup/lib)からカスタム エントリをコピーします。
リモートメソッドの変更
リモートメソッドが特定のパラメーターを必要とする場合、これらの引数は cfargument タグを使用して明示的に宣言するか、関数署名で直接定義する必要があります。 例えば、リモート関数が 2 つの引数を受け入れるように定義されている場合、その 2 つの引数のみを受け取る必要があります。 宣言された数(例:10)を超える引数を渡すと、エラーが発生します。 この変更により、メソッドの整合性がより厳密になり、デバッグエクスペリエンスが向上します。 この動作変更は、リモート CFC メソッドにのみ適用されます。
このアップデートの新しい JVM フラグ
- -Dcoldfusion.runtime.remotemethod.matchArguments
- -Dcoldfusion.systemprobe.allowexecution
フラグについて詳しくは、ColdFusion(2023 リリース)および ColdFusion(2021 リリース)の JVM 引数を参照してください。
新しい Admin API
関数 canSystemProbeExecuteFile は、スケジューラーコンポーネント(CFIDE.adminapi.scheduler)の一部として導入されました。 この関数は、ColdFusion がシステムプローブの実行を許可しているかどうかを確認します。
<cfscript>
obj = createObject("component","cfide.adminapi.scheduler")
writeOutput(#obj.canSystemProbeExecuteFile#)
</cfscript>
プログラムの実行に指定したパスは、英数字、スラッシュ、ハイフン、アンダースコア、コロン、スペースに対して検証されます。
パスフィルターの変更
以前のアップデートでは、バイトコード実行防止用に cfusion/lib フォルダー内に pathfilter.txt が導入されました。 このアップデートでは、pathfilter.txt の代わりに、ColdFusion は pathfilter.json を導入します。 pathfilter.txt は引き続き使用できますが、ColdFusion では txt ファイルではなく JSON ファイルを使用します。 ファイル内のキーは、スケジューラー、バイトコードなどの機能を表します。
{
"comments": "パスはセミコロンで区切る必要があります。
ファイルを許可するには:{path-of-file};
ディレクトリとその中のファイルを許可するには:{path-to-directory}/*;
ディレクトリとサブディレクトリを許可するには:{path-to-directory}/**;
ファイルをブロックするには:!{path-of-file};
ディレクトリとサブディレクトリをブロックするには:!{path-to-directory}/**;
優先順位は左から右に向かって下がります。 ディレクトリ A の中にディレクトリ B と C があるとします。
B を許可し C をブロックするには:!A/C/*;A/**;",
"bytecodeexecutionpaths": "",
"schedulerexectionpaths": ""
}
スケジュールしたタスクで、ColdFusion Administrator の公開/出力をファイルに保存オプションが有効で、ファイルパスが指定されている場合、<cf_home>/lib にある pathfilter.json ファイルの Schedulerexecutionpaths セクションでそのパスが明示的に許可されていない限り、タスクは機能しなくなります。
単一ファイルの場合:
「schedulerexecutionpaths」:「C:/temp/log.txt;」
フォルダー全体の場合:
「schedulerexecutionpaths」:「C:/temp/**;」
変更を行った後、ColdFusion を再起動します。
最新の MySQL コネクタへのアップデート
セキュリティ上の理由から、最新の MySQL Java コネクタ(バージョン 8.0.15 以降)の使用を強くお勧めします。 以前のバージョンには、環境を危険にさらす可能性がある既知のセキュリティ脆弱性が含まれています。
コネクタのインストールについて詳しくは、MySQL JDBC ドライバーの設定(MySQL コネクタ)を参照してください。
アップデートで修正されたバグ
- CCS を停止した後にノードを追加または削除すると、ColdFusion は例外をスローします。
- Docker イメージでコマンド docker run --rm -it -v ./mywebroot:/app -e acceptEULA=YES adobecoldfusion/coldfusion:latest cli t.cfm を実行すると、Null ポインター例外が発生します。
- ColdFusion がインストールされ、複数のインスタンスが作成されている場合、すべてのインスタンスを一度に選択してホットフィックスを適用すると、正常に完了します。 ただし、このホットフィックスでは、特定の必須ファイル、特に jetty-ipaccess.xml ファイルが cfusion/jetty/etc ディレクトリに期待どおりにデプロイされません。 このファイルは、アップデート 19(CF 2021)、13(CF 2023)および 1(CF 2025)で導入されましたが、このケースでは欠落していました。
- 以前のアップデートをインストールした後、PDF サービスマネージャーを登録または登録解除すると、エラーが発生します。 アップデートを適用し、ColdFusion サービスとアドオンサービスの両方を再起動した後、Administrator で PDFg サービスを編集すると、PDF エンジン 1 で予期しない動作が発生します。
- 以前のアップデートをインストールした後、FTP および cfzip パッケージは cfpm にリストされていたにもかかわらず機能しませんでした。
このアップデートの既知の問題
- packages フォルダーが存在しない場合、CAR ビルドは失敗します。 回避策として、<cfhome>/cfusion/ に「packages」という名前のフォルダーを作成します(まだ作成していない場合)。
- Windows 以外のシステムでは、Administrator/PDF サービス経由でローカル PDF サービスを編集すると、サービスが削除されます。 IP アドレス 127.0.0.1 は、jetty/etc/jetty-ipaccess.xml ファイル内の許可リストに含まれません。 その結果、ローカル PDF サービスへの接続がブロックされ、編集時に削除されます。 回避策として、jetty-ipaccess.xml ファイルで 127.0.0.1 を手動で許可リストに追加します。 これにより、ColdFusion Administrator から編集する際に、PDF サービスが正常に機能するようになります。
- アップデートをインストールした後、「出力をファイルに保存」オプションを有効にして設定したスケジュール済みタスクが、neo-cron.xml 設定ファイルから削除される場合があります。 pathfilter.json ファイルで出力パスを許可した後でも、問題は解決しません。アップデートプロセス中にスケジュール済みタスクエントリが削除される場合があり、パスを許可するだけではタスクが復元または読み込まれません。 回避策として、次の手順に従います。
- アップデートを適用する前に、<cf_root>/cfusion/lib ディレクトリにある neo-cron.xml ファイルのバックアップを作成します。
- 更新後にスケジュールタスクが見つからない場合:
- アップデート中に作成されたバックアップファイル(neo-cron.bak)を見つけます。
- neo-cron.bak から関連するコンテンツ(スケジュール済みタスクエントリ)をコピーし、アップデートした neo-cron.xml ファイルにペーストします。
- 変更を保存し、ColdFusion を再起動します。
- ColdFusion(2023 リリース)にアップデート 14 をインストールした後、ColdFusion Administrator ページにログインしようとすると、エラー(エラー [http-nio-2099-exec-1] - 関数 hashRequired は、C:\ColdFusion2023\cfusion\wwwroot\CFIDE\adminapi\security.cfc でボタンを引数としてサポートしていません)が発生する場合があります。 回避策として、次の JVM 引数を JVM 設定ファイル(jvm.config)に追加し、ColdFusion サービスを再起動します。
- -Dcoldfusion.runtime.remotemethod.matchArguments=false
- この更新にロックダウンを適用する場合は、-Dcoldfusion.runtime.remotemethod.matchArgumentsフラグを追加し、その値をfalseに設定してください。
前提条件
- 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 インストールでは、使用するアプリケーションサーバーのタイプに応じて、それぞれの起動ファイルに 「-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 フラグを設定します。
ColdFusion Administrator
パッケージマネージャー/パッケージで、コアサーバーの「アップデートを確認」をクリックします。
アップデートが検出されたら、「更新」をクリックします。 コアパッケージが前回のアップデートから更新されます。
インストールされているすべてのパッケージも更新されます。
ColdFusion を再起動して変更を有効にします。
オフラインモードでのアップデートの手動インストール
- このリンクから、ホットフィックスインストーラーをダウンロードします。
- このリンクから packages zip ファイルをダウンロードし、その内容を、すべてのColdFusion サーバーインスタンスからアクセスできる場所に展開します。
- cfusion およびそのすべての子インスタンスの cfusion/lib/neo_updates.xml で「packagesurl」を更新して、ダウンロードしたフォルダー内にある <InstallerRepositoryUnzippedPath>/bundles/bundlesdependency.json を指すようにします。
ColdFusion サービスを開始したり停止する特権と ColdFusion ルートディレクトリへのフルアクセスが必要です。
- Windows:<cf_root>\jre\bin\java.exe -jar <InstallerRepositoryUnzippedPath>\bundles\updateinstallers\hotfix-014-330784.jar
- Linux ベースのプラットフォーム:<cf_root>/jre/bin/java -jar <InstallerRepositoryUnzippedPath>/bundles/updateinstallers/hotfix-014-330784.jar
コアサーバーのホットフィックスのインストールに成功しても、パッケージにエラーや問題がある場合は、パッケージマネージャークライアント(cfusion\bin\cfpm.bat/cfpm.sh)でパッケージをインストールまたは更新することができます。
ダウンロードした JAR の実行には、ColdFusion にバンドルされている JRE を必ず使用してください。 スタンドアローン ColdFusion の場合、これは <cf_root>/jre/bin にあります。
ColdFusion サービスおよび他の設定済み web サーバーを再起動する権限を持つユーザーアカウントからアップデートをインストールします。
アプリケーションの手動更新について詳しくは、このヘルプ記事を参照してください。
Java 17.0.8 以降を使用していて、ホットフィックスを手動で適用する場合は、フラグ java -Djdk.util.zip.disableZip64ExtraFieldValidation=true -jar hotfix.jar を使用します。
ただし、ColdFusion Administrator からアップデートを適用する場合は、フラグは必要ありません。
インストール後
このアップデートの適用後、ColdFusion のビルド番号は 2023,0,14,330784
になるはずです
アンインストール
アップデートをアンインストールするには、以下のいずれかの操作を行います。
- ColdFusion Administrator で、「サーバーアップデート/アップデート/インストール済みアップデート」に移動して「アンインストール」をクリックします。
- コマンドプロンプトからアップデートのアンインストーラーを実行します。 例:java -jar {cf_install_home}/{instance_home}/hf_updates/hf-2023-00014-330784/uninstall /uninstaller.jar
上記のアンインストールオプションを使用してもアップデートをアンインストールできない場合、アンインストーラーが破損している可能性があります。 ただし、次の操作を実行すれば、手動でアップデートをアンインストールできます。
- {cf_install_home}/{instance_name}/lib/updates からアップデート jar を削除します。
- {cf_install_home}/{instance_name}/hf-updates/{hf-2023-00014-330784}/backup ディレクトリから {cf_install_home}/{instance_name}/ にすべてのフォルダーをコピーします。
コネクタ設定
| 2023 年アップデート | コネクタの再作成が必要 |
|---|---|
| アップデート 14 | いいえ ただし、アップデート 4 またはそれ以前からアップグレードする場合は、コネクタを再作成する必要があります。 コネクタの作成と設定について詳しくは、次のドキュメント参照してください。 |
| アップデート 13 | いいえ ただし、アップデート 4 またはそれ以前からアップグレードする場合は、コネクタを再作成する必要があります。 コネクタの作成と設定について詳しくは、次のドキュメント参照してください。 |
| アップデート 12 | いいえ ただし、アップデート 4 またはそれ以前からアップグレードする場合は、コネクタを再作成する必要があります。 コネクタの作成と設定について詳しくは、次のドキュメント参照してください。 |
| アップデート 11 | いいえ ただし、アップデート 4 またはそれ以前からアップグレードする場合は、コネクタを再作成する必要があります。 コネクタの作成と設定について詳しくは、次のドキュメント参照してください。 |
| アップデート 10 | いいえ ただし、アップデート 4 またはそれ以前からアップグレードする場合は、コネクタを再作成する必要があります。 コネクタの作成と設定について詳しくは、次のドキュメント参照してください。 |
| アップデート 9 | いいえ ただし、アップデート 4 またはそれ以前からアップグレードする場合は、コネクタを再作成する必要があります。 コネクタの作成と設定について詳しくは、次のドキュメント参照してください。 |
| アップデート 8 | いいえ ただし、アップデート 4 またはそれ以前からアップグレードする場合は、コネクタを再作成する必要があります。 コネクタの作成と設定について詳しくは、次のドキュメント参照してください。 |
| アップデート 7 | いいえ
ただし、アップデート 4 またはそれ以前からアップグレードする場合は、コネクタを再作成する必要があります。 コネクタの作成と設定について詳しくは、次のドキュメント参照してください。 |
| アップデート 6 | いいえ ただし、アップデート 4 またはそれ以前からアップグレードする場合は、コネクタを再作成する必要があります。 コネクタの作成と設定について詳しくは、次のドキュメント参照してください。 |
| アップデート 5 | はい |
| アップデート 4 | いいえ |
| アップデート 3 | いいえ |
| アップデート 2 | いいえ |
| アップデート 1 | いいえ |
パッケージの更新
| アップデート | パッケージの更新 |
|---|---|
| アップデート 14 | 〇 次のパッケージが更新されました。
|
| アップデート 13 | 〇 次のパッケージが更新されました。
|
| アップデート 12 | 〇 pmtagent パッケージが更新されました。 |
| アップデート 11 | はい |
| アップデート 10 | いいえ |
| アップデート 9 | いいえ |
| アップデート 8 | はい |
| アップデート 7 | はい |
| アップデート 6 | いいえ |
| アップデート 5 | はい |
| アップデート 4 | いいえ |
| アップデート 3 | いいえ |
| アップデート 2 | いいえ |
| アップデート 1 | いいえ |