Bug 1339250 (CVE-2016-4446)

Summary: CVE-2016-4446 setroubleshoot-plugins: insecure commands.getoutput use in the allow_execstack plugin
Product: [Other] Security Response Reporter: Tomas Hoger <thoger>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: unspecifiedCC: lvrabec, mgrepl, mmalik, plautrba, security-response-team
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard: impact=important,public=20160621,reported=20160503,source=redhat,cvss2=6.9/AV:L/AC:M/Au:N/C:C/I:C/A:C,cwe=CWE-77,rhel-5/setroubleshoot-plugins=notaffected,rhel-6/setroubleshoot-plugins=affected,rhel-7/setroubleshoot-plugins=affected,fedora-all/setroubleshoot-plugins=affected
Fixed In Version: setroubleshoot-plugins 3.2.27.1, setroubleshoot-plugins 3.3.9.1 Doc Type: If docs needed, set a value
Doc Text:
A shell command injection flaw was found in the way the setroubleshoot allow_execstack plugin executed external commands. A local attacker able to trigger an execstack SELinux denial could use this flaw to execute arbitrary code with root privileges.
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-23 10:55:45 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On: 1332411, 1339369, 1339370, 1339372, 1348527    
Bug Blocks: 1332645    

Description Tomas Hoger 2016-05-24 13:17:49 UTC
It was discovered that the allow_execstack setroubleshoot plugin executes external commands using the commands.getoutput() without properly sanitizing untrusted inputs used as command arguments.  These inputs originated from SELinux AVC messages.  A local user could use this flaw to execute arbitrary code as root if they could trigger an SELinux execstack denial using a file with a specially crafted name.

The similar problem was reported for allow_execmod plugin too, related to the use of commands.getstatusoutput(), see bug 1339183.

Comment 1 Tomas Hoger 2016-05-24 13:17:54 UTC
Acknowledgments:

Name: Milos Malik (Red Hat)

Comment 5 Tomas Hoger 2016-05-25 12:58:22 UTC
This issue does not affect the default SELinux configuration, as the execstack is allowed by default for unconfined_t domain.  SELinux booleans allow_execstack (on Red Hat Enterprise Linux 6) or selinuxuser_execstack (on Red Hat Enterprise Linux 7) can be set to off to disallow execstack, and hence make it possible to generate execstack AVC, which triggers this bug.

The impact of this issue on Red Hat Enterprise Linux 7.2 and later is reduced, as setroubleshootd does not run with root privileges, but with privileges of a dedicated non-root user setroubleshoot.

Comment 6 Tomas Hoger 2016-06-21 11:39:15 UTC
Lifting embargo.

Comment 7 Tomas Hoger 2016-06-21 11:46:16 UTC
Created setroubleshoot-plugins tracking bugs for this issue:

Affects: fedora-all [bug 1348527]

Comment 9 errata-xmlrpc 2016-06-21 21:25:02 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 6

Via RHSA-2016:1267 https://access.redhat.com/errata/RHSA-2016:1267

Comment 10 errata-xmlrpc 2016-06-23 08:53:14 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7

Via RHSA-2016:1293 https://access.redhat.com/errata/RHSA-2016:1293

Comment 11 Fedora Update System 2016-06-23 17:52:57 UTC
setroubleshoot-plugins-3.3.5.1-1.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.

Comment 12 Fedora Update System 2016-06-23 17:53:33 UTC
setroubleshoot-3.3.9.1-1.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.

Comment 13 Fedora Update System 2016-06-29 17:19:38 UTC
setroubleshoot-3.2.27.1-1.fc22 has been pushed to the Fedora 22 stable repository. If problems still persist, please make note of it in this bug report.

Comment 14 Fedora Update System 2016-06-29 17:22:00 UTC
setroubleshoot-3.3.9.1-1.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.

Comment 15 Fedora Update System 2016-07-02 19:31:57 UTC
setroubleshoot-plugins-3.3.5.1-1.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.