Hello community,

here is the log from the commit of package pam for openSUSE:11.3
checked in at Tue Oct 25 16:55:03 CEST 2011.

ignoring line "This announcement marks the end of the security and maintenance 
patch" in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is 
header
ignoring line "overlap period for SUSE Linux Enterprise Server 10 Service Pack 
3." in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is header
ignoring line "Regular maintenance and support for SUSE Linux Enterprise Server 
10" in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is header
ignoring line "Service Pack 4 started on April 12th, 2011 and will continue 
until" in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is 
header
ignoring line "the end of General Support for SUSE Linux Enterprise 10, which 
is" in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is header
ignoring line "currently scheduled for July 31st, 2013." in 
PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is header
ignoring line "In order to keep your systems up to date and secure, please 
migrate your" in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status 
is header
ignoring line "systems to SUSE Linux Enterprise Server 10 Service Pack 4. All 
customers" in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is 
header
ignoring line "with active SUSE Linux Enterprise Server Subscription can 
migrate to" in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is 
header
ignoring line "SUSE Linux Enterprise Server 10 Service Pack 4 or SUSE Linux 
Enterprise" in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is 
header
ignoring line "Server 11 Service Pack at no additional cost." in 
PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is header
ignoring line "For more information on how to upgrade to SUSE Linux Enterprise" 
in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is header
ignoring line "Server 10 Service Pack 4, please read:" in 
PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is header
ignoring line 
"http://www.novell.com/support/documentLink.do?externalID=7008357"; in 
PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is header
ignoring line "Please ensure that you applied all maintenance updates provided" 
in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is header
ignoring line "for SUSE Linux Enterprise Server 10 Service Pack 3 before 
starting" in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is 
header
ignoring line "the migration." in 
PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is header
ignoring line "If you want to receive continued support for SUSE Linux 
Enterprise" in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is 
header
ignoring line "Server 10 Service Pack 3, SUSE offers an optional Long Term 
Service" in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is 
header
ignoring line "Pack Support program." in 
PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is header
ignoring line "For more information on SUSE's Long Term Service Pack Support 
program," in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is 
header
ignoring line "please see:" in 
PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is header
ignoring line 
"http://www.suse.com/support/programs/long-term-service-pack-support.html"; in 
PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is header
ignoring line "Contact your SUSE sales representative if you would like to 
purchase" in PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is 
header
ignoring line "Long Term Service Pack Support now." in 
PATCHINFO/SWAMP-PROOFREAD-DONE/sp3-end-of-maintenance, status is header


