6837223 2001-08-02 15:57 -0400 /153 rader/ Jesse Noller <jnoller@macromedia.com> Sänt av: joel@lysator.liu.se Importerad: 2001-08-02 22:50 av Brevbäraren Extern mottagare: 'Eric Lackey' <eric@isdn.net> Extern mottagare: 'bugtraq@securityfocus.com' <bugtraq@securityfocus.com> Extern kopiemottagare: 'cf-talk@houseoffusion.com' <cf-talk@houseoffusion.com> Extern kopiemottagare: 'cf-linux@houseoffusion.com' <cf-linux@houseoffusion.com> Mottagare: Bugtraq (import) <18603> Ärende: RE: cold fusion 5.0 cfrethrow exploit ------------------------------------------------------------ From: Jesse Noller <jnoller@macromedia.com> To: 'Eric Lackey' <eric@isdn.net>, "'bugtraq@securityfocus.com'" <bugtraq@securityfocus.com> Cc: "'cf-talk@houseoffusion.com'" <cf-talk@houseoffusion.com>, "'cf-linux@houseoffusion.com'" <cf-linux@houseoffusion.com> Message-ID: <77BB70951145D511BAD800508B9587B2585824@S0001EXC0007> The Macromedia Security Response Team would like to respond to recent emails circulating regarding a possible new vulnerability in ColdFusion Server 5 for Linux related to the CFRETHROW CFML language element. The issue is not a generalized vulnerability that can be exploited with a browser, but rather a bug on a specific platform. Details below: The root cause of the CFRETHROW exception is actually a Linux EGCS 1.1.2 C++ compiler object-code generation bug. This compiler is used to build ColdFusion 4.5 and 5.0, and the bug is related to C++ exception throwing and handling object code generation. This bug causes the internal exception used to support the CFML CFRETHROW tag to exit the application process, aborting the ColdFusion Server. The use of the term "attacker" is misleading in this case, as this person must first be authorized to write ColdFusion code (CFML), write OS files that have execution privilege under the web server root directory, and be able to place it into operation on the target server system. Again, no vulnerability is exposed via a browser. We documented the problem with CFRETHROW on Linux, and spent a great deal of effort to isolate and workaround the issue, testing pre-release Linux compiler releases and beta patches, but unfortunately these were unsuccessful in eliminating the issue. We were faced with the decision of not shipping a Linux product, or shipping with this known flaw, which was beyond in our control to fix. We decided to ship the Linux product and document this flaw in the Knowledge Base Article (http://www.allaire.com/Handlers/index.cfm?ID=17560&Method=Full) referred to in the emails. To re-iterate, the "attack" is not dissimilar in nature to writing an endless loop, which can be accomplished in any language where code is executed on the server, regardless of programming language. The definition of "attacker" in this context is any developer who has contributed web application code to that runs on the server. The examination of the core file is something that anyone who runs a Unix server with the appropriate file access permissions can do. Again, this core file isn't available to an outsider unless the server administrator takes steps to make it so, and it's not available by default. Regarding the "decryption vulnerability", we first published a bulletin on this topic several years back, located here: http://www.allaire.com/handlers/index.cfm?ID=10969. We published the paper because the decoding mechanism was disclosed on the web, and publicly available illegal decoding utilities were floating around the Internet. More detail is contained in the Bulletin link. Our advice is that ColdFusion application developers not give a copy of their source code to untrustworthy persons, whether it is encrypted or not. Thanks Macromedia Security Response Team secure@macromedia.com http://www.allaire.com/security ======================== Jesse Noller jnoller@macromedia.com -----Original Message----- From: Eric Lackey [mailto:eric@isdn.net] Sent: Monday, July 30, 2001 11:20 PM To: 'bugtraq@securityfocus.com' Subject: cold fusion 5.0 cfrethrow exploit Vulnerable: Cold Fusion 5.0 Invulnerable: Versions of Cold Fusion below 5.0 do not seem to have the same problem. OS: Only tried on RedHat Linus 2.4.2-2 #1 Allaire reports a Cold Fusion bug that can be found at this address: http://www.allaire.com/Handlers/index.cfm?ID=17560&Method=Full. The bug happens only on Linux. The text from the bug report is below. The CFRETHROW tag causes a server restart on Linux. You can work around this problem by using a CFTHROW tag: ====================================================== Most of the time using the cfrethrow tag in Cold Fusion 5.0 will cause the server to crash with the message: Error Diagnostic Information An error occurred while attempting to establish a connection to the server. The most likely cause of this problem is that the server is not currently running. Verify that the server is running and restart it if necessary. Unix error number 2 occurred: No such file or directory When this happens, the Cold Fusion server core dumps its memory into a core file in the /$installdir/coldfusion/logs directory. By using the strings command on this file, anyone can see all memory used by Cold Fusion before the server crashed. All encrypted and unencrypted tags that the cf server was using can be seen in clear text in this core dump. This vulnerability can be easily reproduced by using Cold Fusion 5 and two Cold Fusion templates. Create two files, file1.cfm and file2.cfm. Within file1.cfm put the following code. -------------------------- <CFTRY> <CFINCLUDE TEMPLATE="test2.cfm"> <CFCATCH> Call encrypted tag or include template here <CFRETHROW> </CFCATCH> </CFTRY> -------------------------- Within file2.cfm put the following code. -------------------------- <CFTHROW MESSAGE="TEST"> -------------------------- Call any custom tag or template that you want to see in clear text right after the cfcatch tag. Then call test.cfm from a web browser and the server should then crash. It might take a couple of refreshes to make the server crash. This vulnerability will allow anyone to view any Cold Fusion encrypted tags. I am aware of another program identified on Bugtraq that gives anyone the ability to decrypt encrypted tags. I thought some might be interested that there is another exploit. ---------------------------- Eric Lackey ISDN-Net Operations eric@isdn.net (6837223) /Jesse Noller <jnoller@macromedia.com>/(Ombruten)