Hello community,

here is the log from the commit of package FastCGI for openSUSE:11.3
checked in at Thu Dec 22 10:25:36 CET 2011.



--------
--- old-versions/11.3/all/FastCGI/FastCGI.changes       2009-12-20 
18:13:54.000000000 +0100
+++ 11.3/FastCGI/FastCGI.changes        2011-12-12 12:23:28.000000000 +0100
@@ -1,0 +2,7 @@
+Mon Dec 12 11:23:16 UTC 2011 - [email protected]
+
+- added FastCGI-fix_deprecated_api.patch: (bnc#735882)
+  Fixes an issue where CGI.pm received CGI variables from previous
+  requests. CVE-2011-2766
+
+-------------------------------------------------------------------

Package does not exist at destination yet. Using Fallback 
old-versions/11.3/all/FastCGI
Destination is old-versions/11.3/UPDATES/all/FastCGI
calling whatdependson for 11.3-i586


New:
----
  FastCGI-fix_deprecated_api.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ FastCGI.spec ++++++
--- /var/tmp/diff_new_pack.6hRPDt/_old  2011-12-22 10:24:27.000000000 +0100
+++ /var/tmp/diff_new_pack.6hRPDt/_new  2011-12-22 10:24:27.000000000 +0100
@@ -1,7 +1,7 @@
 #
-# spec file for package FastCGI (Version 2.4.0)
+# spec file for package FastCGI
 #
-# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
 
 Name:           FastCGI
 Version:        2.4.0
-Release:        139
+Release:        144.<RELEASE2>
 #
 Group:          Development/Languages/C and C++
 License:        Open Market Permissive License
@@ -36,6 +36,7 @@
 Patch2:         FastCGI-supervise_cgi-fcgi.patch
 Patch3:         fastcgi-2.4.0_missing_call_to_fclose.patch
 Patch4:         FastCGI-gcc44.patch
+Patch5:         FastCGI-fix_deprecated_api.patch
 #
 Summary:        A Scalable, Open Extension to CGI
 
@@ -80,6 +81,7 @@
 %patch2
 %patch3
 %patch4
+%patch5
 touch NEWS AUTHORS ChangeLog COPYING
 find doc/{fastcgi-prog-guide,fastcgi-whitepaper} -type f -print0 | xargs -r0 
chmod 0644
 

++++++ FastCGI-fix_deprecated_api.patch ++++++
From: Florian Ragwitz <[email protected]>
Date: Sat, 24 Sep 2011 07:54:33 +0000 (+0200)
Subject: Stop leaking information across requests
X-Git-Url: 
http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2Ffcgi2.git;a=commitdiff_plain;h=297693dc8362d25bb25e473899c72508a0f71d2e

Stop leaking information across requests

%hash is false if the hash hasn't been assigned to, *or* if the hash is simply
empty. This causes the environment from the *second* request (that is, the
environment produced by the first request) to be saved as default if the first
request had empty environment. This way, request after the first can get access
to credentials set up by the first request.

Instead of fixing this, I'd much rather remove this old and buggy
interface. However, 10 years of deprecation don't seem to have been enough for
CGI::Fast to switch to the new and properly supported interface. :-(

This is CVE-2011-2766.
---

Index: perl/FCGI.PL
===================================================================
--- perl/FCGI.PL.orig   2002-12-15 21:02:48.000000000 +0100
+++ perl/FCGI.PL        2011-12-12 11:24:08.885998082 +0100
@@ -291,14 +291,14 @@ sub Request(;***$*$) {
 
 sub accept() {
     warn "accept called as a method; you probably wanted to call Accept" if @_;
-    if (defined %FCGI::ENV) {
-       %ENV = %FCGI::ENV;
+    if ( defined($FCGI::ENV) ) {
+        %ENV = %$FCGI::ENV;
     } else {
-       %FCGI::ENV = %ENV;
+        $FCGI::ENV = {%ENV};
     }
     my $rc = Accept($global_request);
-    for (keys %FCGI::ENV) {
-       $ENV{$_} = $FCGI::ENV{$_} unless exists $ENV{$_};
+    for (keys %$FCGI::ENV) {
+        $ENV{$_} = $FCGI::ENV->{$_} unless exists $ENV{$_};
     }
 
     # not SFIO
@@ -310,7 +310,7 @@ sub accept() {
 
 sub finish() {
     warn "finish called as a method; you probably wanted to call Finish" if @_;
-    %ENV = %FCGI::ENV if (defined %FCGI::ENV);
+    %ENV = %$FCGI::ENV if defined($FCGI::ENV);
 
     # not SFIO
     if (tied (*STDIN)) {
continue with "q"...



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to