Bug 861242 (CVE-2012-4460) - CVE-2012-4460 qpid-cpp: lack of bounds checking in qpid::framing::Buffer can lead to DoS if asserts are enabled
Summary: CVE-2012-4460 qpid-cpp: lack of bounds checking in qpid::framing::Buffer can ...
Alias: CVE-2012-4460
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
Depends On: 824456
Blocks: 849724 851360
TreeView+ depends on / blocked
Reported: 2012-09-27 22:09 UTC by Vincent Danen
Modified: 2023-05-11 19:54 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2013-03-06 22:22:19 UTC

Attachments (Terms of Use)

Description Vincent Danen 2012-09-27 22:09:39 UTC
The low-level serializing/deserializing methods (putOctet, getOctet and so on) in the qpid::framing::Buffer class do not perform bounds checks before the operation.  Instead, there is an assert after the operation which fails on out-of-bounds access.

If asserts are enabled, this results in a pre-authentication denial-of-service vulnerability.  Red Hat builds disable asserts, so they are not affected by this vulnerability.  Examining the protocol decoders showed that the read overrun is limited to very few bytes because all the large types perform proper length checking (so it seems impossible that an unmapped page can be reached and cause a crash).  Regarding write overruns, there is a check of the buffer size against the encoded size (which is conceptually not possible for the read case), so there should not be any write buffer overrun, assuming that the encoded size account is completely correct.

The suggestion is to remove the asserts from putOctet/getOctet etc. and replace them with bounds checks which throw exceptions on failure.


This issue was discovered by Florian Weimer of the Red Hat Product Security Team.

Comment 3 Vincent Danen 2013-03-03 00:28:27 UTC

Not vulnerable. This issue did not affect the versions of qpid-cpp as shipped with Red Hat Enterprise MRG as asserts are not enabled.

Comment 4 Vincent Danen 2013-03-06 17:03:15 UTC
This is corrected upstream:


External References:


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