ColdFusion (2023 release) Update 5

ColdFusion (2023 release) Update 5

Security recommendations

For all security updates, Adobe recommends applying the security configuration settings outlined on the ColdFusion Security page and reviewing the respective Lockdown guides.  

Alert:

Check if you need to create and configure connectors after installing the update. View the section Connector Configuration Table for more information.

What's new and changed

Note:

The updates below are cumulative and contain all updates from previous ones. If you are skipping updates, you can apply the latest update, not those you are skipping. Further, you must take note of any changes that are implemented in each of the updates you are skipping.

ColdFusion (2023 release) Update 5 (release date: October 6, 2023) includes bug fixes and enhancements in Administrator, Installer, Migration, Package manager, Database, and other areas. The update contains upgrades to Tomcat (v9.0.78) and other libraries, such as jackson-databind, Netty, etc. Note that this update is cumulative and includes fixes from the previous updates.

With this update, we are upgrading the library jackson-databind from 2.9.8 to 2.15.0. This library version does not support POJO deserialization of java.time.* .The objects return NULL objects, which leads to data loss from aws dynamodb and azure service bus. See the bug fix section for more information.

Note:

In this update, for security reasons, the access to the Administrator to the connector port is blocked.

Note:

If you are on JDK 17.0.8 or higher, use the flag java -Djdk.util.zip.disableZip64ExtraFieldValidation=true -jar hotfix.jar

From Update 6 onwards, you need not use the flag.

In this document:

Package update workflow enhancements

ColdFusion Package Manager asks you to confirm when the core server is upgraded or downgraded. At present, when you update the core server, the server gets updated without any confirmation.

In ColdFusion (2023 release) Update 5, while installing packages, ColdFusion will install the version of the core, and install the package compatible with the core version instead of installing the latest package directly.

View the Install scenarios in the ColdFusion Package Manager documentation for more information.

Library upgrades in this release

Library Previous version New version
Tomcat 9.0.74 9.0.78
jackson-databind/jackson-mapper
2.8.8 2.15.0
netty (web sockets) 3.5.8 3.9.9
netty (cloud services) 4.1.45 4.1.89
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

Server Lockdown Tool enhancement

After installing the Server Lockdown Tool, the cf_scripts folder has been renamed to follow the pattern, cf_scripts_<version>_<6 random alphanumeric characters>.

Download the Server Lockdown tool from ColdFusion downloads.

New attributes in the Exchange tags

We've added new attributes username, password, and server for authentication in the following Exchange tags:

Connector-related enhancements

Wsconfig update now creates a backup of the modified files. For example, the following files are backed up:

  • mod_jk.conf
  • mod_jk.so
  • workers.properties

Changes in CFHTTP method

In previous releases, when you executed a CFHTTP GET request and pass the body with CFHTTPPARAM, the body would get stripped and was not sent with the GET request.

This update ensures that the body is not stripped.

CAR migration of SOLR settings

We've added Solr Settings as an option in the Server Settings tab of ColdFusion Archives. View the documentation for ColdFusion Archives for more information.

Migration

During migration, by default, SOLR settings will not be migrated. You must specify if you want to migrate the settings.

If you want to use the same SOLR server, you must only migrate the SOLR settings, and need not migrate the ColdFusion collections. If you want to migrate both SOLR settings and ColdFusion collections, then settings, for example, buffer size, or languages, will be migrated to the SOLR server along with the collections.

Mandatory IP restrictions

When installing ColdFusion previously, you'd provide the IPs for IP restriction for a Production+Secure profile.

In this update, you can also provide the IPs for restriction for a Production profile.

Moreover, if you don't specify any IP, by default, ColdFusion adds 127.0.0.1 and ::1. View the bug CF-4219181 for more information.

Bugs fixed in this update

Bug ID Description Component
CF-4219159

In this update, we’ve upgraded jackson-databind 2.9.8 to 2.15.0. The new version does not support POJO deserialization of java.time.*. The objects return NULL objects, which leads to data loss from awsdynamodb and azureservicebus.

AWS Service Bus example:
_SBClient = getCloudService(application.SBConstants.serviceBusCred, application.SBConstants.serviceBusConf)
 topicRef = _SBClient.getTopic(topicName)
 topicRuntimeInfo = _SBClient.getTopicRuntimeInfo(topicRef.getPath())
 writedump(topicRuntimeInfo)

Cloud Services: Azure Service Bus
CF-4218099

Even after you enable the option Preserve case for Struct keys for Serialization, ColdFusion ignores local scope in the CFCs. The following code produces {"AMOUNT":2000} as opposed to {"amount":2000}.

