File CVE-2016-7545_sandbox_escape.patch of Package policycoreutils.3861
Index: policycoreutils-2.3/sandbox/sandbox
===================================================================
--- policycoreutils-2.3.orig/sandbox/sandbox 2016-12-19 08:28:24.922367202 +0100
+++ policycoreutils-2.3/sandbox/sandbox 2016-12-19 08:29:33.563413662 +0100
@@ -452,10 +452,15 @@ sandbox [-h] [-c] [-l level ] [-[X|M] [-
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: