CVE-2016-4989: Command Injection

Published Jun 14, 2016
·
Updated

It was discovered that setroubleshoot executed external commands using subprocess.checkoutput(), commands.getstatusoutput(), or 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 denial using a file with a specially crafted name.

The following cases were identified:

- settpath() in auditdata.py - When executing locate command, it used subprocess.checkoutput() (new setroubleshoot versions) or commands.getstatusoutput() (older versions) to execute command using shell. A local user could use this flaw to execute commands with setroubleshootd privileges.

- runfix() in SetroubleshootFixit.py - This DBus service requires administrative authentication by default. There are currently no known attacks that can be used by non-administrative users.

Other sources

setroubleshoot allows local users to bypass an intended container protection mechanism and execute arbitrary commands by (1) triggering an SELinux denial with a crafted file name, which is handled by the settpath function in auditdata.py or via a crafted (2) localid or (3) analysisid field in a crafted XML document to the runfix function in SetroubleshootFixit.py, related to the subprocess.checkoutput and commands.getstatusoutput functions, a different vulnerability than CVE-2016-4445.

MITRE

Affected Software

7 affected componentsFixes available
redhat/setroubleshoot<3.2.27.1
3.2.27.1
redhat/setroubleshoot<3.3.9.1
3.3.9.1
Setroubleshoot Project Setroubleshoot<=-
redhat Enterprise Linux Desktop=7.0
redhat Enterprise Linux Hpc Node=7.0
redhat Enterprise Linux Server=7.0
redhat Enterprise Linux Workstation=7.0

Event History

Apr 11, 2017
CVE Published
via MITRE·06:00 PM
Data Sourced
via MITRE·06:00 PM
Description

Frequently Asked Questions

1

What is the vulnerability description for CVE-2016-4989?

CVE-2016-4989 allows local users to bypass an intended container protection mechanism and execute arbitrary commands through specific crafted file names and fields.

2

What are the affected versions for CVE-2016-4989?

CVE-2016-4989 affects setroubleshoot versions prior to 3.2.27.1 and 3.3.9.1.

3

What systems are primarily impacted by CVE-2016-4989?

CVE-2016-4989 impacts Red Hat Enterprise Linux Desktop, Server, Workstation, and HPC Node version 7.0.

4

How do I fix CVE-2016-4989?

To fix CVE-2016-4989, update setroubleshoot to version 3.2.27.1 or 3.3.9.1 or later.

5

What kind of exploit does CVE-2016-4989 represent?

CVE-2016-4989 represents a local privilege escalation vulnerability through command execution.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203