MGASA-2016-0013

    Dashboard / Vulnerabilities / MGASA-2016-0013

    MGASA-2016-0013

    Published: 14 Jan 2016Last Modified: 16 Apr 2026
    Upstream:

    Summary: Updated mono packages fix security vulnerability

    Details: 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.

    Affected packages

    Package

    Name: mono

    Purl: pkg:rpm/mageia/mono?arch=source&distro=mageia-5

    Affected ranges

    Type: ECOSYSTEM

    Events:

    Introduced- 0
    Fixed -3.12.1-1.2.mga5

    Affected versions

    Common Vulnerability Scoring System

    Attack Vector
    Network
    Adjacent
    Local
    Physical
    Privileges Required
    None
    Low
    High
    User Interaction
    None
    Required
    Scope
    Unchanged
    Changed
    Confidentiality
    None
    Low
    High
    Integrity
    None
    Low
    High
    Availability
    None
    Low
    High