Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libsepol for openSUSE:Factory 
checked in at 2021-07-09 23:56:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libsepol (Old)
 and      /work/SRC/openSUSE:Factory/.libsepol.new.2625 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libsepol"

Fri Jul  9 23:56:34 2021 rev:49 rq:904154 version:3.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/libsepol/libsepol.changes        2021-03-24 
16:08:49.803679446 +0100
+++ /work/SRC/openSUSE:Factory/.libsepol.new.2625/libsepol.changes      
2021-07-09 23:56:35.581805886 +0200
@@ -1,0 +2,8 @@
+Mon Jul  5 11:31:07 UTC 2021 - Johannes Segitz <jseg...@suse.com>
+
+- Fix use-after-free in __cil_verify_classperms (CVE-2021-36085, 1187965).
+  Added CVE-2021-36085.patch
+- Fix use-after-free in cil_reset_classpermission (CVE-2021-36086, 1187964).
+  Added CVE-2021-36086.patch
+
+-------------------------------------------------------------------

New:
----
  CVE-2021-36085.patch
  CVE-2021-36086.patch

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

Other differences:
------------------
++++++ libsepol.spec ++++++
--- /var/tmp/diff_new_pack.svuAvH/_old  2021-07-09 23:56:36.097801873 +0200
+++ /var/tmp/diff_new_pack.svuAvH/_new  2021-07-09 23:56:36.101801842 +0200
@@ -27,6 +27,9 @@
 URL:            https://github.com/SELinuxProject/selinux/wiki/Releases
 Source:         
https://github.com/SELinuxProject/selinux/releases/download/%{version}/%{name}-%{version}.tar.gz
 Source2:        baselibs.conf
+# all upstream, remove in next version
+Patch0:         CVE-2021-36085.patch
+Patch1:         CVE-2021-36086.patch
 BuildRequires:  flex
 BuildRequires:  pkgconfig
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -88,6 +91,7 @@
 
 %prep
 %setup -q
+%autopatch -p2
 
 %build
 %define _lto_cflags %{nil}

++++++ CVE-2021-36085.patch ++++++
>From 2d35fcc7e9e976a2346b1de20e54f8663e8a6cba Mon Sep 17 00:00:00 2001
From: James Carter <jwca...@gmail.com>
Date: Thu, 8 Apr 2021 13:32:04 -0400
Subject: [PATCH] libsepol/cil: Destroy classperm list when resetting map perms

Map perms share the same struct as regular perms, but only the
map perms use the classperms field. This field is a pointer to a
list of classperms that is created and added to when resolving
classmapping rules, so the map permission doesn't own any of the
data in the list and this list should be destroyed when the AST is
reset.

When resetting a perm, destroy the classperms list without destroying
the data in the list.

Signed-off-by: James Carter <jwca...@gmail.com>
---
 libsepol/cil/src/cil_reset_ast.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: libsepol/libsepol-3.2/cil/src/cil_reset_ast.c
===================================================================
--- libsepol.orig/libsepol-3.2/cil/src/cil_reset_ast.c
+++ libsepol/libsepol-3.2/cil/src/cil_reset_ast.c
@@ -36,7 +36,7 @@ static void cil_reset_class(struct cil_c
 
 static void cil_reset_perm(struct cil_perm *perm)
 {
-       cil_reset_classperms_list(perm->classperms);
+       cil_list_destroy(&perm->classperms, CIL_FALSE);
 }
 
 static inline void cil_reset_classperms(struct cil_classperms *cp)
++++++ CVE-2021-36086.patch ++++++
>From c49a8ea09501ad66e799ea41b8154b6770fec2c8 Mon Sep 17 00:00:00 2001
From: James Carter <jwca...@gmail.com>
Date: Thu, 8 Apr 2021 13:32:06 -0400
Subject: [PATCH] libsepol/cil: cil_reset_classperms_set() should not reset
 classpermission

In struct cil_classperms_set, the set field is a pointer to a
struct cil_classpermission which is looked up in the symbol table.
Since the cil_classperms_set does not create the cil_classpermission,
it should not reset it.

Set the set field to NULL instead of resetting the classpermission
that it points to.

Signed-off-by: James Carter <jwca...@gmail.com>
---
 libsepol/cil/src/cil_reset_ast.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/libsepol/cil/src/cil_reset_ast.c b/libsepol/cil/src/cil_reset_ast.c
index 89f91e56..1d9ca704 100644
--- a/libsepol/cil/src/cil_reset_ast.c
+++ b/libsepol/cil/src/cil_reset_ast.c
@@ -59,7 +59,11 @@ static void cil_reset_classpermission(struct 
cil_classpermission *cp)
 
 static void cil_reset_classperms_set(struct cil_classperms_set *cp_set)
 {
-       cil_reset_classpermission(cp_set->set);
+       if (cp_set == NULL) {
+               return;
+       }
+
+       cp_set->set = NULL;
 }
 
 static inline void cil_reset_classperms_list(struct cil_list *cp_list)
-- 
2.26.2

Reply via email to