This message was generated by the Security Alerts service ( Free Trial 14th of 
August - 14th of September )
http://www.opensips.org/Resources/AlertsMain

*
SVN commit*:
http://opensips.svn.sourceforge.net/viewvc/opensips?view=revision&revision=9157

*Severity*: Critical, Security Risk

*Version*  : 1.7, 1.8, trunk

*Affected modules*  : Core, DNS Blacklist support

*Effect*  : DNS Blacklists not evaluated in certain cases

*Affected scenarios*: When attempting to use DNS blacklists from the OpenSIPS 
main
route, simply using a branch route will automatically drop all enabled 
blacklists. The
dropping is permanent and global for the processing of that message ( for all 
following scripting ),
thus leading to a big security risk, as blacklists are not evaluated, so you 
could route to
forbidden destinations.

*Description:*  The reason for this is that internally, OpenSIPS would reset 
the DNS
blacklists each time a route was run, but this was obviously a bug, since the 
DNS
blacklists set in the main route would not persist across all branches in case
a per-branch route was activated.

*Risks*  : Even though some DNS Blacklists would have been set, OpenSIPS was 
still
vulnerable to DNS injection attacks. Thus, updating is critical since this was a
major vulnerability

*Update*  :
- if you have an SVN checkout,1.7,1.8 and trunk were fixed; so
update to a revision later than 9157 (trunk) or 9158 (1.8 branch) or 9159 (1.7 
branch)
- if you have OpenSIPS from sources, download and apply the patch from
http://opensips.svn.sourceforge.net/viewvc/opensips/branches/1.8/action.c?view=patch&r1=9158&r2=9157&pathrev=9158
or see the attached patch;
- if using tarballs, they were already regenerated (and include the fix)
- If using the official Debian package (apt.opensips.org), they are also
re-generated including the fix.



--
Vlad Paiu
OpenSIPS Developer
http://www.opensips-solutions.com
--- action.c	2012/07/31 15:03:39	9157
+++ action.c	2012/07/31 15:06:29	9158
@@ -167,6 +167,7 @@
 
 int run_top_route(struct action* a, struct sip_msg* msg)
 {
+	static unsigned int bl_last_msg_id = 0;
 	int bk_action_flags;
 	int bk_rec_lev;
 	int ret;
@@ -177,7 +178,11 @@
 	action_flags = 0;
 	rec_lev = 0;
 	init_err_info();
-	reset_bl_markers();
+
+	if (bl_last_msg_id != msg->id) {
+		bl_last_msg_id = msg->id;
+		reset_bl_markers();
+	}
 
 	resetsflag( (unsigned int)-1 );
 


_______________________________________________
Alerts mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/alerts
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to