ColdFusion(2021 リリース)アップデート 17
セキュリティに関する推奨事項
すべてのセキュリティアップデートについて、ColdFusion のセキュリティページで説明されているセキュリティ設定を適用し、それぞれのロックダウンガイドを確認することをお勧めします。
アップデートのインストール後、コネクタを作成し設定する必要があるかどうかを確認します。詳しくは、コネクタ設定の節を参照してください。
以下のアップデートは累積的なもので、以前のアップデートがすべて含まれています。以前のアップデートを行っていない場合、最新のアップデートを適用することで、以前のアップデートも適用されます。また、スキップしたアップデートで行われた変更をメモしておいてください。
以前のアップデートをインストールするには、ColdFusion(2021 リリース)のアップデートを参照してください。
新機能および変更された機能
ColdFusion(2021 リリース)アップデート 17(リリース日:2024年10月14日(PT))には、Administrator、言語、CFSetup、データベースなどの領域のバグ修正と機能強化が含まれています。このアップデートには、netty、ehcache などのライブラリのアップグレードが含まれています。
更新を続行する前に、既知の問題を確認してください。
このアップデートの適用後、HTMLToPDF パッケージのインストールと Oracle データソースの検証を行うための回避策として、Felix キャッシュをクリアすることをお勧めします。
すべてのデプロイメントでの空白抑制
効率的な空白抑制により、ColdFusion で削除しなければ CFML ソースファイルに残っている可能性のある多くの余分な空白、タブおよび復帰文字が削除されるので、ColdFusion からブラウザーに返されるページのファイルサイズが小さくなります。
ColdFusion のホワイトスペースは、ColdFusion Administrator(サーバーの設定/設定)で有効または無効にすることができます。
変更点
このリリースでは、ColdFusion のすべてのデプロイメントで空白抑制が可能です。例えば、Administrator や Admin API を使用して、JEE デプロイメントでのホワイトスペースの使用を許可できます。
ColdFusion Administrator を使用する場合
-
ColdFusion Administrator を起動します。
-
サーバーの設定/設定
を選択します。 -
「「空白抑制の有効化」チェックボックスを選択します。
Admin API を使用する場合
CFIDE.adminapi.runtime クラスの setRuntimeProperty メソッドで propertyName を whitespace として指定します。
例えば、
<cfscript> // 常にログインが必要。この例では 次の 2 行のコードを使用する adminObj = createObject(“component”,“cfide.adminapi.administrator”); adminObj.login(“password”); // CF Administrator のパスワード。 // ランタイムオブジェクトをインスタンス化する。 myObj = createObject(“component”,“CFIDE.adminapi.runtime”); // ホワイトスペースを設定する myObj.setRuntimeProperty(“whitespace”,true) // プロパティを取得する saveWhitespacesEnabled = myObj.getRuntimeProperty(“whitespace”) writeOutput(“Is whitespace management enabled: ” & saveWhitespacesEnabled & “<br>”) </cfscript>
レジストリ |
|
JDBC |
|
Cookie |
|
コマンド
表示
- show category - このコマンドはクライアント変数をカテゴリとして表示します。
- show clientvariable - このコマンドはクライアント変数のすべての設定を表示します。
- show clientvariable cookie - このコマンドは特定のクライアントストアのすべての詳細を表示します。
- show clientvariable nonexistentclientstore - エラーメッセージ を表示します。
ヘルプ
- help clientvariable - このコマンドは、カテゴリで使用可能なすべての設定を表示します。
- help set clientvariable
- help get clientvariable
- help add clientvariable
- help delete clientvariable
- help export clientvariable
- help import clientvariable
取得
- get clientvariable clientstore
- get clientvariable purgeintervalinminutes
- get clientvariable cookie
- get clientvariable cookie name
- get clientvariable cookie purgeDataUnvisitedForDays
- get clientvariable cookie description
設定
- set clientvariable clientstore=none
- set clientvariable clientstore=cookie
- set clientvariable clientstore=cfartgallery
- set clientvariable purgeintervalinminutes=92
- set clientvariable cookie purgeDataUnvisitedForDays=90 disableGlobalClientVariableUpdates=true description="テスト用の説明"
- set clientvariable cookie purgeDataUnvisitedForDays=90 disableGlobalClientVariableUpdates=Yes description="テスト用の説明"
追加
- add clientvariable name=cfartgallery description="JDBCベースのクライアントストア。"purgeDataUnvisitedForDays=91 disableGlobalClientVariableUpdates=false
削除
- delete clientvariable cfartgallery
書き出し
- export clientvariable test.json
読み込み
- import clientvariable test.json
OEM | 以前のバージョン | 新しいバージョン |
ehcache | 2.10.3 | 2.10.92 |
netty | 3.9.9 | 4.1.89、4.1.109 |
postgresql | 42.2.14 | 42.7.3 |
quartz | 2.2.1 | 2.4.0 |
solr war SOLR のアップグレードについては、ColdFusion のセキュリティリスクを軽減するための SOLR のアップグレードを参照してください。 |
7.2.1 | 8.11.3 |
xalan | 2.7.1 | 2.7.3 |
cxf | 4.0.1 | 4.0.5 |
これらの JAR は、以前のリリースで既に更新されていた古く脆弱性のあるバージョンだったので、削除されました。
バグ ID | 説明 | コンポーネント |
---|---|---|
CF-4222080 |
Firefox でスケジュール済みタスクを作成または変更できません。 | Administrator |
CF-4211503 |
特定の画像をフォームの最初のフィールドとしてアップロードすると、後続のフォームフィールドが POST リクエストに現れれなくなります。 |
CFForm |
CF-4216637 |
CFImage タグを使用して画像のサイズを変更できません。 | CFImage |
CF-4222881 |
RAM ドライブから S3 バケットにファイルをアップロードできません。 | クラウドサービス |
CF-4220122 |
cfsearch テストページが読み込まれるたびに、システムスレッドの数が増加します。 |
ColdFusion パッケージ |
CF-4219563 |
purgecache コマンドが cfpm コマンドラインインターフェイス内でのみ機能します。cfpm purgecache を使用すると、コマンドが正常に動作しません。 | ColdFusion パッケージ |
CF-4223452 |
バッチモードで cfpm install コマンドを使用して複数のパッケージをインストールできません。ただし、cfpm コマンドラインインターフェイスを使用すると可能です。例えば、次のコマンドを実行すると、パッケージがインストールされます。 C:\ColdFusion2021\cfusion\bin\cfpm install document, htmltopdf しかし、次のコマンドではパッケージがインストールされません。 C:\ColdFusion2021\cfusion\bin\cfpm install document, htmltopdf |
ColdFusion パッケージ |
setter 関数に間違った名前付きパラメーターを使用すると、間違った関数名が例外で報告されます。 |
コアランタイム |
|
JEE インストールでは、スプレッドシートで空白抑制を使用できません。 |
コアランタイム |
|
CF-4220502 |
配列型のプロパティを含んだコンポーネントでは、三項の true ステートメントセクション内に配列構文が含まれる状態で getter を使用すると、コンパイル時に NullPointerException が発生します。 |
コアランタイム |
CF-4204716 |
一部のスケジュール済みタスクでは、cfquery タグがスケジュール済みタスク内で失敗し、メッセージと原因が返されません。 |
データベース |
QoQ を日付列で並べ替えようとすると、Java タイムスタンプエラーが発生します。 |
データベース |
|
|
Oracle サーバー v19.23 を v19.24 に更新し、ColdFusion Administrator の「データソース」で接続を確認すると、次のエラーメッセージが表示されます。 データソースの接続確認に失敗しました : DATASOURCE_A java.sql.SQLException: [DataDirect][Oracle JDBC Driver]arraycopy: destination index -1 out of bounds for byte[128] 詳しくは、コミュニティフォーラムの投稿を参照してください。 |
データベース
|
CF-4223940 |
最新アップデートの適用後、Oracle データソースの確認に失敗します。この問題を解決するには、Felix キャッシュをクリアし、ColdFusion を再起動してください。 |
データベース |
CF-4220030 |
クエリを実行しようとすると、JDBC 例外が発生することがあります。 |
データベース |
CF-4222036 |
mysql から zeroDateTime を TimeStamp として読み取ると、java.sql.SQLException zeroDate is prohibited というエラーが発生するようになりました。 |
データベース |
|
PDF フォームの画像フィールドに入力できません。 |
ドキュメント管理 |
|
インストールされている Java のバージョンが 11.0.18 より大きい場合、PDF サービスマネージャーが正常に登録されません。次のエラーメッセージが表示されます。
"エラー","Thread-39","03/15/23","10:55:55","","サービスマネージャーの登録エラー : .http://127.0.0.1:8993/PDFgServlet/.Reason: SERVER ERROR". |
ドキュメント管理
|
|
cfsetup で、ColdFusion Administrator のクライアント変数設定が表示されないか書き出されません。
|
インストール/設定
|
|
等価演算子(eq)が正常に機能しません。
|
言語
|
|
クエリで、最初の位置以外の任意の位置について、indexOf 関数が -1 をインデックスとして返します。
|
言語
|
|
クロージャを含んだ構造体キーが、大文字と小文字の区別を維持しません。
|
言語
|
|
null 変数を同一性演算子 === で比較できません。回避策として、等価演算子 == を使用してください。
|
言語
|
|
ローカルスコープの変数を配列内の 1 つ以上の項目として含んだ cfelseif タグの条件ステートメント内で呼び出される関数に配列リテラルを渡すと、例外が表示されます。
|
言語
|
|
ColdFusion では generate3DesKey 関数をサポートしていますが、この関数がドキュメント化されていないか、getfunctionlist() の戻り値に含まれていません。
|
言語
|
|
抽象クラスから静的メソッドを呼び出すことができません。
|
言語
|
CF-4222022 |
複数の CFC を含んだ構造体をダンプすると、上位の CFC のメソッドが下位の CFC に反映されます。 |
言語 |
CF-4222005 |
チェーン化を使用した構造体キーで、関数が存在する場合は ColdFusionで例外が発生します。 |
言語 |
CF-4219723 |
アップデート 11 の適用後、toArray 関数が正常に機能しません。 |
言語 |
|
cfstat.bat -x を実行すると、Null ポインター例外が発生します。
|
ログ
|
|
ColdFusion Administrator のデバッグとロギング/ログファイルページでファイル操作を許可します。
|
ログ
|
CF-4219897 |
アップデートの適用後、coldfusion-out.log が正常に更新されません。詳しくは、コミュニティフォーラムの投稿を参照してください。 |
ログ |
|
ColdFusion が、Ed25519 などの新しい OpenSSH キーアルゴリズムを使用して sFTP 接続を処理できません。回避策として、次の JVM フラグを追加してください。
|
ネットプロトコル
|
CF-4216277 |
cfpm scan コマンド([path] と [serverurl] を指定)を実行すると、エラーが発生します。 エラー : CODEBASEPATH [path] が見つかりません これは、パスが存在する場合も同様です。 |
パッケージ |
CF-4219459 |
Application.cfm の使用時に REST サービスを登録できません。 |
REST サービス |
|
cfreport が正常に機能しません。次のエラーメッセージが表示されます。 行 4、文字 326 にエラーがあります : net.sf.jasperreports.engine.xml.JasperDesignFactory 問題が引き続き断続的に発生する場合は、Felix キャッシュをクリアし、ColdFusion を再起動してください。 |
レポート機能
|
CF-4220241 |
サンドボックスを有効にし、action="write" と file output= "jpg" を指定して <cfimage> タグを使用すると、ColdFusion が予期しない動作をします。 |
サンドボックス |
|
initSAMLAuthRequest 関数を実行すると、Null ポインター例外が断続的に発生します。
|
セキュリティ
|
CF-4223921 |
Open Document Format ファイル(.odt 拡張子など)をインデックス化しようとすると、例外が発生します。 |
検索 |
CF-4222210 |
Unix でアドオンを再起動した後、Solr コレクションが Administrator UI に表示されません。回避策として、cfjetty ファイルを手動で更新し、solr.home 値を最新の値にハードコードして、jetty を再起動してください。 |
検索 |
既知の問題
- HTMLToPDF パッケージがインストールされていても、ColdFusion Administrator の Adobe PDF Services ページが読み込まれません。回避策として、Felix キャッシュ(<cf_home>/cfusion/bin/felix-cache)をクリアしてください。
- 最新アップデートのインストール後、Oracle データソースの確認に失敗します。回避策として、Felix キャッシュをクリアし、ColdFusion を再起動してください。
- .odt 拡張子のファイルなど、Open Document Format ファイルをインデックス化する際に例外が発生します。
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 を再起動して変更を有効にします。
オフラインモードでのアップデートの手動インストール
- このリンクから、ホットフィックスインストーラーをダウンロードします。
- このリンクから 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-017-330334.jar
- Linux ベースのプラットフォーム:<cf_root>/jre/bin/java -jar <InstallerReposityUnzippedPath>/bundles/updateinstallers/hotfix-017-330334.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.17.330334
になるはずです。
アンインストール
アップデートをアンインストールするには、以下のいずれかの操作を行います。
- ColdFusion Administrator で、「サーバーアップデート/アップデート/インストール済みアップデート」に移動して「アンインストール」をクリックします。
- コマンドプロンプトからアップデートのアンインストーラーを実行します。例:java -jar {cf_install_home}/{instance_home}/hf_updates/hf-2021-00017-330334/uninstall/uninstaller.jar
上記のアンインストールオプションを使用してもアップデートをアンインストールできない場合、アンインストーラーが破損している可能性があります。ただし、次の操作を実行すれば、手動でアップデートをアンインストールできます。
- {cf_install_home}/{instance_name}/lib/updates からアップデート jar を削除します。
- {cf_install_home}/{instance_name}/hf-updates/{hf-2021-00017-330334}/backup ディレクトリから {cf_install_home}/{instance_name}/ にすべてのフォルダーをコピーします。
コネクタ設定
2021 年アップデート | コネクタの再作成が必要 |
アップデート 17 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 16 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 15 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 14 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 13 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 12 | いいえ ただし、アップデート 10 またはそれ以前のアップデートからアップグレードする場合は、コネクタを再作成する必要があります。 詳細については、以下を参照してください。 |
アップデート 11 | はい |
アップデート 10 | いいえ |
アップデート 9 | いいえ |
アップデート 8 | いいえ |
アップデート 7 | いいえ |
アップデート 6 | いいえ |
アップデート 5 | いいえ |
アップデート 4 | いいえ |
アップデート 3 | いいえ。アップデート 2 でコネクタを既にアップグレードしてある場合は、コネクタを更新する必要はありません。 |
アップデート 2 | はい |
アップデート 1 | はい |