local.body = {};
local.body.amount = 2000;
writedump(serializeJSON(local.body));abort;

Language: Serialization
CF-4218035

A Null Pointer Exception error occurs when checking if a directory exists in an AWS S3 bucket. The following code results in an NPE.

<cfset srcdir = "s3://xxxxxxxxxxxx:xxxxxxxxxxxxxxx@s3loc">
<cfif !DirectoryExists("#srcdir#")> 
pass
</cfif>

File Management: S3
CF-4217651

In a JEE configuration, you are unable to import a probe. To fix this, in this update, we've updated the command to:

import probe probe.json jee.port=8080 jee.context=cfusion

Installation/Config: CFSetup
CF-4217635
Coldfusion fails to load the custom Barcode font.
ColdFusion Package: Htmltopdf
CF-4216051
After applying Update 5 to ColdFusion (2021 release), when generating a PDF using the CFHTMLTOPDF tag, the extended ASCII characters are returned with the wrong encoding when the CFHTMLTOPDF tag is within a CFC function. The encoding is correct when the tag appears on a regular CFM page.
Document Management: PDF Generation (CFHTML2PDF)
CF-4215887
When deploying an archive (.car) file to a ColdFusion installation on a particular drive, the archive loads the datasources as expected. Still, it throws a Solr error because the archive searches for the settings in the incorrect drive.
Administrator: Archive
CF-4215789

A CFML request using ormsearch fails without output or throws a ClassNotFound exception. As a workaround:

  1. Uninstall the ormsearch package if it's installed.
  2. Stop the CF server and delete all the Lucene 6.6.1 version jars from <CF_installation_location>/bundles/repo folder.
  3. Delete the Felix cache folder.
  4. Start the server and reinstall the ormsearch package.
ColdFusion Package: ORMSearch
CF-4218184
The update mysql package description to specify that mysql package does not help you to create a MYSQL community datasource.
Database
CF-4218176
We've updated the error message to reflect that a ColdFusion installation no longer includes the standalone MySQL JDBC driver.
Administrator
CF-4217838
A cfquery statement can clear a temp table, perform an operation on the temp table, then clear it again, and return values in the Macromedia driver. The same is not replicated in the MS JDBC driver.
Database
CF-4215843

After upgrading to MySQL 8, if you execute the custom tag cfdbinfo that contains a table with an underscore in the table's name, the execution fails. For example, the script below fails.

<cfdbinfo datasource="#Datasource#" name="DBName" type="columns" table="table_groupOne" />

<cfdump var="#DBName#">

Database
CF-4215129
Sometimes, a SOAP webservice with cfinvoke or cfscript does not work as expected.
Web Services
CF-4211276

After a ColdFusion migration, a few date functions started behaving unexpectedly. For example, the following function throws an error after migration.

DateFormat(queryname.datecolumnname) throws "Error The value class java.time.LocalDateTime cannot be converted to a date."

Database
CF-4205971
Sometimes, Apache behaves unexpectedly when a request takes longer than usual. As a workaround, update heartbeat_interval=0 or replace mod_jk.so using the instructions in this document. Installation/Config: Connector
 
CF-4218758
When you install ColdFusion (2023 release) silently on Windows with no MS VC++ pre-installed, you get the error message, VCRUNTIME140.dll was not found.
Installation/Config
CF-4218706
The orm package stops working after an unknown amount of time. There is an error message that follows- org.hibernate.HibernateException not found by orm.
ColdFusion Package
CF-4218421
When attempting to send email using SendGrid SMPTP server with TLS settings configured, ColdFusion throws an error message.
Mail
CF-4218140
On executing a query, ColdFusion sometimes throws the error, [Macromedia][SQLServer JDBC Driver]This driver is locked for use with embedded applications.
Database
CF-4216526
An error occurs when you try to display the results of a stored procedure in PostgreSQL 13 using the cfprocresult tag. Database
CF-4212837
Executing the Docker image (public.ecr.aws/adobe/coldfusion:latest) with the environment variable (installModules="ajax") does not install the Ajax module.
CF Docker
CF-4212391
CFReport does not work as expected after an update and throws an error. CFReport
CF-4215586
After you store an object that has a field in decimal in a Redis session, the object no longer exists on viewing the session scope. Only CFID, CFToken, sessionid, or urltoken exist in the session.
RedisSessionStorage
CF-4212860

In the createDateTime function, ColdFusion does not validate the following string representations of the date February 29 during a leap year. An error message follows.

"Sat Feb 29 17:00:00 AEDT 2020", "Mon Feb 29 17:00:00 AEDT 2016", or "Wed Feb 29 17:00:00 AEDT 2012"

DateTime functions
CF-4212735

