Bug 1104791 (CVE-2014-3477)

Summary: CVE-2014-3477 dbus: denial of service flaw in dbus-daemon
Product: [Other] Security Response Reporter: Vincent Danen <vdanen>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: carnil, falonso, jkurik, mmilgram, rhughes, security-response-team, walters
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: dbus 1.6.20, dbus 1.8.4 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-01-20 17:08:08 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1107886, 1117395    
Bug Blocks: 1104793    
Attachments:
Description Flags
upstream patch none

Description Vincent Danen 2014-06-04 17:15:49 UTC
Alban Crequy of Collabora Ltd. discovered a denial of service flaw in dbus-daemon.  If a client (C1) was prohibited from sending a message to a service (S1), and S1 was not currently running, then C1 could attempt to send a message to S1's well-known bus name, causing dbus-daemon to start S1.  When S1 had started and obtained its well-known bus name, the dbus-daemon evaluated its security policy, decided that it would not deliver the message to S1, and constructed an AccessDenied error.  Instead of sending that AccessDenied error reply to C1 as a reply to the denied message, dbus-daemon incorrectly sent it to S1 as a reply to the request to obtain its well-known bus name.  This would cause S1 to fail to initialize and exit, denying service to other legitimate clients of S1.

As well, this opens up the possibility of a side channel where, in an environment where C1 and S1 are untrusted and were administratively prohibited from communicating, S1 could use these incorrectly-directed error messages as a side channel to receive information from C1.  This scenario is only really relevant on systems where an LSM such as SELinux was used in a highly restrictive configuration, because in practice a system bus could typically communicate in other ways (such as non-D-Bus IPC mechanisms, files in /tmp, etc.).


Acknowledgements:

Red Hat would like to thank D-Bus upstream for reporting this issue.  Upstream acknowledges Alban Crequy of Collabora Ltd. as the original reporter.

Comment 1 Vincent Danen 2014-06-04 17:17:47 UTC
Created attachment 902257 [details]
upstream patch

Comment 3 Vincent Danen 2014-06-05 01:20:26 UTC
Upstream has noted that this affects dbus as far back as 1.0.

Comment 4 Murray McAllister 2014-06-11 00:02:56 UTC
This issue is public now:

http://www.openwall.com/lists/oss-security/2014/06/10/2
http://cgit.freedesktop.org/dbus/dbus/commit/?h=dbus-1.8&id=24c590703ca47eb71ddef453de43126b90954567

It has been fixed in upstream versions 1.8.4 and 1.6.20.

Comment 5 Murray McAllister 2014-06-11 00:05:22 UTC
Created dbus tracking bugs for this issue:

Affects: fedora-all [bug 1107886]

Comment 6 Francisco Alonso 2014-07-08 15:01:30 UTC
Created mingw-dbus tracking bugs for this issue:

Affects: fedora-all [bug 1117395]

Comment 10 Francisco Alonso 2014-07-21 15:10:46 UTC
Statement:

This issue affect the dbus package in Red Hat Enterprise Linux 5, 6, 7. Red Hat Product Security has rated this issue as having Moderate security impact, a future update my address this flaw in Red Hat Enterprise Linux 6 and 7. This issue is not planned to be fixed in Red Hat Enterprise Linux 5 as it is now in Production 3 Phase of the support and maintenance life cycle, https://access.redhat.com/support/policy/updates/errata/