fix for script execution vulnerability
authorTim Starling <tstarling@users.mediawiki.org>
Mon, 17 Jan 2005 08:40:08 +0000 (08:40 +0000)
committerTim Starling <tstarling@users.mediawiki.org>
Mon, 17 Jan 2005 08:40:08 +0000 (08:40 +0000)
includes/Setup.php
includes/SpecialPreferences.php

index e31aceb..0b4f01a 100644 (file)
@@ -257,7 +257,6 @@ function setupLangObj(&$langclass) {
                                }
 
                        }";
-
                eval($snip);
        }
 
@@ -281,9 +280,8 @@ if( !$wgUser->mDataLoaded ) {
 
 // wgLanguageCode now specifically means the UI language
 $wgLanguageCode = $wgUser->getOption('language');
-if( empty( $wgLanguageCode ) ) {
-       # Quick hack for upgrades where this will be blank,
-       # and it's not handled right. Set to default.
+# Validate $wgLanguageCode, which will soon be sent to an eval()
+if( empty( $wgLanguageCode ) || !preg_match( '/^[a-z\-]*$/', $wgLanguageCode ) ) {
        $wgLanguageCode = $wgContLanguageCode;
 }
 
index d47ad5c..3666030 100644 (file)
@@ -91,6 +91,11 @@ class PreferencesForm {
                                }
                        }
                }
+
+               # Validate language
+               if ( !preg_match( '/^[a-z\-]*$/', $this->mUserLanguage ) ) {
+                       $this->mUserLanguage = 'nolanguage';
+               }
        }
 
        function execute() {