When you run wsconfig -ws apache -dir C:\Apache24\conf -bin C:\Apache24\bin\httpd.exe -v to create an Apache connector, the following error message appears:

Could not determine Apache control script file.

Connector
CF-4218132
The GraphQL package not installed error appears when using a datasource that is defined in Application.cfc.
GraphQL

Known issues in this update

  • After applying the update, if the Package Manager page does not launch in the Administrator for JEE configurations on non-Windows platforms. As a workaround, ensure that grant execute permission to cfpm.sh before applying the update or manually update the administrator package after applying the update.

Prerequisites

  1. On 64-bit computers, use 64-bit JRE for 64-bit ColdFusion.
  2. If the ColdFusion server is behind a proxy, specify the proxy settings for the server to get the update notification and download the updates. Specify proxy settings using the system properties below in the jvm.config for a stand-alone installation, or corresponding script file for JEE installation.
    • http.proxyHost
    • http.proxyPort
    • http.proxyUser
    • http.proxyPassword
  3. For ColdFusion running on JEE application servers, stop all application server instances before installing the update.

ColdFusion JDK flag requirements

COLDFUSION 2023 (version 2023.0.0.330468) and above

For Application Servers

On JEE installations, set the following JVM flag, "-Djdk.serialFilter=!org.mozilla.**;!com.sun.syndication.**;!org.apache.commons.beanutils.**;!org.jgroups.**;!com.sun.rowset.**", in the respective startup file depending on the type of Application Server being used.

For example:   

  • Apache Tomcat Application Server: edit JAVA_OPTS in the ‘Catalina.bat/sh’ file   
  • WebLogic Application Server:  edit JAVA_OPTIONS in the ‘startWeblogic.cmd’ file   
  • WildFly/EAP Application Server:  edit JAVA_OPTS in the ‘standalone.conf’ file   

Set the JVM flags on a JEE installation of ColdFusion, not on a standalone installation.  

Installation

ColdFusion Administrator

In Package Manager > Packages, click Check for Updates in Core Server.

After it detects an update, click Update. The core package gets updated the the latest update.

All installed packages also get updated.

Restart ColdFusion for the changes to take effect.

Note:

After installing Update 5, you must upgrade the connectors.

View the following for more information.

Install the update in offline mode manually

  1. Download the hotfix installer and repository from the link.
  2. Unzip to a place where all ColdFusion server instances can access it.
  3. Update "packagesurl" in cfusion/lib/neo_updates.xml of cfusion and all its child instances to point to <InstallerReposityUnzippedPath>/bundles/bundlesdependency.json present inside the downloaded folder.

If the core server hotfix installation is successful and if there are errors  or issues with packages, packages can be installed/updated from the package manager client(cfusion\bin\cfpm.bat|cfpm.sh).

You must have privileges to start or stop ColdFusion service and full access to the ColdFusion root directory.

  • Windows: <cf_root>\jre\bin\java.exe -jar <InstallerReposityUnzippedPath>\bundles\updateinstallers\hotfix-005-330608.jar
  • Linux-based platforms: <cf_root>/jre/bin/java -jar  <InstallerReposityUnzippedPath>/bundles/updateinstallers/hotfix-005-330608.jar

Ensure that the JRE bundled with ColdFusion is used for executing the downloaded JAR. For standalone ColdFusion, this must be at, <cf_root>/jre/bin.

Install the update from a user account that has permissions to restart ColdFusion services and other configured webservers .

For further details on manually updating the application, see the help article.

Post installation

Note:

After applying this update, the ColdFusion build number should be 2023,0,05,330608.

Uninstallation

To uninstall the update, perform one of the following:

  • In ColdFusion Administrator, click Uninstall in Server Update Updates Installed Updates.
  • Run the uninstaller for the update from the command prompt. For example, java -jar {cf_install_home}/{instance_home}/hf_updates/hf-2023-00005-330608/uninstall /uninstaller.jar

If you can't uninstall the update using the above-mentioned uninstall options, the uninstaller could be corrupted. However, you can manually uninstall the update by doing the following:

  1. Delete the update jar from {cf_install_home}/{instance_name}/lib/updates.
  2. Copy all folders from {cf_install_home}/{instance_name}/hf-updates/{hf-2023-00005-330608}/backup directory to {cf_install_home}/{instance_name}/

Connector configuration

2023 Update Connector recreation required
Update 5

Yes

View the following for more information.

Update 4 No
Update 3 No
Update 2 No
Update 1 No

Package updates

Update Package updated
Update 5 Yes
Update 4 No
Update 3 No
Update 2 No
Update 1 No

Get help faster and easier

New user?