Bug 1104791 (CVE-2014-3477) - CVE-2014-3477 dbus: denial of service flaw in dbus-daemon
Summary: CVE-2014-3477 dbus: denial of service flaw in dbus-daemon
Keywords:
Status: CLOSED WONTFIX
Alias: CVE-2014-3477
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1107886 1117395
Blocks: 1104793
TreeView+ depends on / blocked
 
Reported: 2014-06-04 17:15 UTC by Vincent Danen
Modified: 2023-05-12 04:05 UTC (History)
7 users (show)

Fixed In Version: dbus 1.6.20, dbus 1.8.4
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-01-20 17:08:08 UTC
Embargoed:


Attachments (Terms of Use)
upstream patch (6.42 KB, patch)
2014-06-04 17:17 UTC, Vincent Danen
no flags Details | Diff

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/


Note You need to log in before you can comment on or make changes to this bug.