]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
binfmt_elf: Do not move brk for INTERP-less ET_EXEC
authorKees Cook <keescook@chromium.org>
Thu, 26 Sep 2019 17:15:25 +0000 (10:15 -0700)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Wed, 16 Oct 2019 09:55:31 +0000 (11:55 +0200)
commit4e0becb2a4163f370b998fc2da50ebb14157713e
treeeef952342dfe5d0ea871e454201ea1f12e59009b
parentc5822bf36b450f270f67c342d1529a957e7dafcd
binfmt_elf: Do not move brk for INTERP-less ET_EXEC

BugLink: https://bugs.launchpad.net/bugs/1847155
commit 7be3cb019db1cbd5fd5ffe6d64a23fefa4b6f229 upstream.

When brk was moved for binaries without an interpreter, it should have
been limited to ET_DYN only. In other words, the special case was an
ET_DYN that lacks an INTERP, not just an executable that lacks INTERP.
The bug manifested for giant static executables, where the brk would end
up in the middle of the text area on 32-bit architectures.

Reported-and-tested-by: Richard Kojedzinszky <richard@kojedz.in>
Fixes: bbdc6076d2e5 ("binfmt_elf: move brk out of mmap when doing direct loader exec")
Cc: stable@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
fs/binfmt_elf.c