|
Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com |
[VulnWatch] gtkdiskfree insecure temporary file creation
From: ZATAZ Audits (exploits
zataz.net)
Date: Thu Sep 15 2005 - 02:06:56 CDT
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
#########################################################
gtkdiskfree insecure temporary file creation
Vendor: http://gtkdiskfree.tuxfamily.org/ (no more avaible)
Advisory: http://www.zataz.net/adviso/gtkdiskfree-09052005.txt
Vendor informed: yes
Exploit available: yes
Impact : low
Exploitation : low
#########################################################
The vulnerability is caused due to temporary file being created
insecurely. This can be exploited via symlink attacks to create and
overwrite arbitrary files with the privileges of the user running the
affected script.
##########
Versions:
##########
gtkdiskfree <= 1.9.3
##########
Solution:
##########
To prevent symlink attack use kernel patch such as grsecurity
#########
Timeline:
#########
Discovered : 2005-09-02
Vendor notified : 2005-09-05
Vendor response : no reponse
Vendor fix : no patch
Vendor Sec report (vendor-sec
lst.de) : 2005-09-05
Disclosure : 2005-09-15
#####################
Technical details :
#####################
Vulnerable code :
-----------------
Take a look at : src/mount.h
23 #define TUBE_NAME "/tmp/gtkdiskfree"
Then to : src/mount.c
32 open_cmd_tube (const gchar *cmd, const gchar *mount_point)
33 {
34 gint status;
35 gchar error[MAXLINE], *line;
36 FILE *sh, *tmp;
37
38 setbuf(stdout, error);
39 line = g_strconcat(cmd, " ", mount_point, " &> ", TUBE_NAME,
NULL);
40 sh = popen(line, "r");
41 g_free(line);
42
43 status = pclose(sh);
44
45 if (status == 0) {
46 remove(TUBE_NAME);
47 gui_list_main_update(GTK_TREE_VIEW(list_treeview));
48
49 return;
50 } else {
51 if ((tmp = fopen(TUBE_NAME, "r")) == NULL) {
52
gui_list_main_update(GTK_TREE_VIEW(list_treeview));
53
54 return;
55 }
56 if (fgets(error, MAXLINE-1, tmp) == NULL) {
57 fclose(tmp);
58 remove(TUBE_NAME);
59
gui_list_main_update(GTK_TREE_VIEW(list_treeview));
60
61 return;
62 }
63 fclose(tmp);
64 remove(TUBE_NAME);
65 error_window(error);
66 }
67 gui_list_main_update(GTK_TREE_VIEW(list_treeview));
68
69 return;
70 }
#########
Related :
#########
Bug report : http://bugs.gentoo.org/show_bug.cgi?id=104565
CVE : No CVE
#####################
Credits :
#####################
Eric Romang (eromang
zataz.net - ZATAZ Audit) - Gentoo Security Scout
Thxs to Gentoo Security Team.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]