ColdFusion(2021 リリース)アップデート 11
セキュリティに関する推奨事項
すべてのセキュリティアップデートについて、ColdFusion のセキュリティページで説明されているセキュリティ設定を適用し、それぞれのロックダウンガイドを確認することをお勧めします。
アップデートのインストール後、コネクタを作成し設定する必要があるかどうかを確認します。詳しくは、コネクタ設定の節を参照してください。
新機能および変更された機能
ColdFusion(2021 リリース)アップデート 11(リリース日: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 からのデータ損失につながります。詳しくは、「バグ修正」の節を参照してください。
Java 11.0.20 以降を使用している場合は、フラグ java -Djdk.util.zip.disableZip64ExtraFieldValidation=true -jar hotfix.jar
を使用します。
アップデート 12 以降では、このフラグを使用する必要はありません。
以下のアップデートは累積的なもので、以前のアップデートがすべて含まれています。以前のアップデートを行っていない場合、最新のアップデートを適用することで、以前のアップデートも適用されます。また、スキップしたアップデートで行われた変更をメモしておいてください。
以前のアップデートをインストールするには、ColdFusion(2021 リリース)のアップデートを参照してください。
今回のアップデートでは、セキュリティ上の理由から、Administrator でのコネクタポートへのアクセスはブロックされます。
このドキュメントのトピック:
パッケージ更新ワークフローの機能強化
次回のアップデート以降、パッケージのインストール中に、ColdFusion によってコアのバージョンがチェックされ、最新のパッケージを直接インストールするのではなく、コアバージョンと互換性のあるパッケージがインストールされます。
コアサーバーがアップグレードまたはダウングレードされる場合は、その確認を求めるメッセージが 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 |
Jetty | 9.4.31 | 9.4.51 |
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 |
アクティベーション用の関数にアクセスする前に、まず RDS を有効にしてください。
activateNow
新しいシリアルキーを使用して ColdFusion をアクティベートします。
シンタックス
activateNow (string currentSN, string prevSN)
パラメーター
パラメーター | 必須/オプション | 説明 |
currentSN | 必須 | 新しいシリアル番号。 |
prevSN | オプション | 以前のシリアル番号。 |
例
<cfscript> // 常にログインが必要。 adminObj = createObject(“component”,“cfide.adminapi.administrator”) adminObjogin(“PASSWORD” // CF Administrator のパスワード。 previousSN=“previous serial number” currentSN=“new serial number” // オブジェクトをインスタンス化する myObj=createObject(“component”,“CFIDE.adminapiicense”) // 新しいシリアル番号を有効にする try{ myObj.activateNow(currentSNreviousSN) writeOutput(“Successfully activated ColdFusion with the new serial number”) } catch(any e writeDump(e) } </cfscript>
deactivateNow
ColdFusion をオンラインモードでディアクティベートします。
シンタックス
deactivateNow()
例
<cfscript> // 常にログインが必要。 adminObj = createObject(“component”,“cfide.adminapi.administrator”) adminObjogin(“PASSWORD” // CF Administrator のパスワード。// ライセンスオブジェクトをインスタンス化する myObj=createObject(“component”,“CFIDE.adminapiicense”) // ColdFusion をディアクティベートする try{ myObj.deactivateNow() writeOutput(“Successfully dectivated ColdFusion.”) } catch(any e) { writeDump(e) } </cfscript>
バグ 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-4217635 |
ColdFusion でカスタムバーコードフォントを読み込めません。 |
ColdFusion パッケージ:HtmlToPDF |
CF-4216051 |
ColdFusion(2021 リリース)にアップデート 5 を適用した後、CFHTMLTOPDF タグを使用して PDF を生成すると、CFHTMLTOPDF タグが CFC 関数内にあると、拡張 ASCII 文字が誤ったエンコードで返されます。タグが通常の CFM ページに表示されるときは、正しいエンコーディングになっています。 |
ドキュメント管理:PDF の生成(CFHTML2PDF) |
CF-4211764 |
カスタムフォントを使用すると、<cfhtmltopdf> で空の PDF が生成されます。 |
ドキュメント管理:PDF の生成(CFHTML2PDF) |
CF-4211569 |
引用符で囲まれていない true または false 値を含んだコンポーネント構造体または配列を追加すると、セッションが Redis に保存されません。 |
コアランタイム:セッション管理 |
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-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-4217130 |
暗黙的な構造体作成により、大文字と小文字を区別するキーが生成されます。 |
言語 |
CF-4215479 |
encryption 属性の付いた cfdocument タグを使用すると、「クラスが見つかりません」という例外が発生します。 |
文書管理 |
CF-4214540 |
InitSAMLAuthRequest 関数が Null ポインター例外を断続的に返します。 |
SAML 統合 |
CF-4214518 |
cfreport タグで cfcompile を実行中に、ColdFusion 2021 Docker イメージでエラーが発生します。 |
ColdFusion Docker イメージ |
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-4212696 |
アップデート 3 以降、ColdFusion 2021 AWS イメージでエラーが断続的に発生します。 |
AWS イメージ |
CF-4212581 |
次の CLI コマンドで例外が発生します。 cf-cli>queryExecute("SELECT * FROM artists", {}, {datasource="cfartgallery"} ); |
CLI:REPL |
CF-4212489 |
Azure BLOB ファイルのアップロード時に、content-type がデフォルトで application/octet-stream に設定されます。同じ目的の新しい属性が導入されています。ColdFusion の Azure BLOB ドキュメントを参照してください。 |
Azure Blob Storage |
CF-4212245 |
CFSetup ユーティリティ:セッションキー(cfloginusesessionstorageredis)が設定されている場合、ColdFusion ランタイム設定の書き出し/読み込みに失敗します。 |
CFSetup |
CF-4212182 |
一部の ColdFusion アプリケーションが、ColdFusion 2021 でコンパイルに時間がかかります。ColdFusion 2021 では、パフォーマンスを向上させるために次の最適化が行われます。
|
言語サーバー |
CF-4211229 | cfspreadsheet タグで、HTML および CSV ファイル形式に対する操作を実行するとファイルがロックされます。 | スプレッドシート |
CF-4208163 |
ormSettings で offset と maxRows を同時に指定すると、Hibernate のエラーが発生します。 |
ORM のサポート |
CF-4217842 |
AWS Fargate サーバーレスにデプロイされているコマンドボックスコンテナで ColdFusion サーバーをアクティベートできません。 |
ライセンスとアクティベーション |
CF-4215855 |
ColdFusion サービスを再起動するたびに、ColdFusion が cfc の読み込みに失敗します。エラーメッセージが表示されます。 |
CFC |
CF-4215586 |
Redis セッションで、10 進数のフィールドを持つ保存済みのオブジェクトが失われます。 | Redis セッションストレージ |
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-011-330247.jar
- Linux ベースのプラットフォーム:<cf_root>/jre/bin/java -jar <InstallerReposityUnzippedPath>/bundles/updateinstallers/hotfix-011-330247.jar
ダウンロードした JAR の実行には、ColdFusion にバンドルされている JRE を必ず使用してください。スタンドアローン ColdFusion の場合、これは <cf_root>/jre/bin にあります。
ColdFusion サービスおよび他の設定済み web サーバーを再起動する権限を持つユーザーアカウントからアップデートをインストールします。
アプリケーションの手動更新について詳しくは、このヘルプ記事を参照してください。
コアパッケージを更新すると、ダウンロードされたすべてのパッケージが更新されます。また、任意のパッケージを更新すると、コアパッケージと残りのパッケージも更新されます。ColdFusion(2021 リリース)がアップデート 1 の状態にある場合、任意のインスタンスの Administrator を使用してアップデート 11 をインストールすると、他のすべてのインスタンスのコアも更新されます。
同様に、同じインスタンスから更新プログラムをアンインストールすると、一緒に更新されたインスタンスからもアップデートがアンインストールされます。
このアップデートの適用後、ColdFusion のビルド番号は 2021.0.11.330247
になるはずです。
アップデートをアンインストールするには、以下のいずれかの操作を行います。
- ColdFusion Administrator で、「サーバーアップデート/アップデート/インストール済みアップデート」に移動して「アンインストール」をクリックします。
- コマンドプロンプトからアップデートのアンインストーラーを実行します。例:java -jar {cf_install_home}/{instance_home}/hf_updates/hf-2021-00011-330247/uninstall/uninstaller.jar
上記のアンインストールオプションを使用してもアップデートをアンインストールできない場合、アンインストーラーが破損している可能性があります。ただし、次の操作を実行すれば、手動でアップデートをアンインストールできます。
- {cf_install_home}/{instance_name}/lib/updates からアップデート jar を削除します。
- {cf_install_home}/{instance_name}/hf-updates/{hf-2021-00011-330247}/backup ディレクトリから {cf_install_home}/{instance_name}/ にすべてのフォルダーをコピーします。