Introduction
Like "Big Two-Hearted River," my last post also has a Part II. I had previously spent countless hours trying to create a UDFMethod object from user-controlled data via the Service Layer endpoints and eventually gave up decided it was just not possible. But I had learned more about how lots of ColdFusion internals work -- including variable casting, object types, and functions. And I kept at it. While I wasn't able to achieve remote code execution, I ultimately did find a few new scope injection vulnerabilities later on. These vulnerabilities highlight a broader and often overlooked risk: assumptions about scope isolation and variable safety can quietly break down at the framework level. When that happens, even well-intentioned application logic can become vulnerable in unexpected ways.
The corresponding patches for these vulnerabilities introduced breaking changes with the security fixes -- specifically, the requirement to explicitly declare all arguments for remote functions from APSB25-52 and the changes around scope precedence and variable name reserved words from APSB25-105. Read on as we explore the technical details of how they work and what the underlying risks are.