--------
--- old-versions/11.3/all/pam/pam.changes       2010-05-10 14:23:45.000000000 
+0200
+++ 11.3/pam/pam.changes        2011-10-25 14:30:04.000000000 +0200
@@ -1,0 +2,8 @@
+Mon Oct 24 10:51:41 CEST 2011 - [email protected]
+
+- fix possible overflow and DOS in pam_env (bnc#724480)
+  CVE-2011-3148, CVE-2011-3149
+- fix pam_xauth not checking return value of setuid (bnc#631802)
+  CVE-2010-3316
+
+-------------------------------------------------------------------

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


New:
----
  bug-631802_pam_xauth-unchecked-ret-of-setuid.dif
  bug-724480_pam_env-fix-dos.patch
  bug-724480_pam_env-fix-overflow.patch

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

Other differences:
------------------
++++++ pam.spec ++++++
--- /var/tmp/diff_new_pack.UuzP9U/_old  2011-10-25 16:39:22.000000000 +0200
+++ /var/tmp/diff_new_pack.UuzP9U/_new  2011-10-25 16:39:22.000000000 +0200
@@ -1,7 +1,7 @@
 #
-# spec file for package pam (Version 1.1.1.90)
+# spec file for package pam
 #
-# Copyright (c) 2010 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
@@ -38,7 +38,7 @@
 %endif
 #
 Version:        1.1.1.90
-Release:        1
+Release:        2.<RELEASE2>
 Summary:        A Security Tool that Provides Authentication for Applications
 Source:         Linux-PAM-%{version}.tar.bz2
 Source1:        Linux-PAM-%{version}-docs.tar.bz2
@@ -50,7 +50,10 @@
 Source7:        common-session.pamd
 Source8:        etc.environment
 Source9:        baselibs.conf
-Patch:          pam_tally-deprecated.diff
+Patch0:         pam_tally-deprecated.diff
+Patch1:         bug-724480_pam_env-fix-overflow.patch
+Patch2:         bug-724480_pam_env-fix-dos.patch
+Patch3:         bug-631802_pam_xauth-unchecked-ret-of-setuid.dif
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description
@@ -99,7 +102,10 @@
 
 %prep
 %setup -q -n Linux-PAM-%{version} -b 1
-%patch -p0
+%patch0 -p0
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
 
 %build
 CFLAGS="$RPM_OPT_FLAGS -DNDEBUG" \

++++++ bug-631802_pam_xauth-unchecked-ret-of-setuid.dif ++++++
Index: Linux-PAM-1.1.1.90/modules/pam_xauth/pam_xauth.c
===================================================================
--- Linux-PAM-1.1.1.90.orig/modules/pam_xauth/pam_xauth.c
+++ Linux-PAM-1.1.1.90/modules/pam_xauth/pam_xauth.c
@@ -87,7 +87,7 @@ static const char * const xauthpaths[] =
 /* Run a given command (with a NULL-terminated argument list), feeding it the
  * given input on stdin, and storing any output it generates. */
 static int
-run_coprocess(const char *input, char **output,
+run_coprocess(pam_handle_t *pamh, const char *input, char **output,
              uid_t uid, gid_t gid, const char *command, ...)
 {
        int ipipe[2], opipe[2], i;
@@ -126,9 +126,26 @@ run_coprocess(const char *input, char **
                const char *tmp;
                int maxopened;
                /* Drop privileges. */
-               setgid(gid);
-               setgroups(0, NULL);
-               setuid(uid);
+               if (setgid(gid) == -1)
+                 {
+                   int err = errno;
+                   pam_syslog (pamh, LOG_ERR, "setgid(%lu) failed: %m",
+                               (unsigned long) getegid ());
+                   _exit (err);
+                 }
+               if (setgroups(0, NULL) == -1)
+                 {
+                   int err = errno;
+                   pam_syslog (pamh, LOG_ERR, "setgroups() failed: %m");
+                   _exit (err);
+                 }
+               if (setuid(uid) == -1)
+                 {
+                   int err = errno;
+                   pam_syslog (pamh, LOG_ERR, "setuid(%lu) failed: %m",
+                               (unsigned long) geteuid ());
+                   _exit (err);
+                 }
                /* Initialize the argument list. */
                memset(args, 0, sizeof(args));
                /* Set the pipe descriptors up as stdin and stdout, and close
@@ -216,7 +233,7 @@ check_acl(pam_handle_t *pamh,
        char path[PATH_MAX];
        struct passwd *pwd;
        FILE *fp;
-       int i;
+       int i, save_errno;
        uid_t euid;
        /* Check this user's <sense> file. */
        pwd = pam_modutil_getpwnam(pamh, this_user);
@@ -236,6 +253,7 @@ check_acl(pam_handle_t *pamh,
        euid = geteuid();
        setfsuid(pwd->pw_uid);
        fp = fopen(path, "r");
+       save_errno = errno;
        setfsuid(euid);
        if (fp != NULL) {
                char buf[LINE_MAX], *tmp;
@@ -268,6 +286,7 @@ check_acl(pam_handle_t *pamh,
                return PAM_PERM_DENIED;
        } else {
                /* Default to okay if the file doesn't exist. */
+               errno = save_errno;
                switch (errno) {
                case ENOENT:
                        if (noent_code == PAM_SUCCESS) {
@@ -463,7 +482,7 @@ pam_sm_open_session (pam_handle_t *pamh,
                           xauth, "-f", cookiefile, "nlist", display,
                           (unsigned long) getuid(), (unsigned long) getgid());
        }
-       if (run_coprocess(NULL, &cookie,
+       if (run_coprocess(pamh, NULL, &cookie,
                          getuid(), getgid(),
                          xauth, "-f", cookiefile, "nlist", display,
                          NULL) == 0) {
@@ -521,7 +540,7 @@ pam_sm_open_session (pam_handle_t *pamh,
                                                       (unsigned long) getuid(),
                                                       (unsigned long) 
getgid());
                                        }
-                                       run_coprocess(NULL, &cookie,
+                                       run_coprocess(pamh, NULL, &cookie,
                                                      getuid(), getgid(),
                                                      xauth, "-f", cookiefile,
                                                      "nlist", t, NULL);
@@ -669,7 +688,7 @@ pam_sm_open_session (pam_handle_t *pamh,
                                  (unsigned long) tpwd->pw_uid,
                                  (unsigned long) tpwd->pw_gid);
                }
-               run_coprocess(cookie, &tmp,
+               run_coprocess(pamh, cookie, &tmp,
                              tpwd->pw_uid, tpwd->pw_gid,
                              xauth, "-f", cookiefile, "nmerge", "-", NULL);
 
++++++ bug-724480_pam_env-fix-dos.patch ++++++
Description: abort when encountering an overflowed environment variable
 expansion (CVE-2011-3149).
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/pam/+bug/874565
Author: Kees Cook <[email protected]>

Index: pam-debian/modules/pam_env/pam_env.c
===================================================================
--- pam-debian.orig/modules/pam_env/pam_env.c   2011-10-14 12:47:23.433861595 
-0700
+++ pam-debian/modules/pam_env/pam_env.c        2011-10-14 12:47:23.461861963 
-0700
@@ -567,6 +567,7 @@
        D(("Variable buffer overflow: <%s> + <%s>", tmp, tmpptr));
        pam_syslog (pamh, LOG_ERR, "Variable buffer overflow: <%s> + <%s>",
                 tmp, tmpptr);
+       return PAM_ABORT;
       }
       continue;
     }
@@ -628,6 +629,7 @@
            D(("Variable buffer overflow: <%s> + <%s>", tmp, tmpptr));
            pam_syslog (pamh, LOG_ERR,
                        "Variable buffer overflow: <%s> + <%s>", tmp, tmpptr);
+           return PAM_ABORT;
          }
        }
       }           /* if ('{' != *orig++) */
@@ -639,6 +641,7 @@
        D(("Variable buffer overflow: <%s> + <%s>", tmp, tmpptr));
        pam_syslog(pamh, LOG_ERR,
                   "Variable buffer overflow: <%s> + <%s>", tmp, tmpptr);
+       return PAM_ABORT;
       }
     }
   }              /* for (;*orig;) */
++++++ bug-724480_pam_env-fix-overflow.patch ++++++
Description: correctly count leading whitespace when parsing environment
 file (CVE-2011-3148).
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/pam/+bug/874469
Author: Kees Cook <[email protected]>

Index: pam-debian/modules/pam_env/pam_env.c
===================================================================
--- pam-debian.orig/modules/pam_env/pam_env.c   2011-10-14 10:51:30.973701139 
-0700
+++ pam-debian/modules/pam_env/pam_env.c        2011-10-14 12:32:25.578188004 
-0700
@@ -287,6 +287,7 @@
     char *p = buffer;
     char *s, *os;
     int used = 0;
+    int whitespace;
 
     /* loop broken with a 'break' when a non-'\\n' ended line is read */
 
@@ -309,8 +310,10 @@
 
        /* skip leading spaces --- line may be blank */
 
-       s = p + strspn(p, " \n\t");
+       whitespace = strspn(p, " \n\t");
+       s = p + whitespace;
        if (*s && (*s != '#')) {
+           used += whitespace;
            os = s;
 
            /*
continue with "q"...



Remember to have fun...

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

Reply via email to