Pete Freitag Pete Freitag

Fixinator 6.1.0 - Detecting Undefined Remote Arguments

Published on May 29, 2025
By Pete Freitag
coldfusion

Today, I released Fixinator version 6.1.0 which includes several enhancements to the CFML code security scanning to provide more accurate results. This release also updates the Adobe ColdFusion compatibility scanner to account for the breaking change in the latest ColdFusion security update (ColdFusion 2025 Update 2, ColdFusion 2023 Update 14, ColdFusion 2021 Update 20).

Adobe Compatibility: Undefined arguments in remote functions

Fixinator now detects the use of use of undefined arguments in a remote function. Here's an example of a function that will trigger this error:

component {

    remote string function example(x=0) {
        if (structKeyExists(arguments, "y")) {
            return arguments.y;
        }
        return arguments.x;
    }

}

On the latest versions of ColdFusion 2021, 2023 and 2025 you will get an error if you pass the argument y (or any argument name besides x) to the remote function. The error you might get looks like this:

coldfusion.runtime.UDFMethod$IllegalArgumentException: Function example does not support y as an argument in c:\inetpub\wwwroot\example.cfc at coldfusion.runtime.UDFMethod.validateArguments

It is worth pointing out that this error will occur on the remote function even if it is not accessed as a remote function. So you can fix this issue by making the function public instead of remote if you are not calling it as a web service or as /example.cfc?method=example&y=1.

So if you want to scan your source code for this type of issue, you can run a ColdFusion 2025 compatibility scan like this:

fixinator path=c:\mycode\ goals=compatibility engines=adobe@2025

Fixinator will tag the above function with a message like this:

As of ColdFusion 2025 update 2, 2023 update 14, and 2021 update 20 you can no longer use undefined arguments in a remote function. This can be overridden by system properties, but is not recommended for security purposes.

The system property that controls this feature is named coldfusion.runtime.remotemethod.matchArguments, and it defaults to true. You can disable the feature by setting the java system property:

-Dcoldfusion.runtime.remotemethod.matchArguments=false

The above would be added in your jvm.config or in the ColdFusion administrator (requires restarting ColdFusion).

I've updated my list of ColdFusion 2025 breaking changes to include this issue as well.

Other improvements

A few other minor improvements include support for --json which returns your fixinator results as json, and --forceLocal which is used for the enterprise version to ensure that the scan is conducted locally.

Go and grab a trial of Fixinator, and scan your ColdFusion code!



fixinator coldfusion compatibility security

Fixinator 6.1.0 - Detecting Undefined Remote Arguments was first published on May 29, 2025.

If you like reading about fixinator, coldfusion, compatibility, or security then you might also like:

FuseGuard Web App Firewall for ColdFusion

The FuseGuard Web Application Firewall for ColdFusion & CFML is a high performance, customizable engine that blocks various attacks against your ColdFusion applications.

CFBreak
The weekly newsletter for the CFML Community


Comments

That's such great news, Pete. Thanks for the efforts and the news.

Can you clarify if you're also able to detect the less obvious aspect of this update, where the mere existence of any url or form vars (defined anywhere in the flow of execution of the call to such a remote method) will ALSO cause those vars to be passed in by cf, implicitly--which thus fails now if they are not defined as args?

I suspect this is harder for you to detect, as it's more a runtime impact that's hard to find via static analysis. But people who hit it will wonder.
by Charlie Arehart on 05/30/2025 at 1:29:59 AM UTC
Thanks Charlie - yeah it is quite a bit harder to reliably detect that scenario, but I will think about that and see if I can come up with a way.
by Pete Freitag on 05/30/2025 at 1:38:43 PM UTC

Post a Comment