ColdFusion(2021 リリース)アップデート 13
セキュリティに関する推奨事項
すべてのセキュリティアップデートについて、ColdFusion のセキュリティページで説明されているセキュリティ設定を適用し、それぞれのロックダウンガイドを確認することをお勧めします。
アップデートのインストール後、コネクタを作成し設定する必要があるかどうかを確認します。詳しくは、コネクタ設定の節を参照してください。
新機能および変更された機能
以下のアップデートは累積的なもので、以前のアップデートがすべて含まれています。以前のアップデートを行っていない場合、最新のアップデートを適用することで、以前のアップデートも適用されます。また、スキップしたアップデートで行われた変更をメモしておいてください。
以前のアップデートをインストールするには、ColdFusion(2021 リリース)のアップデートを参照してください。
ColdFusion(2021 リリース)アップデート 13(リリース日:2024年3月12日(PT))では、セキュリティ情報 APSB24-14 に記載されている脆弱性に対処しています。
このアップデートには、システムの安全性とセキュリティを確保するためのいくつかのセキュリティ修正が含まれています。これらの変更は、潜在的な脆弱性と脅威に対処するもので、お客様のデータとプライバシーを保護するためのアドビの継続的なコミットメントの一環です。
次の各節では、このアップデートにおける変更点の概要を示します。
このドキュメントの内容
このリリースにおける重要な変更点
スコープ変数の変更点
デフォルトでは、接頭辞のない変数名が見つかると、その変数が特定の順序で様々なスコープでチェックされていました。その後、パフォーマンス上の理由でアプリケーション変数 searchimplicitscopes=FALSE が導入されました。つまり、スコープが指定されていない変数はスコープ内で検索されなくなりました。
このアップデート以降、ColdFusion では searchimplicitscopes=FALSE がデフォルトになり、変数名の前にスコープ識別子が付いていない場合は、影響を受けるスコープ(下記を参照)のいずれか 1 つでのみ解決できます。該当するスコープは、リクエストの外部から変更することができます。
この変更の影響を受けるスコープは次のとおりです。
- CGI
- URL
- Form
- Cookie
- CFFile
- Client
例えば、次のコードは、変数 TEST が未定義という例外が発生して失敗します。
<cfset cookie.test=1> <cfoutput>#test#</cfoutput>
UndefinedElementException または 変数 {xx} が未定義であるというエラーが発生した場合はどうするか
選択肢 1:正しいスコープから値を取得するようにアプリケーションコードを修正します。
<cfset cookie.test=1>
<cfoutput>#cookie.test#</cfoutput>
*選択肢 2:searchimplicitscopes 値を TRUE に戻します。
これは次の手順で行います。
- 新しく導入されたフラグ -Dcoldfusion.searchimplicitscopes=true を jvm 引数に追加します。または、
- Application.cfc または Application.cfm で searchimplicitscopes キーを TRUE に設定します。この場合は、サーバーレベルで設定された jvm フラグよりも優先されます。
*この選択肢はお勧めできません。すべてのアプリケーションコードが修正されるまでの一時的な回避策と見なしてください。
詳しくは、ColdFusion のアプリケーション変数を参照してください。
次回メジャーリリースでの変更点
JVM フラグ -Dcoldfusion.searchimplicitscopes は ColdFusion の次回メジャーリリースで削除されるので、スコープが指定されていない変数を暗黙的なスコープで検索することはできなくなります。これにより、アプリケーションコードの変更が必要になる可能性があります。
デフォルトのブロックリスト
このアップデートでは、jar、class、ashx、asmx の各拡張子が CFFILE アップロードのデフォルトのブロックリストに追加されました。
このブロックリストを更新するには:
- ColdFusion Administrator/サーバーの設定/CFFile アップロードのブロック済みファイルエクステンションに移動します。
- 「デフォルト拡張子の復元」を選択します。
- 変更内容を送信します。
メモ:ブロックリストを更新した場合は、「デフォルト拡張子の復元」をクリックすると、ブロックリストが削除されます。予防策として、更新した拡張子リストに jar、class、ashx および asmx を追加し、変更を保存してください。
パッケージの更新
このアップデートでは、次のパッケージが更新されました。
- adminapi
- administrator
- ajax
- db2
- document
- htmltopdf
- mysql
- odbc
- presentation
- report
- saml
- sybase
CKEditor の変更点
CKEditor でファイルアップロードが禁止されているファイルタイプが更新されて、.jar、.class、.ashx および .asmx が追加されました。
このアップデートで修正されたバグ
バグ ID | 説明 | コンポーネント |
CF-4219940 | アップデートのインストール後、ColdFusion から SQL Server に接続できません。 | データベース |
CF-4220252 | Docker で CAR パッケージを使用してスケジュール済みタスクを読み込めません。 詳しくは、更新された ColdFusion シリアルフィルターのドキュメントを参照してください。 |
スケジューラー |
ColdFusion JDK フラグの要件
COLDFUSION 2021(バージョン 2021.0.0.323925)以降
アプリケーションサーバーの場合
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 フラグを設定します。
前提条件
- 64 ビットコンピューターでは、64 ビット版 ColdFusion の 64 ビット JRE を使用します。
- ColdFusion サーバーがプロキシの背後にある場合は、サーバーが更新通知を受け取ってアップデートをダウンロードできるようにプロキシ設定を指定してください。スタンドアロンインストールの場合は jvm.config の下のシステムプロパティ、JEE インストールの場合は対応するスクリプトファイルを使用してプロキシ設定を指定します。
- http.proxyHost
- http.proxyPort
- http.proxyUser
- http.proxyPassword
- JEE アプリケーションサーバー上で実行している ColdFusion の場合、アップデートをインストールする前に、すべてのアプリケーションサーバーインスタンスを停止します。
インストール
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-013-330286.jar
- Linux ベースのプラットフォーム:<cf_root>/jre/bin/java -jar <InstallerReposityUnzippedPath>/bundles/updateinstallers/hotfix-013-330286.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 リリース)がアップデート 1 の状態にある場合、任意のインスタンスの Administrator を使用してアップデート 12 をインストールすると、存在する他のすべてのインスタンスのコアも更新されます。
同様に、同じインスタンスからアップデートをアンインストールすると、一緒に更新されたインスタンスからもアップデートがアンインストールされます。
インストール後
このアップデートの適用後、ColdFusion のビルド番号は 2021.0.13.330286
になるはずです。
アンインストール
アップデートをアンインストールするには、以下のいずれかの操作を行います。
- ColdFusion Administrator で、「サーバーアップデート/アップデート/インストール済みアップデート」に移動して「アンインストール」をクリックします。
- コマンドプロンプトからアップデートのアンインストーラーを実行します。例:java -jar {cf_install_home}/{instance_home}/hf_updates/hf-2021-00013-330286/uninstall/uninstaller.jar
上記のアンインストールオプションを使用してもアップデートをアンインストールできない場合、アンインストーラーが破損している可能性があります。ただし、次の操作を実行すれば、手動でアップデートをアンインストールできます。
- {cf_install_home}/{instance_name}/lib/updates からアップデート jar を削除します。
- {cf_install_home}/{instance_name}/hf-updates/{hf-2021-00013-330286}/backup ディレクトリから {cf_install_home}/{instance_name}/ にすべてのフォルダーをコピーします。
コネクタ設定
2021 年アップデート | コネクタの再作成が必要 |
アップデート 13 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。
詳細については、以下を参照してください。 |
アップデート 12 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。
詳細については、以下を参照してください。 |
アップデート 11 | はい |
アップデート 10 | いいえ |
アップデート 9 | いいえ |
アップデート 8 | いいえ |
アップデート 7 | いいえ |
アップデート 6 | いいえ |
アップデート 5 | いいえ |
アップデート 4 | いいえ |
アップデート 3 | いいえ。アップデート 2 でコネクタを既にアップグレードしてある場合は、コネクタを更新する必要はありません。 |
アップデート 2 | はい |
アップデート 1 | はい |
ドキュメントの改版履歴
- 2024年3月13日(PT):影響を受けるスコープおよび関連するコードサンプルを追加しました。