From bfc9be60b7b24ffb7c13a95f94600e8bf3200c67 Mon Sep 17 00:00:00 2001 From: Tim Landscheidt Date: Fri, 21 Sep 2012 22:48:46 +0000 Subject: [PATCH] Disallow top level domains in Cookie::validateCookieDomain(). This disallows addresses that contain no dots or just a leading one. Change-Id: I4d62ab3618dddf0d5fafb49c31523137ac33cad2 --- includes/Cookie.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/includes/Cookie.php b/includes/Cookie.php index ecf4667d15..d4c342ba48 100644 --- a/includes/Cookie.php +++ b/includes/Cookie.php @@ -90,13 +90,15 @@ class Cookie { * @return Boolean */ public static function validateCookieDomain( $domain, $originDomain = null ) { - // Don't allow a trailing dot - if ( substr( $domain, -1 ) == '.' ) { + $dc = explode( ".", $domain ); + + // Don't allow a trailing dot or addresses without a or just a leading dot + if ( substr( $domain, -1 ) == '.' || + count( $dc ) <= 1 || + count( $dc ) == 2 && $dc[0] === '' ) { return false; } - $dc = explode( ".", $domain ); - // Only allow full, valid IP addresses if ( preg_match( '/^[0-9.]+$/', $domain ) ) { if ( count( $dc ) != 4 ) { -- 2.20.1