The branch, v3-5-stable has been updated
       via  b1061ab Fix self granting privileges in security=ads.
       via  0b27880 WHASNEW: Release notes for 3.5.15.
      from  1cc0306 WHATSNEW: Start release notes for Samba 3.5.15.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-5-stable


- Log -----------------------------------------------------------------
commit b1061ab00f59fdf4ebab622ab7a9c29a3aa51eee
Author: Jeremy Allison <j...@samba.org>
Date:   Tue Apr 17 11:49:55 2012 -0700

    Fix self granting privileges in security=ads.
    
    CVE-2012-2111

commit 0b278804b1aa020e03c89e9276408dd7097bb4d2
Author: Karolin Seeger <ksee...@samba.org>
Date:   Fri Apr 27 21:09:56 2012 +0200

    WHASNEW: Release notes for 3.5.15.
    
    Karolin

-----------------------------------------------------------------------

Summary of changes:
 WHATSNEW.txt                    |   16 +++++++++++-----
 source3/rpc_server/srv_lsa_nt.c |   20 ++++++++++++++------
 2 files changed, 25 insertions(+), 11 deletions(-)


Changeset truncated at 500 lines:

diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 712748f..b588bfd 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,20 +1,26 @@
                    ==============================
                    Release Notes for Samba 3.5.15
-                          , 2012
+                          April 30, 2012
                    ==============================
 
 
-This is the latest stable release of Samba 3.5.
+This is a security release in order to address
+CVE-2012-2111 (Incorrect permission checks when granting/removing
+privileges can compromise file server security).
 
-Major enhancements in Samba 3.5.15 include:
+o  CVE-2012-2111:
+   Samba 3.4.x to 3.6.4 are affected by a
+   vulnerability that allows arbitrary users
+   to modify privileges on a file server.
 
-o  
 
 Changes since 3.5.14:
 ---------------------
 
 
-o   Stefan Metzmacher <me...@samba.org>
+o   Jeremy Allison <j...@samba.org>
+    * Fix  incorrect permission checks when granting/removing
+      privileges (CVE-2012-2111).
 
 
 ######################################################################
diff --git a/source3/rpc_server/srv_lsa_nt.c b/source3/rpc_server/srv_lsa_nt.c
index e903f0e..b9ea2d2 100644
--- a/source3/rpc_server/srv_lsa_nt.c
+++ b/source3/rpc_server/srv_lsa_nt.c
@@ -1691,6 +1691,10 @@ NTSTATUS _lsa_CreateAccount(pipes_struct *p,
        struct lsa_info *handle;
        struct lsa_info *info;
        uint32_t acc_granted;
+       uint32_t owner_access = (LSA_ACCOUNT_ALL_ACCESS &
+                       ~(LSA_ACCOUNT_ADJUST_PRIVILEGES|
+                       LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS|
+                       STD_RIGHT_DELETE_ACCESS));
        struct security_descriptor *psd;
        size_t sd_size;
 
@@ -1718,7 +1722,7 @@ NTSTATUS _lsa_CreateAccount(pipes_struct *p,
 
        status = make_lsa_object_sd(p->mem_ctx, &psd, &sd_size,
                                    &lsa_account_mapping,
-                                   r->in.sid, LSA_POLICY_ALL_ACCESS);
+                                   r->in.sid, owner_access);
        if (!NT_STATUS_IS_OK(status)) {
                return status;
        }
@@ -1764,6 +1768,10 @@ NTSTATUS _lsa_OpenAccount(pipes_struct *p,
        size_t sd_size;
        uint32_t des_access = r->in.access_mask;
        uint32_t acc_granted;
+       uint32_t owner_access = (LSA_ACCOUNT_ALL_ACCESS &
+                       ~(LSA_ACCOUNT_ADJUST_PRIVILEGES|
+                       LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS|
+                       STD_RIGHT_DELETE_ACCESS));
        NTSTATUS status;
 
        /* find the connection policy handle. */
@@ -1788,7 +1796,7 @@ NTSTATUS _lsa_OpenAccount(pipes_struct *p,
        /* get the generic lsa account SD until we store it */
        status = make_lsa_object_sd(p->mem_ctx, &psd, &sd_size,
                                &lsa_account_mapping,
-                               r->in.sid, LSA_ACCOUNT_ALL_ACCESS);
+                               r->in.sid, owner_access);
        if (!NT_STATUS_IS_OK(status)) {
                return status;
        }
@@ -2174,10 +2182,10 @@ NTSTATUS _lsa_AddAccountRights(pipes_struct *p,
                return NT_STATUS_INVALID_HANDLE;
        }
 
-        /* get the generic lsa account SD for this SID until we store it */
+        /* get the generic lsa account SD until we store it */
         status = make_lsa_object_sd(p->mem_ctx, &psd, &sd_size,
                                 &lsa_account_mapping,
-                                r->in.sid, LSA_ACCOUNT_ALL_ACCESS);
+                                NULL, 0);
         if (!NT_STATUS_IS_OK(status)) {
                 return status;
         }
@@ -2245,10 +2253,10 @@ NTSTATUS _lsa_RemoveAccountRights(pipes_struct *p,
                return NT_STATUS_INVALID_HANDLE;
        }
 
-        /* get the generic lsa account SD for this SID until we store it */
+        /* get the generic lsa account SD until we store it */
         status = make_lsa_object_sd(p->mem_ctx, &psd, &sd_size,
                                 &lsa_account_mapping,
-                                r->in.sid, LSA_ACCOUNT_ALL_ACCESS);
+                                NULL, 0);
         if (!NT_STATUS_IS_OK(status)) {
                 return status;
         }


-- 
Samba Shared Repository

Reply via email to