Whatever message this page gives is out now! Go check it out!
| JVM flag | Description | Default value |
|---|---|---|
-Dcoldfusion.websocket.requireAuthForInvoke | Specifies whether authentication is required when invoking ColdFusion components through WebSocket connections. When enabled, unauthenticated WebSocket clients cannot invoke component methods. The per-application setting this.wsRequireAuthForInvoke in Application.cfc also controls this behavior. | true |
-Dcoldfusion.security.ssrf.disableProtection | Specifies whether ColdFusion's Server-Side Request Forgery (SSRF) protection is disabled. By default, the protection is on: ColdFusion applies the outbound network security policy to server-initiated HTTP and HTTPS connections and blocks connections to private networks, link-local addresses, and cloud metadata services unless the destination is in an allowList. Set this flag to true to disable SSRF protection. Adobe doesn't recommend disabling it. See Outbound network security policy. | false |
-Dcoldfusion.saferegex.maxpatternlen | Specifies the maximum allowed length of a regular expression pattern processed by the SafeRegex implementation. | 1000 |
-Dcoldfusion.saferegex.maxsubjectlen | Specifies the maximum length of the input string that can be processed by the SafeRegex implementation. | 100000 |
-Dcoldfusion.saferegex.matchtimeoutms | Specifies, in milliseconds, the maximum amount of time allowed for a SafeRegex match operation. | 250 |
-Dcoldfusion.saferegex.stringfunc.patterncachesize | Specifies the maximum number of compiled regular expression patterns cached for ColdFusion string functions. | 2000 |
-Dcoldfusion.xml.wstxMaxEntityCount | Specifies the maximum number of XML entities that the Woodstox XML parser can process while parsing an XML document. | 100000 |
-Dcoldfusion.xml.wstxMaxEntityDepth | Specifies the maximum nesting depth of XML entities that the Woodstox XML parser can process. | 500 |
-Dcoldfusion.cppcfx.disableLibraryPathValidation | Specifies whether library path validation for C++ CFX tags is disabled. Set this flag to true to disable library path validation. | false |
-Dcoldfusion.rds.security.disableFileProtection | Specifies whether file protection for ColdFusion Remote Development Services (RDS) is disabled. By default, RDS file protection is on and restricts the paths that RDS file operations can access. Set this flag to true only if you need to remove the path restriction on RDS file access. Adobe doesn't recommend this. | false |
| Feature | Affects | Behavior after the update |
|---|---|---|
| Report template restrictions | cfreport | ColdFusion accepts only .cfr templates inside the calling template's directory tree or an allowed path. |
| Administrator update endpoints | ColdFusion Administrator, Package Manager | ColdFusion matches the SAML endpoints exactly and requires the update-management role for package install and update. |
| ObjectLoad in sandboxes | ObjectLoad() | A Java proxy rebuilt by ObjectLoad() needs the same permission as createObject("java"). |
| Sandbox file permission checks | cfpdf (processddx), cfimap, cfpop, GCP cloud services | ColdFusion checks the caller's sandbox permissions before it reads or writes files. |
| cfdocument local sources | cfdocument, cfdocumentsection | ColdFusion checks local sources against the sandbox and applies the outbound network security policy to http and https sources. |
| Schema validation | serializeProtoBuf() | ColdFusion rejects unsafe schema names and paths. |
| Parser registration | DocumentService() | Custom parsers are registered per application. |
| Code generation from WSDL and GraphQL | Web service consumption, GraphQL model generation | ColdFusion rejects or neutralizes unsafe characters in schema text. |
| ODBC Socket datasources | Administrator datasource settings | ColdFusion validates and quotes datasource values. |
| Multipart upload size | Form and REST requests | A request can lower the post-size limit but can't raise it. |
| Special form fields | Form scope | Special fields can no longer overwrite an existing form field. |
| WebSocket invoke authentication | WebSocket channels, CFC invoke | ColdFusion denies component invocation from unauthenticated WebSocket connections unless the application opts out. |
cppcfxlibrarypaths setting in cf_root/lib/pathfilter.json. Separate multiple paths with semicolons. Each path must be an absolute path or a glob pattern.{
"cppcfxlibrarypaths": "/opt/coldfusion2025/cfx/lib/*;/opt/myapp/native/mycfx.so"
}-Dcoldfusion.cppcfx.disableLibraryPathValidation=truethis.security.mcp.commandWhitelist setting in Application.cfc with the mcp.commandWhitelist setting in cfusion/lib/security-settings.json to build the effective allowlist. ColdFusion now ignores the commandWhitelist setting in the transport configuration.node, or an absolute path. A bare-name entry matches only a command that is also that bare name. It never matches a path such as /tmp/evil/node. Adobe recommends absolute paths, but they aren't required.PATH, LD_PRELOAD, DYLD_*, NODE_OPTIONS, PYTHON*, and CLASSPATH. If you set one of these variables with env(...) or addEnvVar, ColdFusion throws an exception. ColdFusion doesn't silently remove the variable from the child process.component {
this.name = "myapp";
this.security.mcp.commandWhitelist = [
"/usr/bin/node",
"/usr/bin/python3"
];
}{
"mcp": {
"commandWhitelist": [
"/usr/bin/node",
"/usr/bin/python3"
]
}
}client = new MCPClient({
transport: "stdio",
command: "/usr/bin/node",
args: ["/opt/mcp/server.js"]
});cfdocument, cfpresentation, cfpresentationslide, cffeed, cfimage and ImageRead, cfschedule, cfexchange, GraphQL clients, AI RAG loaders, MCP resources and MCP over HTTP, SharePoint WSDL, XML-RPC and SOAP endpoints, WSDL requests, and embedded resources such as images loaded by document and presentation features.allowList in Application.cfc:component {
this.name = "myapp";
this.security.outboundNetwork = {
allowList: ["https://api.internal.example.com"]
};
}outboundNetwork section in cfusion/lib/security-settings.json. Use the key outboundNetwork with allowList and denyList. Unrecognized keys cause the whole setting to fall back to defaults.{
"outboundNetwork": {
"defaultAction": "allow",
"allowList": ["https://api.internal.example.com"],
"denyList": [],
"blockPrivateNetworks": true,
"blockLinkLocal": true,
"blockMetadataServices": true
}
}allowList and denyList, a defaultAction of "allow", and enables the private-network, link-local, and metadata-service blocks.scheme://host[:port][/path]https://api.internal.example.com
https://api.internal.example.com:8443
https://api.internal.example.com/service/*, matches any path for that destination.https://10.0.0.0/24, match literal IP addresses only. ColdFusion doesn't match hostnames against a CIDR range.denyListallowListdefaultActiondenyList entry always blocks the connection. A matching allowList entry overrides the metadata-service, private-network, and link-local restrictions. Therefore, adding an internal destination to the allow list is the supported way to permit an application to connect to that destination. If neither list matches and none of the network restrictions blocks the destination, ColdFusion applies defaultAction.allowList entries are combined.denyList entries are combined.defaultAction to "deny", the effective default action is deny.allowList, because the application and server allow lists are combined."allow" or "deny" for defaultAction. ColdFusion treats an unrecognized value as deny and logs the invalid configuration. If an invalid value is specified in Application.cfc, outbound requests from that application raise an exception.This URL is not permitted by the outbound network security policy. To allow this connection, add it to outboundNetwork.allowList in security-settings.json or to this.security.outboundNetwork.allowList in Application.cfc.allowList.-Dcoldfusion.security.ssrf.disableProtection=truecffeed to download enclosures, ColdFusion now accepts only HTTP and HTTPS URLs and blocks other URL schemes, such as file://. ColdFusion also validates enclosure file names against the extensions configured in the application's blockedExtForFileUpload setting and applies the outbound network security policy, including validation at every redirect.ignoreEnclosureError, ColdFusion either skips the blocked enclosure or raises an error.blockedExtForFileUpload is:AS,ASP,ASPX,BIN,CFC,CFM,CFML,CFR,CFSWF,DMG,EXE,HBXML,JSP,JSPX,JWS,MXML,PHP,SWC,SWS,CLASS,JAR,ASMX,ASHXSH and BAT:component {
this.name = "myapp";
this.blockedExtForFileUpload =
"AS,ASP,ASPX,BIN,CFC,CFM,CFML,CFR,CFSWF,DMG,EXE,HBXML,JSP,JSPX,JWS,MXML,PHP,SWC,SWS,CLASS,JAR,ASMX,ASHX,SH,BAT";
}blockedExtForFileUpload setting also supports the following special values:* blocks all files.:no-extension blocks files that don't have an extension.allowList. If the policy blocks an enclosure at either the original URL or a redirect, ColdFusion raises the same generic outbound network security policy error.cffeed(
action="read",
source="https://news.example.com/rss.xml",
properties="meta",
query="entries",
enclosureDir=expandPath("./downloads")
);blockedExtForFileUpload setting, the ignoreEnclosureError setting, and the outbound network security policy. If the enclosure URL or one of its redirects points to an internal host, make sure that host is included in the allowList.accessors="true" in a component, ColdFusion generates get and set methods for each property. These synthesized accessors are public by default. Update 14 now applies remoting access checks to synthesized accessors in the same way that it checks explicitly declared methods. As a result, remote clients can no longer invoke generated accessors that aren't eligible for remote access.restPath, produces, or httpMethod metadata bypass this remoting access check and continue to work as before.ssn property:component accessors="true" {
property name="ssn" type="string";
property name="displayName" type="string";
remote string function getPublicName() {
return variables.displayName;
}
}accessors="true" and explicitly expose each remote operation that your application requires.template attribute of cfreport before it loads the template. A template is accepted only if both of the following are true:.cfr extension.cfreport, or inside a path you add to the reporttemplatepath setting..cfr files. A direct request for a .cfr file now works only if the file's path is in the reporttemplatepath allowlist.{
"reporttemplatepath": "/opt/myapp/reports/*"
}.cfr extension, and that it is in the same directory tree as the calling page or in the allowlist.installAllBundles and updateAllBundles, require the coldfusion.manageupdates role. Administrator users without this role can no longer start them.ObjectLoad() reconstructs now requires the same permission as createObject("java", ...). If the sandbox denies createObject("java"), ColdFusion also denies the reconstructed proxy. The restriction on internal ColdFusion Java classes also applies.ObjectLoad(), session data and cache data are not affected.cfpdf action="processddx"attachmentPath for cfimap and cfpop, including file:// pathscredentialJSONFilePath for GCP Storage, Firestore and Pub/Subcfdocument and cfdocumentsection check file: and jar:file: sources and local paths against the sandbox's file permissions.src attribute is denied, ColdFusion raises a security error.src attribute against the outbound network policy. Sub-resources that the rendered HTML references are not covered by this check. See the known issue in the Update 14 tech note. No new JVM flag is added for this change.serializeProtoBuf() now rejects schema values that:@ or -protoPathDocumentService() now apply only to the application that registered them. ColdFusion identifies the application by the directory of the governing Application.cfc, not by this.name. Register the parser in each application that needs it.*/. This includes imported documents. The request fails with an error that names the element. Values of xsd:pattern are exempt for double quotes and backslashes. Text inside documentation elements is sanitized instead of rejected: ColdFusion replaces */ with */ and a backslash with \.description and deprecationReason fields..inp file with a SHA-256 hash instead of the datasource nameMAX_FILE_SIZE in the query string to change the multipart size limit. The client can now only lower the limit. ColdFusion ignores values above the Maximum size of post data setting, uses the server limit instead, and logs a warning. Zero, negative and invalid values also use the server limit. If an application used MAX_FILE_SIZE to allow larger uploads for a specific request, raise the server setting instead.__CFTEXT__, __CFSLIDER__ or __CFGRID__, and PDF form field names that ColdFusion translates, can no longer overwrite an existing form field. If the target field already exists, ColdFusion throws CorruptFieldException and returns HTTP 500. Fields that don't collide with an existing field behave as before.true.component {
this.name = "myapp";
this.wsRequireAuthForInvoke = false;
}-Dcoldfusion.websocket.requireAuthForInvoke=false. The default is true. Adobe doesn't recommend this option.iframe text.fieldNames column counts above the configured maximum before allocating metadata arrays.cfdocument retrieves. However, URLs for sub-resources referenced by the rendered HTML aren't currently subject to the same outbound network security checks.cfdocument references an image, stylesheet, CSS import, background image, iframe, or object, the document renderer can make server-side requests to those resources without applying the restrictions that block private networks, link-local addresses, and cloud metadata services.<img><link rel="stylesheet">@importbackground-image: url()<iframe><object>@font-face and <svg><image> didn't initiate equivalent requests in the document rendering engine.cfdocument when that HTML can contain external resource URLs. | 2025 Update | Packages updated |
| Update 14 | Yes
|
| Update 13 | Yes
|
| Update 12 | Yes
|
| Update 11 | Yes
|
| Update 10 | Yes
|
| Update 9 | Yes
|
| Update 8 | Yes
|
| Update 7 | Yes
|
| Update 6 | Yes
|
| Update 5 | Yes
|
| Update 4 | Yes
|
| Update 3 | The following packages are updated:
|
| Update 2 | The following packages are updated:
|
| Update 1 | The following packages are updated:
|