lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <42CA2DDB.5030606@zataz.net>
Date: Tue Jul  5 12:57:33 2005
From: exploits at zataz.net (ZATAZ Audits)
Subject: ekg insecure temporary file creation and
	arbitrary code execution

#########################################################

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@....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@...az.net - ZATAZ Audit)
Thxs to Gentoo Security Team. (Taviso, jaervosz, solar, tigger, etc.)

Powered by blists - more mailing lists