kernel-packages team mailing list archive
-
kernel-packages team
-
Mailing list archive
-
Message #169525
[Bug 1556141] Re: s390/mm: four page table levels vs. fork
This bug was fixed in the package linux-lts-xenial - 4.4.0-14.30~14.04.2
---------------
linux-lts-xenial (4.4.0-14.30~14.04.2) trusty; urgency=low
* Release Tracking Bug (LP: #1558247)
* Current 4.4 kernel won't boot on powerpc (LP: #1557130)
- powerpc: Fix dedotify for binutils >= 2.26
* ZFS: send fails to transmit some holes [corruption] (LP: #1557151)
- Illumos 6370 - ZFS send fails to transmit some holes
* Request to cherry-pick uvcvideo patch for Xenial kernel support of RealSense
camera (LP: #1557138)
- UVC: Add support for ds4 depth camera
* use after free of task_struct->numa_faults in task_numa_find_cpu (LP: #1527643)
- sched/numa: Fix use-after-free bug in the task_numa_compare
* overlay fs regression: chmod fails with "Operation not permitted" on chowned
files (LP: #1555997)
- ovl: copy new uid/gid into overlayfs runtime inode
* Miscellaneous Ubuntu changes
- SAUCE: Dump stack when X.509 certificates cannot be loaded
-- Brad Figg <brad.figg@xxxxxxxxxxxxx> Thu, 17 Mar 2016 09:18:22 -0700
** Changed in: linux-lts-xenial (Ubuntu Trusty)
Status: Invalid => Fix Released
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1556141
Title:
s390/mm: four page table levels vs. fork
Status in linux package in Ubuntu:
Fix Released
Status in linux-armadaxp source package in Precise:
Invalid
Status in linux-flo source package in Precise:
Invalid
Status in linux-goldfish source package in Precise:
Invalid
Status in linux-lts-quantal source package in Precise:
Invalid
Status in linux-lts-raring source package in Precise:
Invalid
Status in linux-lts-saucy source package in Precise:
Invalid
Status in linux-lts-trusty source package in Precise:
Invalid
Status in linux-lts-utopic source package in Precise:
Invalid
Status in linux-lts-vivid source package in Precise:
Invalid
Status in linux-lts-wily source package in Precise:
Invalid
Status in linux-lts-xenial source package in Precise:
Invalid
Status in linux-mako source package in Precise:
Invalid
Status in linux-manta source package in Precise:
Invalid
Status in linux-raspi2 source package in Precise:
Invalid
Status in linux-ti-omap4 source package in Precise:
Invalid
Status in linux-armadaxp source package in Trusty:
Invalid
Status in linux-flo source package in Trusty:
Invalid
Status in linux-goldfish source package in Trusty:
Invalid
Status in linux-lts-quantal source package in Trusty:
Invalid
Status in linux-lts-raring source package in Trusty:
Invalid
Status in linux-lts-saucy source package in Trusty:
Invalid
Status in linux-lts-trusty source package in Trusty:
Invalid
Status in linux-lts-utopic source package in Trusty:
Invalid
Status in linux-lts-vivid source package in Trusty:
Invalid
Status in linux-lts-wily source package in Trusty:
Invalid
Status in linux-lts-xenial source package in Trusty:
Fix Released
Status in linux-mako source package in Trusty:
Invalid
Status in linux-manta source package in Trusty:
Invalid
Status in linux-raspi2 source package in Trusty:
Invalid
Status in linux-ti-omap4 source package in Trusty:
Invalid
Status in linux-armadaxp source package in Wily:
Invalid
Status in linux-flo source package in Wily:
Invalid
Status in linux-goldfish source package in Wily:
Invalid
Status in linux-lts-quantal source package in Wily:
Invalid
Status in linux-lts-raring source package in Wily:
Invalid
Status in linux-lts-saucy source package in Wily:
Invalid
Status in linux-lts-trusty source package in Wily:
Invalid
Status in linux-lts-utopic source package in Wily:
Invalid
Status in linux-lts-vivid source package in Wily:
Invalid
Status in linux-lts-wily source package in Wily:
Invalid
Status in linux-lts-xenial source package in Wily:
Invalid
Status in linux-mako source package in Wily:
Invalid
Status in linux-manta source package in Wily:
Invalid
Status in linux-raspi2 source package in Wily:
Invalid
Status in linux-ti-omap4 source package in Wily:
Invalid
Status in linux source package in Xenial:
Fix Released
Status in linux-armadaxp source package in Xenial:
Invalid
Status in linux-flo source package in Xenial:
Invalid
Status in linux-goldfish source package in Xenial:
Invalid
Status in linux-lts-quantal source package in Xenial:
Invalid
Status in linux-lts-raring source package in Xenial:
Invalid
Status in linux-lts-saucy source package in Xenial:
Invalid
Status in linux-lts-trusty source package in Xenial:
Invalid
Status in linux-lts-utopic source package in Xenial:
Invalid
Status in linux-lts-vivid source package in Xenial:
Invalid
Status in linux-lts-wily source package in Xenial:
Invalid
Status in linux-lts-xenial source package in Xenial:
Invalid
Status in linux-mako source package in Xenial:
Invalid
Status in linux-manta source package in Xenial:
Invalid
Status in linux-raspi2 source package in Xenial:
Invalid
Status in linux-ti-omap4 source package in Xenial:
Invalid
Bug description:
== Comment: #0 - Hendrik Brueckner <brueckner@xxxxxxxxxx> - 2016-03-11 08:30:57 ==
Please backport:
http://git.kernel.org/cgit/linux/kernel/git/s390/linux.git/commit/?h
=for-linus&id=3446c13b268af86391d06611327006b059b8bab1
s390/mm: four page table levels vs. fork
The fork of a process with four page table levels is broken since
git commit 6252d702c5311ce9 "[S390] dynamic page tables."
All new mm contexts are created with three page table levels and
an asce limit of 4TB. If the parent has four levels dup_mmap will
add vmas to the new context which are outside of the asce limit.
The subsequent call to copy_page_range will walk the three level
page table structure of the new process with non-zero pgd and pud
indexes. This leads to memory clobbers as the pgd_index *and* the
pud_index is added to the mm->pgd pointer without a pgd_deref
in between.
The init_new_context() function is selecting the number of page
table levels for a new context. The function is used by mm_init()
which in turn is called by dup_mm() and mm_alloc(). These two are
used by fork() and exec(). The init_new_context() function can
distinguish the two cases by looking at mm->context.asce_limit,
for fork() the mm struct has been copied and the number of page
table levels may not change. For exec() the mm_alloc() function
set the new mm structure to zero, in this case a three-level page
table is created as the temporary stack space is located at
STACK_TOP_MAX = 4TB.
This fixes CVE-2016-2143.
Reported-by: Marcin Ko?cielnicki <koriakin@xxxxxxxx>
Reviewed-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1556141/+subscriptions