Ethical Hacking

Learn to find vulnerabilities before the bad guys do! Gain real world hands on hacking experience in our state of the art hacking lab. Course designed and taught by expert instructors with years of penetration testing experience. 12 student maximum in every class. Certification attempt included in every package.
Computer Forensics Training at InfoSec Institute

Gain the in-demand skills of a certified computer examiner, learn to recover trace data left behind by fraud, theft, and cybercrime perpetrators. Discover the source of computer crime and abuse at your organization so that it never happens again. All of our class sizes are guaranteed to be 12 students or less to facilitate one-on-one interaction with one of our expert instructors.




Network Security VulnWatch
[Top] [All Lists]

[Full-disclosure] ekg insecure temporary file creation and arbitrary cod

Subject: [Full-disclosure] ekg insecure temporary file creation and arbitrary code execution
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.)
_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

<Prev in Thread] Current Thread [Next in Thread>