File CVE-2016-7545_sandbox_escape.patch of Package policycoreutils.6935
Index: policycoreutils-2.5/sandbox/sandbox
===================================================================
--- policycoreutils-2.5.orig/sandbox/sandbox 2016-02-23 17:31:41.000000000 +0100
+++ policycoreutils-2.5/sandbox/sandbox 2016-12-19 08:20:38.507223657 +0100
@@ -467,10 +467,15 @@ sandbox [-h] [-l level ] [-[X|M] [-H hom
cmds += ["--"] + self.__paths
return subprocess.Popen(cmds).wait()
- selinux.setexeccon(self.__execcon)
- rc = subprocess.Popen(self.__cmds).wait()
- selinux.setexeccon(None)
- return rc
+ pid = os.fork()
+ if pid == 0:
+ rc = os.setsid()
+ if rc:
+ return rc
+ selinux.setexeccon(self.__execcon)
+ os.execv(self.__cmds[0], self.__cmds)
+ rc = os.waitpid(pid, 0)
+ return os.WEXITSTATUS(rc[1])
finally:
for i in self.__paths: