CI_Security: URL-decode until possible
diff --git a/system/core/Security.php b/system/core/Security.php
index 75c994a..beb7f56 100644
--- a/system/core/Security.php
+++ b/system/core/Security.php
@@ -359,7 +359,11 @@
 		 *
 		 * Note: Use rawurldecode() so it does not remove plus signs
 		 */
-		$str = rawurldecode($str);
+		do
+		{
+			$str = rawurldecode($str);
+		}
+		while (preg_match('/%[0-9a-f]{2,}/i', $str));
 
 		/*
 		 * Convert character entities to ASCII