ColdFusion (2021 release) Update 13
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.
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
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.
To install previous updates, see ColdFusion (2021 release) updates.
ColdFusion (2021 release) Update 13 (release date, March 12, 2024) addresses vulnerabilities mentioned in the security bulletin, APSB24-14.
This update includes several security fixes to ensure the safety and security of our systems. These changes address potential vulnerabilities and threats and are part of our ongoing commitment to protecting your data and privacy.
The following sections summarize the changes in the update.
In this document:
Significant changes in the release
SCOPE VARIABLE CHANGES
By default, if ColdFusion finds a variable name without a prefix, it used to check the variable in different scopes in a specific order. The application variable searchimplicitscopes=FALSE was introduced later for performance reason, which meant an unscoped variable wouldn't be searched in the scopes.
Starting with this update, ColdFusion will default to searchimplicitscopes=FALSE and if a variable name is not prefixed with a scope identifier, it can only be resolved by one of the impacted scopes (see below), which can be modified from outside the request.
What are the scopes that are impacted by the change?
- CGI
- URL
- Form
- Cookie
- CFFile
- Client
For example, the code below will fail with the exception, Variable TEST is undefined.
<cfset cookie.test=1> <cfoutput>#test#</cfoutput>
If I encounter the error, UndefinedElementException or Variable {xx} is undefined, what should I do?
Option 1: Correct application code to fetch values from the correct scope.
<cfset cookie.test=1>
<cfoutput>#cookie.test#</cfoutput>
*Option 2: Set searchimplicitscopes value back to TRUE.
This can be done by:
- Adding the newly introduced flag, -Dcoldfusion.searchimplicitscopes=true to the jvm arguments, or
- Setting searchimplicitscopes key to TRUE in Application.cfc or Application.cfm, in which case it will override the jvm flag set at the server level.
*This option is highly discouraged and should be considered only as a temporary workaround, until all application code is fixed.
View Application variables in ColdFusion for more information.
Changes in next major release
The JVM flag -Dcoldfusion.searchimplicitscopes will be removed in the next major release of ColdFusion, hence disallowing searching of an unscoped variable in the implicit scopes. This may require application code changes.
CHANGES IN CFDOCUMENT
By default, ColdFusion will now block all protocols, except HTTP and HTTPS when using <iframe src=" "> in the body of cfdocument.
You can allow other protocols using the -Dcoldfusion.iframe.allowedprotocols JVM argument, as shown below:
-Dcoldfusion.iframe.allowedprotocols=file,ftp
Other changes in this release
LIBRARY UPGRADES
- Tomcat is upgraded to 9.0.85.
- The log4j in cfinstall.jar is updated from version 1.2.17 to 2.20.0 for the zip installers.
- ib6coreutil is updated from 1.2 to 1.3.
FILes removed in this update
This update removes some residual files for AIR, Server Manager, and Server Monitoring from the Administrator.
Default block list
In this update, we've added the extensions jar, class, ashx, and asmx extensions to the default block list of CFFILE upload.
To update the block list,
- Navigate to Admin > Server settings > Blocked file extensions for CFFile uploads.
- Select Restore Default Extensions.
- Submit the changes.
Note: If you’ve updated your block list, clicking Restore Default Extensions will delete it. As a precaution, add jar, class, ashx, and asmx to your updated extension list, and save the changes.
Package updates
We've updated the following packages in this update:
- adminapi
- administrator
- ajax
- db2
- document
- htmltopdf
- mysql
- odbc
- presentation
- report
- saml
- sybase
Changes in CKEditor
The disallowed file types in CKEditor for file uploads have been updated to include .jar, .class, .ashx, and .asmx.
Bugs fixed in this update
Bug ID | Description | Component |
CF-4219940 | After installing the update, ColdFusion is unable to connect to SQL Server. | Database |
CF-4220252 | Unable to import scheduled tasks using a CAR package in Docker. View the updated ColdFusion serial filter documentation for more information. |
Scheduler |
ColdFusion JDK flag requirements
COLDFUSION 2021 (version 2021.0.0.323925) 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.
Prerequisites
- On 64-bit computers, use 64-bit JRE for 64-bit ColdFusion.
- 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
- For ColdFusion running on JEE application servers, stop all application server instances before installing the update.
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 with the latest update.
All installed packages that needs an update get updated.
Restart ColdFusion for the changes to take effect.
Install the update in offline mode manually
- Download the hotfix installer from the link.
- Unzip the repository to a place where all ColdFusion server instances can access it.
- 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-013-330286.jar
- Linux-based platforms: <cf_root>/jre/bin/java -jar <InstallerReposityUnzippedPath>/bundles/updateinstallers/hotfix-013-330286.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 with permission to restart ColdFusion services and other configured webservers.
For further details on manually updating the application, see the help article.
If you are on Java 11.0.20 or higher and want to apply the Hotfix, use the flag java -Djdk.util.zip.disableZip64ExtraFieldValidation=true -jar hotfix.jar.
However, if you are applying the update from the Administrator, you do not require any flag.
Updating the core package updates all the packages that were downloaded. Also, updating any package updates the core and the rest of the packages. If ColdFusion (2021 release) is on Update 1, installing Update 12 via the admin of any instance updates the core for all other instances present.
Similarly, uninstalling the update from the same instance uninstalls the updates from instances that were updated together.
Post installation
After applying this update, the ColdFusion build number should be 2021.0.13.330286.
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-2021-00013-330286/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:
- Delete the update jar from {cf_install_home}/{instance_name}/lib/updates.
- Copy all folders from {cf_install_home}/{instance_name}/hf-updates/{hf-2021-00013-330286}/backup directory to {cf_install_home}/{instance_name}/
Connector configuration
2021 Update | Connector recreation required |
Update 13 | No However, if upgrading from Update 10 or any previous update, you must recreate the connector.
View the following for more information. |
Update 12 | No However, if upgrading from Update 10 or any previous update, you must recreate the connector.
View the following for more information. |
Update 11 | Yes |
Update 10 | No |
Update 9 | No |
Update 8 | No |
Update 7 | No |
Update 6 | No |
Update 5 | No |
Update 4 | No |
Update 3 | No. You need not upgrade the connector if you had already upgraded the connector in Update 2. |
Update 2 | Yes |
Update 1 | Yes |
Document revision history
- 13 March 2024: Added the impacted scopes and related code samples.