[asterisk-commits] mmichelson: branch 1.6.0 r108582 - in /branches/1.6.0: ./ main/manager.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Mar 13 16:31:45 CDT 2008


Author: mmichelson
Date: Thu Mar 13 16:31:44 2008
New Revision: 108582

URL: http://svn.digium.com/view/asterisk?view=rev&rev=108582
Log:
Merged revisions 108529 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

........
r108529 | mmichelson | 2008-03-13 15:59:00 -0500 (Thu, 13 Mar 2008) | 11 lines

Fixing a potential buffer overflow in the manager command ModuleCheck.

Though this overflow is exploitable remotely, we are NOT issuing a security
advisory for this since in order to exploit the overflow, the attacker would
have to establish an authenticated manager session AND have the system privilege.
By gaining this privilege, the attacker already has more powerful weapons at his
disposal than overflowing a buffer with a malformed manager header, so the vulnerability
in this case really lies with the authentication method that allowed the attacker to 
gain the system privilege in the first place.


........

Modified:
    branches/1.6.0/   (props changed)
    branches/1.6.0/main/manager.c

Propchange: branches/1.6.0/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.

Modified: branches/1.6.0/main/manager.c
URL: http://svn.digium.com/view/asterisk/branches/1.6.0/main/manager.c?view=diff&rev=108582&r1=108581&r2=108582
==============================================================================
--- branches/1.6.0/main/manager.c (original)
+++ branches/1.6.0/main/manager.c Thu Mar 13 16:31:44 2008
@@ -2565,14 +2565,14 @@
 	} else {
 		cut = filename + strlen(filename);
 	}
-	sprintf(cut, ".so");
+	snprintf(cut, sizeof(filename) - cut - 1, ".so");
 	ast_log(LOG_DEBUG, "**** ModuleCheck .so file %s\n", filename);
 	res = ast_module_check(filename);
 	if (!res) {
 		astman_send_error(s, m, "Module not loaded");
 		return 0;
 	}
-	sprintf(cut, ".c");
+	snprintf(cut, sizeof(filename) - cut - 1, ".c");
 	ast_log(LOG_DEBUG, "**** ModuleCheck .c file %s\n", filename);
 	version = ast_file_version_find(filename);
 




More information about the asterisk-commits mailing list