Bug 1293638 - mono: Converting specially crafted string to float causes crash and possible code execution
Summary: mono: Converting specially crafted string to float causes crash and possible ...
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1293639 1293640
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-12-22 14:16 UTC by Adam Mariš
Modified: 2019-09-29 13:40 UTC (History)
6 users (show)

Fixed In Version: mono 4.2
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-06-08 02:46:43 UTC
Embargoed:


Attachments (Terms of Use)

Description Adam Mariš 2015-12-22 14:16:09 UTC
It was found that float-parsing code used in Mono before 4.2 is derived from code vulnerable to CVE-2009-0689. The issue concerns the `freelist` array, which is a global array of 16 pointers to `Bigint`. This array is part of a memory allocation and reuse system which attempts to reduce the number of `malloc` and `free` calls. The system allocates blocks in power-of-two sizes, from 2^0 through 2^15, and stores freed blocks of each size in a linked list rooted at the corresponding cell of `freelist`. The `Balloc` and `Bfree` functions which operate this system fail to check if the size parameter `k` is within the allocated 0..15 range. As a result, a sufficiently large allocation will have k=16 and treat the word immediately after `freelist` as a pointer to a previously-allocated chunk. The specific results may vary significantly based on the version, platform, and compiler, since they depend on the layout of variables in memory. An attacker who can cause a carefully-chosen string to be converted to a floating-point number can cause a crash and potentially induce arbitrary code execution.

Patch:

https://gist.github.com/directhex/01e853567fd2cc74ed39

CVE request (contains reproducer):

http://www.openwall.com/lists/oss-security/2015/12/19/3

Comment 1 Adam Mariš 2015-12-22 14:16:53 UTC
Created mono tracking bugs for this issue:

Affects: fedora-all [bug 1293639]
Affects: epel-all [bug 1293640]

Comment 2 Product Security DevOps Team 2019-06-08 02:46:43 UTC
This CVE Bugzilla entry is for community support informational purposes only as it does not affect a package in a commercially supported Red Hat product. Refer to the dependent bugs for status of those individual community products.


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