Bug 1181721 (CVE-2015-0203) - CVE-2015-0203 qpid-cpp: 3 qpidd DoS issues in AMQP 0-10 protocol handling
Summary: CVE-2015-0203 qpid-cpp: 3 qpidd DoS issues in AMQP 0-10 protocol handling
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2015-0203
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: 1471925 1471926 1471927
Blocks: 1181723
TreeView+ depends on / blocked
 
Reported: 2015-01-13 16:29 UTC by Vasyl Kaigorodov
Modified: 2023-05-12 06:32 UTC (History)
39 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
A flaw was found in the way the Qpid daemon (qpidd) processed certain protocol sequences. An unauthenticated attacker able to send a specially crafted protocol sequence set could use this flaw to crash qpidd.
Clone Of:
Environment:
Last Closed: 2017-08-23 08:53:26 UTC
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Knowledge Base (Solution) 108673 0 None None None 2017-03-20 11:26:36 UTC
Red Hat Product Errata RHSA-2015:0660 0 normal SHIPPED_LIVE Moderate: qpid-cpp security and bug fix update 2015-03-23 13:35:29 UTC
Red Hat Product Errata RHSA-2015:0661 0 normal SHIPPED_LIVE Moderate: qpid-cpp security and bug fix update 2015-03-09 18:41:05 UTC
Red Hat Product Errata RHSA-2015:0662 0 normal SHIPPED_LIVE Moderate: qpid-cpp security and bug fix update 2015-03-09 18:30:11 UTC
Red Hat Product Errata RHSA-2015:0707 0 normal SHIPPED_LIVE Moderate: qpid security and bug fix update 2015-03-19 21:10:19 UTC
Red Hat Product Errata RHSA-2015:0708 0 normal SHIPPED_LIVE Moderate: qpid security and bug fix update 2015-03-19 21:10:24 UTC

Description Vasyl Kaigorodov 2015-01-13 16:29:27 UTC
It was reported [1] that certain unexpected protocol sequences cause the broker process to crash due to insufficient checking. Three distinct cases were identified as follows:

The AMQP 0-10 protocol defines a sequence set containing id ranges. The qpidd broker can be crashed by sending it a sequence-set containing an invalid range, where the start of the range is after the end. This condition causes an assertion, which causes the broker process to exit.

The AMQP 0-10 protocol defines header- and body- segments that may follow certain commands. The only command for which such segments are expected by qpidd is the message-transfer command. If another command is sent that includes header and/or body segments, this will cause a segmentation fault in the broker process, causing it then to exit.

The AMQP 0-10 protocol defines a session-gap control that can be sent on any established session. The qpidd broker does not support this control and responds with an appropriate error if requested on an established session. However, if the control is sent before the session is opened, the brokers handling causes an assertion which results in the broker process exiting.

