[svn-commits] file: tag 1.6.1.9 r227696 - /tags/1.6.1.9/channels/chan_sip.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed Nov 4 13:15:54 CST 2009


Author: file
Date: Wed Nov  4 13:15:50 2009
New Revision: 227696

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=227696
Log:
Fix a security issue where sending a REGISTER with a differing username in the From
URI and Authorization header would reveal whether it was valid or not.

(AST-2009-008)

Modified:
    tags/1.6.1.9/channels/chan_sip.c

Modified: tags/1.6.1.9/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/tags/1.6.1.9/channels/chan_sip.c?view=diff&rev=227696&r1=227695&r2=227696
==============================================================================
--- tags/1.6.1.9/channels/chan_sip.c (original)
+++ tags/1.6.1.9/channels/chan_sip.c Wed Nov  4 13:15:50 2009
@@ -11739,11 +11739,6 @@
 			   Asterisk uses the From: username for authentication. We need the
 			   devices to use the same authentication user name until we support
 			   proper authentication by digest auth name */
-			transmit_response(p, "403 Authentication user name does not match account name", &p->initreq);
-			if (global_authfailureevents)
-				manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Rejected\r\nCause: AUTH_USERNAME_MISMATCH\r\nAddress: %s\r\nPort: %d\r\n", 
-					name, ast_inet_ntoa(sin->sin_addr), ntohs(sin->sin_port));
-			break;
 		case AUTH_NOT_FOUND:
 		case AUTH_PEER_NOT_DYNAMIC:
 		case AUTH_ACL_FAILED:
@@ -11760,8 +11755,8 @@
 				else
 					transmit_response(p, "404 Not found", &p->initreq);
 					if (global_authfailureevents)
-						manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Rejected\r\nCause: URI_NOT_FOUND\r\nAddress: %s\r\nPort: %d\r\n", 
-							name, ast_inet_ntoa(sin->sin_addr), ntohs(sin->sin_port));
+						manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Rejected\r\nCause: %s\r\nAddress: %s\r\nPort: %d\r\n", 
+							      (res == AUTH_USERNAME_MISMATCH) ? "AUTH_USERNAME_MISMATCH" : "URI_NOT_FOUND", name, ast_inet_ntoa(sin->sin_addr), ntohs(sin->sin_port));
 			}
 			break;
 		case AUTH_BAD_TRANSPORT:




More information about the svn-commits mailing list