A flaw in glibc stack protection feature was found. The canary value is located in structure 'tcbhead_t' field 'stack_guard'. If a application create a new thread with pthread_create() function, tcbhead_t structure will be placed on the top of the stack thread, making it vulnerable to corruption a bypass of stack protection.
Upstream bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22850 Previous discussions: http://bases-hacking.org/tcb-overwrite.html http://blog.talosintelligence.com/2016/01/bypassing-miniupnp-stack-smashing.html
Created glibc tracking bugs for this issue: Affects: fedora-all [bug 1546607] Created glibc-arm-linux-gnu tracking bugs for this issue: Affects: fedora-all [bug 1546606]
Statement: This flaw is a weakness in -fstack-protector, which is a post-exploitation mitigation of stack buffer overflows. Under specific circumstances, this flaw can allow an attacker to bypass the stack canary. Most often, exploits of this kind are effectively mitigated by FORTIFY_SOURCE, which will detect the attempted overflow before the stack-protector check occurs. The protections offered by FORTITY_SOURCE are not impacted by this flaw.