This is the mail archive of the cluster-cvs@sourceware.org mailing list for the cluster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

cluster: RHEL5 - rgmanager: randomize ASEHAagent temp files


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=f47209ebbb923051c4f947f7e933f9e7bf48ff56
Commit:        f47209ebbb923051c4f947f7e933f9e7bf48ff56
Parent:        2e52f12faf68f6d6f56f9e41b9d4c4cfe040b080
Author:        Fabio M. Di Nitto <fdinitto@redhat.com>
AuthorDate:    Wed Oct 22 09:40:08 2008 +0200
Committer:     Lon Hohberger <lhh@redhat.com>
CommitterDate: Thu May 21 10:27:58 2009 -0400

rgmanager: randomize ASEHAagent temp files

by using a static path to /tmp, the operation can be used to trigger
a local DoS by a normal user.

Mitigate the issue by randomizing the temp files with pid.

Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
---
 rgmanager/src/resources/ASEHAagent.sh |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/rgmanager/src/resources/ASEHAagent.sh b/rgmanager/src/resources/ASEHAagent.sh
index 4f709e9..35f3fa1 100755
--- a/rgmanager/src/resources/ASEHAagent.sh
+++ b/rgmanager/src/resources/ASEHAagent.sh
@@ -781,8 +781,8 @@ deep_probe()
 	ocf_log debug "ASEHAagent: Start 'deep_probe'."	
 
 	# Declare two temporary files which will be used in this probe.
-	tmpfile1="/tmp/ASEHAagent.1"
-	tmpfile2="/tmp/ASEHAagent.2"
+	tmpfile1="/tmp/ASEHAagent.1.$$"
+	tmpfile2="/tmp/ASEHAagent.2.$$"
 	
 	# Get the login_string by analyzing the login_file.
 	get_login_string
@@ -794,6 +794,7 @@ deep_probe()
 	fi
 
 	rm -f $tmpfile1
+	rm -f $tmpfile2
 
 	# The login file is correct. We have gotten the login account and password from it.
 	# Run isql command in background.
@@ -842,11 +843,17 @@ EOF
 		# Read the process id of isql process from tmpfile2
 		pid=`cat $tmpfile2 | awk '{print $1}'`
 
+		rm -f $tmpfile1
+		rm -f $tmpfile2
+
 		# Kill the isql process directly.
 		kill -9 $pid
 		return 1
 	fi
 
+	rm -f $tmpfile1
+	rm -f $tmpfile2
+
 	ocf_log debug "ASEHAagent: End 'deep_probe'."
 
 	return 0


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]