The following client identifier issues can have security implications:
CFToken
identifier
The next sections discuss these issues.
By default, ColdFusion uses an eight-digit random number in the CFToken
identifier. This CFToken
format provides a unique, secure identifier for users under most circumstances. (In ColdFusion MX, the method for generating this number uses a cryptographic-strength random number generator that is seeded only when the server starts.)
However, in the ColdFusion MX Administrator, you can enable the Settings page to produce a more complex CFToken
identifier. If you enable the Use UUID for cftoken option, ColdFusion creates the CFToken
value by prepending a 16-digit random hexadecimal number to a ColdFusion UUID. The resulting CFToken
identifier looks similar to the following:
3ee6c307a7278c7b-5278BEA6-1030-C351-3E33390F2EAD02B9
ColdFusion uses the same client identifiers for the Client scope and the standard Session scope. Because the CFToken
and CFID
values are used to identify a client over a period of time, they are normally saved as cookies on the user's browser. These cookies persist until the client's browser deletes them, which can be a considerable length of time. As a result, hackers could have more access to these variables than if ColdFusion used different user identifiers for each session.
A hacker who has the user's CFToken
and CFID
cookies could gain access to user data by accessing a web page during the user's session using the stolen CFToken
and CFID
cookies. While this scenario is unlikely, it is theoretically possible.
You can remove this vulnerability by selecting the Use J2EE Session Variables option on the ColdFusion MX Administrator Memory Variables page. The J2EE session management mechanism creates a new session identifier for each session, and does not use either the CFToken
or the CFID
cookie value.