A patch is available (https://issues.apache.org/jira/browse/QPID-6310) that handles all these errors by sending an exception control to the remote peer and leave the broker available to all other users.

[1]: http://mail-archives.apache.org/mod_mbox/qpid-users/201501.mbox/%3c54B4F4AC.8030109@apache.org%3e

Acknowledgements:

Red Hat would like to thank the Apache Software Foundation for reporting this issue. Upstream acknowledges G. Geshev from MWR Labs as the original reporter.

Comment 2 Vasyl Kaigorodov 2015-02-03 14:37:48 UTC
It has now been discovered that in fact failing authentication does
not necessarily prevent exploitation of those reported
vulnerabilities.

Further, it was stated that one of the specific vulnerabilities was
that the qpidd broker can be crashed by sending it a sequence-set
containing an invalid range, where the start of the range is after the
end. This was an incorrect analysis of the vulnerability, which is in
fact caused by a sequence-set containing a single range expressing the
maximum possible gap.

Solution:

A further patch is available that handles a range expressing the
maximum possible gap without assertion
(https://issues.apache.org/jira/browse/QPID-6310). The fix will be
included in subsequent releases, but can be applied to 0.30 if
desired.

Comment 3 Tomas Hoger 2015-03-09 12:08:24 UTC
Upstream advisory is:

http://seclists.org/bugtraq/2015/Jan/61

It identifies 3 separate problems, as quote in comment 0.  Upstream bug report identifies the following commits to address these issues:

  The AMQP 0-10 protocol defines a sequence set containing id
  ranges. The qpidd broker can be crashed by sending it a sequence-set
  containing an invalid range, where the start of the range is after the
  end. This condition causes an assertion, which causes the broker
  process to exit.

  -> https://svn.apache.org/viewvc?view=revision&revision=1651321

  The AMQP 0-10 protocol defines header- and body- segments that may
  follow certain commands. The only command for which such segments are
  expected by qpidd is the message-transfer command. If another command
  is sent that includes header and/or body segments, this will cause a
  segmentation fault in the broker process, causing it then to exit.

  -> https://svn.apache.org/viewvc?view=revision&revision=1651320

  The AMQP 0-10 protocol defines a session-gap control that can be sent
  on any established session. The qpidd broker does not support this
  control and responds with an appropriate error if requested on an
  established session. However, if the control is sent before the
  session is opened, the brokers handling causes an assertion which
  results in the broker process exiting.

  -> https://svn.apache.org/viewvc?view=revision&revision=1651319

The information in comment 2 was quoted from a follow-up upstream advisory:

http://seclists.org/bugtraq/2015/Jan/121

The follow-up advisory provides the following corrections:

- The original advisory for CVE-2015-0203 indicated that these issues were only exploitable by an authenticated user, which was later determined to be incorrect.  This may be because of CVE-2015-0223 (bug 1186308), but upstream advisory does not indicate clearly.

- It identifies an additional way to trigger qpidd crash related to handling of sequence-set ranges.  That issue was assigned the CVE id CVE-2015-0224 and is tracked via bug 1186302.  Upstream commit fixing that issue is:

  -> https://svn.apache.org/viewvc?view=revision&revision=1654365

Comment 4 errata-xmlrpc 2015-03-09 13:43:24 UTC
This issue has been addressed in the following products:

  MRG for RHEL-5 v. 2

Via RHSA-2015:0662 https://rhn.redhat.com/errata/RHSA-2015-0662.html

Comment 5 errata-xmlrpc 2015-03-09 13:43:41 UTC
This issue has been addressed in the following products:

  MRG v.2 for RHEL-7

Via RHSA-2015:0660 https://rhn.redhat.com/errata/RHSA-2015-0660.html

Comment 6 errata-xmlrpc 2015-03-09 13:50:09 UTC
This issue has been addressed in the following products:

  MRG for RHEL-6 v.2

Via RHSA-2015:0661 https://rhn.redhat.com/errata/RHSA-2015-0661.html

Comment 7 errata-xmlrpc 2015-03-19 17:10:37 UTC
This issue has been addressed in the following products:

  MRG for RHEL-6 v.3

Via RHSA-2015:0707 https://rhn.redhat.com/errata/RHSA-2015-0707.html

Comment 8 errata-xmlrpc 2015-03-19 17:11:04 UTC
This issue has been addressed in the following products:

  MRG Messaging v.3 for RHEL-7

Via RHSA-2015:0708 https://access.redhat.com/errata/RHSA-2015:0708

Comment 9 errata-xmlrpc 2015-03-19 17:11:49 UTC
This issue has been addressed in the following products:

  MRG Messaging v.3 for RHEL-7

Via RHSA-2015:0708 https://access.redhat.com/errata/RHSA-2015:0708

Comment 10 David Sirrine 2015-03-24 19:58:10 UTC
Is there a statement of applicability to the qpid-cpp packages in the base RHEL channels outside of MRG?

Comment 11 Tomas Hoger 2015-04-22 13:14:17 UTC
qpid-cpp packages in Red Hat Enterprise Linux 6 are deprecated.  Deprecation noticed can be found in Red Hat Enterprise Linux 6 Technical Notes document starting with 6.4, which contains:

  The following packages have been deprecated and are subjected to removal in
  a future release of Red Hat Enterprise Linux 6. These packages will not be
  updated in the Red Hat Enterprise Linux 6 repositories and customers who do
  not use the MRG-Messaging product are advised to uninstall them from their
  system.

  ...

  qpid-cpp

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/6.4_Technical_Notes/deprecated_functionality.html

Comment 12 Fedora Update System 2015-05-29 21:45:52 UTC
qpid-cpp-0.30-12.el7, qpid-qmf-0.28-27.el7 has been pushed to the Fedora EPEL 7 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 13 Fedora Update System 2015-06-21 00:03:58 UTC
qpid-cpp-0.32-4.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 18 Kurt Seifried 2017-07-17 17:00:53 UTC
Created qpid-cpp tracking bugs for this issue:

Affects: epel-7 [bug 1471925]
Affects: fedora-all [bug 1471927]


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