Vulnwatch mailing list archives
ekg insecure temporary file creation and arbitrary code execution
From: ZATAZ Audits <exploits () zataz net>
Date: Tue, 05 Jul 2005 08:51:07 +0200
######################################################### ekg insecure temporary file creation and arbitrary code execution Vendor: http://dev.null.pl/ekg/ Advisory: http://www.zataz.net/adviso/ekg-06062005.txt Vendor informed: yes Exploit available: no Impact : high Exploitation : high #########################################################The vulnerabilities are caused due to temporary file being created insecurely. This can be exploited via symlink attacks in combination to create and overwrite arbitrary files with the privileges of the user running the affected script and
also arbitrary command possible by spiking the temporary file. ########## Versions: ########## ekg <= 2005-06-05 22:03 ########## Solution: ########## For the symlink attack use kernel patch such as grsecurity ######### Timeline: ######### Discovered : 2005-05-27 Vendor notified : 2005-06-06 Vendor response : no response Vendor fix : no fix Vendor Sec report (vendor-sec () lst de) : 2005-06-27 Disclosure : 2005-07-04 ##################### Technical details : ##################### Vulnerable code : ----------------- In contrib/scripts/linki.py 95 def czyjest (): 96 if os.path.exists('/tmp/rmrmg_ekg_url'): 97 wejsc= open ('/tmp/rmrmg_ekg_url') 98 file = wejsc.readlines() 99 dlug=len(file) 100 wejsc.close() 101 #ekg.printf("generic", "liczno¶æ %d" %(dlug)) 102 return file 103 else: 104 return 0 Then 35 def handle_keypress(meta, key): 36 if key == 269: 37 ekg.printf("generic", "wci¶nieto F5") 38 nurl=czyjest() 39 if nurl == 0: 40 ekg.printf("generic", "nie ma zadnego adresu URL") 41 else: 42 dlug=len(nurl) 43 if dlug == 1:44 ekg.printf("generic", "otwieram %s w nowej zak³adce" %(nurl[0])) 45 os.system("MozillaFirebird -remote 'openURL(%s,new-tab)'" %(nurl[0]))
46 os.system('rm /tmp/rmrmg_ekg_url') 47 else: 48 ekg.printf("generic", "linków mam %d" %(dlug)) 49 wielejest(nurl)50 ekg.printf("generic", "otwieram %s w nowej zak³adce" %(nurl[0])) 51 os.system("MozillaFirebird -remote 'openURL(%s, new-tab)'" %(nurl[0]))
52 elif key == 270: 53 ekg.printf("generic", "wcisniêto F6") 54 nurl=czyjest() 55 if nurl == 0:56 ekg.printf("generic", "nic nie moge skasowaæ - nie mazadnego adresu URL")
57 else: 58 dlug=len(nurl) 59 if dlug == 1:60 ekg.printf("generic", "kasuje adres %s" %(nurl[0]))
61 os.system('rm /tmp/rmrmg_ekg_url') 62 else: 63 ekg.printf("generic", "jest wiele linków") 64 wielejest(nurl)65 ekg.printf("generic", "kasuje pierwszy czyli: %s"%(nurl[0]))
66 elif key == 271: 67 ekg.printf("generic", "wcisniêto F7") 68 nurl=czyjest() 69 if nurl == 0: 70 ekg.printf("generic", "nie ma zadnego adresu URL") 71 else: 72 dlug=len(nurl) 73 if dlug == 1:74 ekg.printf("generic", "otwieram %s w nowym oknie"%(nurl[0]))
75 os.system("MozillaFirebird %s" %(nurl[0])) 76 os.system('rm /tmp/rmrmg_ekg_url') 77 else: 78 ekg.printf("generic", "linków mam %d" %(dlug)) 79 wielejest(nurl)80 ekg.printf("generic", "otwieram %s w nowym oknie"%(nurl[0]))
81 elif key == 272: 82 ekg.printf("generic", "wcisniêto F8") 83 nurl=czyjest()84 ekg.printf("generic", "F5 - otwiera w nowej zak³adce; F7 wnowym oknie, a F6 kasuje, wszystko tyczy siê pierwszej po zycji zlisty")
85 if nurl == 0: 86 ekg.printf("generic", "nie ma zadnego adresu URL") 87 else: 88 dlug=len(nurl) 89 ekg.printf("generic", "linków mam %d oto one:" %(dlug)) 90 for po in nurl: 91 ekg.printf("generic", "%s" %(po)) 92 return 1 ######### Related : ######### Gentoo Bugs report : http://bugs.gentoo.org/show_bug.cgi?id=94172 CVE : CAN-2005-1916 ##################### Credits : ##################### Eric Romang (eromang () zataz net - ZATAZ Audit) Thxs to Gentoo Security Team. (Taviso, jaervosz, solar, tigger, etc.)
Current thread:
- ekg insecure temporary file creation and arbitrary code execution ZATAZ Audits (Jul 05)