[PATCH v4 00/17] khwasan: kernel hardware assisted address sanitizer
From: Will Deacon <hidden>
Date: 2018-06-29 11:06:37
Also in:
linux-doc, linux-kbuild, linux-mm, lkml
From: Will Deacon <hidden>
Date: 2018-06-29 11:06:37
Also in:
linux-doc, linux-kbuild, linux-mm, lkml
On Thu, Jun 28, 2018 at 08:56:41PM +0200, Andrey Konovalov wrote:
On Thu, Jun 28, 2018 at 12:51 PM, Dave Martin [off-list ref] wrote:quoted
On Tue, Jun 26, 2018 at 03:15:10PM +0200, Andrey Konovalov wrote:quoted
1. By using the Top Byte Ignore arm64 CPU feature, we can store pointer tags in the top byte of each kernel pointer.[...] This is a change from the current situation, so the kernel may be making implicit assumptions about the top byte of kernel addresses. Randomising the top bits may cause things like address conversions and pointer arithmetic to break. For example, (q - p) will not produce the expected result if q and p have different tags.If q and p have different tags, that means they come from different allocations. I don't think it would make sense to calculate pointer difference in this case.
It might not seen sensible, but we could still be relying on this in the kernel and so this change would introduce a regression. I think we need a way to identify such pointer usage before these patches can seriously be considered for mainline inclusion. For example use of '>' and '<' to compare pointers in an rbtree could be affected by the introduction of tags. Will