File: 1003_RequestHeader-no-underscores-apache24.patch

package info (click to toggle)
gosa 2.7.4%2Breloaded3-16
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 38,716 kB
  • sloc: php: 87,789; perl: 14,364; xml: 4,987; javascript: 4,127; sh: 887; pascal: 306; sql: 263; python: 162; makefile: 76
file content (45 lines) | stat: -rw-r--r-- 2,204 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Description: Don't use underscores in request header variables
Andreas B. Mundt <andi.mundt@web.de>
 Since Apache2.4: Translation of headers to environment variables is more
 strict than before to mitigate some possible cross-site-scripting attacks
 via header injection. Headers containing invalid characters (including
 underscores) are now silently dropped.

Index: gosa-core/bin/gosa-encrypt-passwords
===================================================================
--- a/gosa-core/bin/gosa-encrypt-passwords
+++ b/gosa-core/bin/gosa-encrypt-passwords
@@ -51,7 +51,7 @@ if (file_exists("/etc/gosa/gosa.secrets"
 } else {
   echo "* creating /etc/gosa/gosa.secrets\n";
   $fp = fopen("/etc/gosa/gosa.secrets", 'w') or die("Cannot open /etc/gosa/gosa.secrets for writing - aborted");
-  fwrite($fp, "RequestHeader set GOSA_KEY $master_key\n");
+  fwrite($fp, "RequestHeader set GOSAKEY $master_key\n");
   fclose($fp);
   chmod ("/etc/gosa/gosa.secrets", 0600);
   chown ("/etc/gosa/gosa.secrets", "root");
Index: gosa-core/include/class_config.inc
===================================================================
--- a/gosa-core/include/class_config.inc
+++ b/gosa-core/include/class_config.inc
@@ -301,14 +301,14 @@ class config  {
 
     function get_credentials($creds)
     {
-        if (isset($_SERVER['HTTP_GOSA_KEY'])){
-            if (!session::global_is_set('HTTP_GOSA_KEY_CACHE')){
-                session::global_set('HTTP_GOSA_KEY_CACHE',array());
+        if (isset($_SERVER['HTTP_GOSAKEY'])){
+            if (!session::global_is_set('HTTP_GOSAKEY_CACHE')){
+                session::global_set('HTTP_GOSAKEY_CACHE',array());
             }
-            $cache = session::global_get('HTTP_GOSA_KEY_CACHE');
+            $cache = session::global_get('HTTP_GOSAKEY_CACHE');
             if(!isset($cache[$creds])){
-                $cache[$creds] = cred_decrypt($creds, $_SERVER['HTTP_GOSA_KEY']);
-                session::global_set('HTTP_GOSA_KEY_CACHE',$cache);
+                $cache[$creds] = cred_decrypt($creds, $_SERVER['HTTP_GOSAKEY']);
+                session::global_set('HTTP_GOSAKEY_CACHE',$cache);
             }
             return ($cache[$creds]);
         }