Bug 1372305 - glibc: fopencookie hardening
Summary: glibc: fopencookie hardening
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: glibc
Version: 7.3
Hardware: Unspecified
OS: Unspecified
Target Milestone: rc
: ---
Assignee: Florian Weimer
QA Contact: Sergey Kolosov
Depends On:
Blocks: 1372375 1473718 1372306
TreeView+ depends on / blocked
Reported: 2016-09-01 11:32 UTC by Florian Weimer
Modified: 2018-04-10 13:57 UTC (History)
6 users (show)

Fixed In Version: glibc-2.17-211.el7
Doc Type: Enhancement
Doc Text:
Feature: The fopencookie function stores the callback function pointers in a mangled form. Reason: These function pointers are a potential target for exploit writers because they reside on the heap, and execution could be redirect through them. Result: Now that they are mangled, it is more difficult to abuse them as part of exploits because an attacker would have to guess both the location of the pointers and the pointer guard value used for mangling.
Clone Of:
Last Closed: 2018-04-10 13:56:38 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2018:0805 None None None 2018-04-10 13:57:56 UTC
Sourceware 20222 P2 RESOLVED fopencookie: Mangle function pointers 2020-02-14 08:31:25 UTC

Description Florian Weimer 2016-09-01 11:32:20 UTC
Upstream implemented obfuscation for function pointers stored in stdio streams created with fopencookie:

commit 983fd5c41ab7e5a5c33922259ca1ac99b3b413f8
Author: Florian Weimer <fweimer@redhat.com>
Date:   Sat Jun 11 12:07:14 2016 +0200

    fopencookie: Mangle function pointers stored on the heap [BZ #20222]

This does not have ABI impact and is necessary to block libio-based code execution exploits (after vtable verification has been enabled).

Comment 9 errata-xmlrpc 2018-04-10 13:56:38 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.


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